Fuzzing (test par données aléatoires)
fuzz testing · test à données aléatoires · fuzzer · test par mutation
Méthode de test qui bombarde un logiciel de données inattendues, mal formées ou aléatoires pour provoquer des plantages révélateurs de failles.
En pratique
Un fuzzer génère des millions d’entrées (fichiers, requêtes réseau, champs de formulaire) et surveille le programme : plantage, consommation mémoire anormale, temps de réponse aberrant. Chaque anomalie est un indice de vulnérabilité, par exemple un dépassement de tampon. Les fuzzers modernes, guidés par la couverture de code, apprennent quelles entrées explorent de nouveaux chemins. Intégré à la chaîne de développement, le fuzzing trouve des failles que ni la relecture de code ni les tests classiques ne voient ; les attaquants s’en servent aussi pour découvrir des failles zero-day.
Cas fictif : un éditeur de logiciel de facturation branche un fuzzer sur son module d’import de fichiers PDF. En une nuit, il obtient quarante plantages, qui se ramènent à trois bugs distincts, dont un exploitable à distance. Corrigés avant la version suivante, ils ne deviendront jamais des failles zero-day.

