Depuis quelques années, rechercher et trouver (ou pas) des vulnérabilités grâce au fuzzing devient extrêmement commun. Nous présentons dans cet article un framework de fuzzing très populaire : le Sulley Fuzzing Framework. Nous montrerons que développer des fuzzers grâce à Sulley s'avère à la fois facile, efficace et pérenne grâce à la réutilisation des briques déjà développées.
1. Description fonctionnelle du framework Sulley
Le framework de fuzzing Sulley est actuellement l'un des plus complets. Nous allons découvrir dans une première partie son fonctionnement, puis dans une seconde partie comment développer deux fuzzers pour les protocoles FTP et SSLv2.
1.1 Architecture haut niveau conceptuelle
L'architecture de Sulley repose sur quatre composants :
- la génération des données de test ;
- la gestion des différents états du graphes ;
- les agents de surveillance de la cible ;
- des outils divers.
1.1.1 Génération des données de test
Sulley s'inspire de Spike pour la génération des données de tests, en utilisant le concept de description de protocole par blocs. Cette approche permet de représenter les protocoles réseau de façon simple et puissante.
L'écriture d'un fuzzer se fait en créant un programme en Python utilisant un ensemble de fonctions importées du framework Sulley. Ces fonctions permettent de...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première