Introduction
Issu du terme anglais fuzzy (flou en français), le fuzzing est une méthode d’automatisation des tests. Elle s’appuie sur des fuzzers (outils logiciels) pour automatiser l’identification de bugs ou de failles dans des applications. Elle apporte un gain de temps important face à des programmes pouvant comporter des milliers de lignes de code.
Le processus consiste à vérifier les entrées possibles pour une application donnée, et à forcer des opérations dans le cas où celle-ci réagit de manière anormale. Le fuzzer servira ainsi à bombarder l’application de codes volontairement malformés.
Sa finalité est l’amélioration des développements, une fois un bug identifié. Le fuzzing se destine avant tout aux développeurs et aux chercheurs en sécurité. Toutefois, les pirates s’avèrent également des utilisateurs du procédé.
Il existe des fuzzers « clés en main » qui nous permettent de faire les premiers tests et nous donnent souvent de bons résultats, mais souvent nous devrons pour un cas spécifique créer nous-mêmes notre fuzzer.
Nous pouvons lister quelques fuzzers tels que Spike, Fusil, zzuf, wfuzz...
Des fuzzers seront spécifiques à un protocole ou un service comme par exemple des fuzzers FTP, web...