Fuzz testing
Qu'est-ce que Fuzz testing ?
Fuzz testingTechnique de test automatisé qui soumet un programme à de grandes quantités d'entrées malformées, aléatoires ou inattendues pour révéler des crashs, des corruptions mémoire et des vulnérabilités.
Le fuzz testing (ou fuzzing) bombarde une cible — fonction, parseur, protocole ou application — d'entrées mutées ou générées tout en surveillant crashs, blocages, assertions ou rapports de sanitizers. L'objectif est de trouver des entrées qui violent des propriétés de sécurité : accès hors borne, use-after-free, boucles infinies, exceptions non gérées ou erreurs logiques. Les fuzzers modernes comme AFL++, libFuzzer, Jazzer et Atheris utilisent un feedback de couverture pour faire évoluer les entrées vers de nouveaux chemins, ce qui est très efficace sur les parseurs, décodeurs et codes cryptographiques. Le fuzzing fait partie intégrante des SSDLC chez Google (OSS-Fuzz) ou Microsoft et a permis de découvrir de nombreuses CVE majeures.
● Exemples
- 01
OSS-Fuzz exécutant libFuzzer en continu contre le parseur OpenSSL pour trouver des corruptions mémoire.
- 02
Jazzer fuzzant un parseur JSON Java pour trouver un DoS via une entrée profondément imbriquée.
● Questions fréquentes
Qu'est-ce que Fuzz testing ?
Technique de test automatisé qui soumet un programme à de grandes quantités d'entrées malformées, aléatoires ou inattendues pour révéler des crashs, des corruptions mémoire et des vulnérabilités. Cette notion relève de la catégorie Sécurité applicative en cybersécurité.
Que signifie Fuzz testing ?
Technique de test automatisé qui soumet un programme à de grandes quantités d'entrées malformées, aléatoires ou inattendues pour révéler des crashs, des corruptions mémoire et des vulnérabilités.
Comment se défendre contre Fuzz testing ?
Les défenses contre Fuzz testing combinent habituellement des contrôles techniques et des pratiques opérationnelles, comme détaillé dans la définition ci-dessus.
Quels sont les autres noms de Fuzz testing ?
Noms alternatifs courants : Fuzzing.