CyberGlossary

Sécurité applicative

Fuzzing guidé par couverture

Aussi appelé: Fuzzing greybox, Fuzzing à feedback

Définition

Technique de fuzzing qui instrumente la cible pour mesurer la couverture de code et fait évoluer les entrées explorant de nouveaux chemins, augmentant drastiquement l'efficacité.

Les fuzzers guidés par couverture instrumentent la cible à la compilation ou via traduction binaire dynamique, puis exécutent les entrées candidates en collectant la couverture en arêtes ou en blocs de base. Les entrées qui apportent une nouvelle couverture sont conservées et mutées encore via un algorithme évolutionnaire, le corpus dérivant vers du code plus difficile à atteindre. Ce feedback, popularisé par AFL puis raffiné par AFL++, libFuzzer et Honggfuzz, est plusieurs ordres de grandeur plus efficace que le fuzzing aléatoire aveugle. Il alimente notamment Google OSS-Fuzz, qui a découvert des dizaines de milliers de bugs dans des projets open source.

Exemples

  • Compiler un parseur C avec l'instrumentation AFL++ et utiliser afl-fuzz pour faire croître un corpus guidé par couverture.
  • libFuzzer s'appuyant sur SanitizerCoverage pour faire évoluer les entrées d'un crate Rust.

Termes liés