support non de confiance (réseaux) Application conséquente Plus de 950 dissecteurs (environ 1.6 MLOC en C) Application potentiellement vulnérable En moyenne une vingtaine de vulnérabilités publiées par an Laurent Butti Fuzzing Wireshark
support non de confiance (réseaux) Application conséquente Plus de 950 dissecteurs (environ 1.6 MLOC en C) Application potentiellement vulnérable En moyenne une vingtaine de vulnérabilités publiées par an Application auditée Monopole de l’analyse réseau, fuzzée en permanence (SLDC) Laurent Butti Fuzzing Wireshark
Maximiser le rapport « qualité / prix » La technique de fuzzing par mutation est la plus adaptée ! Il nous faut : ⇒ des échantillons ⇒ une ou plusieurs techniques de mutation ⇒ du temps et/ou du CPU Laurent Butti Fuzzing Wireshark
possible (maximiser le nombre de mutations) ⇒ les plus représentatifs possible (maximiser le code parcouru) Les mutations sont à opérer sur les parties « intéressantes » : ⇒ fuzzer entièrement le paquet rend le paquet (trop) invalide Laurent Butti Fuzzing Wireshark
avec des bugs triés ! Il est primordial d’automatiser tout ce qui peut l’être : ⇒ génération des cas de tests ⇒ observation des dysfonctionnements (crash, boucle infinie. . .) ⇒ triage des résultats Laurent Butti Fuzzing Wireshark
se lancer ⇒ avec une approche « différente » ⇒ avec peu d’efforts Meilleure couverture via plusieurs techniques de fuzzing Nécessité d’intégrer le fuzzing dans le SDLC : ⇒ complétera l’approche déjà adoptée par Wireshark ⇒ les techniques de fuzzing doivent évoluer ⇒ les campagnes de fuzzing doivent être récurrentes Laurent Butti Fuzzing Wireshark