Thèse soutenue

Guidage du test en frelatage de codes binaires pour la détection de vulnérabilités logicielles complexes
FR  |  
EN
Accès à la thèse
Auteur / Autrice : Manh-Dung Nguyen
Direction : Roland Groz
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 30/03/2021
Etablissement(s) : Université Grenoble Alpes
Ecole(s) doctorale(s) : École doctorale mathématiques, sciences et technologies de l'information, informatique (Grenoble ; 199.-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire d'informatique de Grenoble
Equipe de recherche : Validation de systèmes, composants et objets logiciels (Grenoble)
Jury : Président / Présidente : Marie-Laure Potet
Examinateurs / Examinatrices : Valérie Viêt Triêm Tông
Rapporteurs / Rapporteuses : Aurélien Francillon, Jacques Klein

Mots clés

FR  |  
EN

Résumé

FR  |  
EN

Le test en frelatage (fuzz testing ou fuzzing) est une technique de test de sécurité populaire consistant à générer une quantité massive d’entrées aléatoires, très efficace pour déclencher des bogues dans des programmes du monde réel. Bien que des recherches récentes aient permi beaucoup de progrès dans la résolution de problèmes de fuzzing tels que les nombres magiques et les entrées hautement structurées, la détection de vulnérabilités complexes est toujours difficile pour les fuzzers actuels, même si les cibles sont connues (fuzzing dirigé). Dans cette thèse, nous considérons le problème du guidage du fuzzing pour détecter des vulnérabilités complexes telles que Use-After-Free (UAF), car les chemins de déclenchement de tels bogues demandent de satisfaire des propriétés très spécifiques. Le bogue UAF est actuellement identifié comme l’une des vulnérabilités exploitables les plus critiques et a des conséquences graves telles que la corruption des données et les fuites d’informations. Tout d’abord, nous fournissons une étude détaillée sur le Directed Greybox Fuzzing, qui est la technique de base de cette thèse, visant à effectuer des tests de résistance sur des cibles prédéfinies comme les changements récents ou les fonctions vulnérables. Deuxièmement, nous proposons de nouvelles techniques de fuzzing dirigées adaptées à la détection des vulnérabilités UAF au niveau du binaire que nous avons prouvées efficaces et efficientes à la fois pour la reproduction de bogues et le test de correctifs. Troisièmement, nous montrons que nos techniques dirigées peuvent être généralisées avec succès à d’autres bogues qui violent les propriétés comme les débordements de tampon. Enfin, les techniques que nous avons proposées ont été implémentées dans les outils open-source Binsec/UAFuzz andBinsec/TypeFuzz, aidant à trouver des vulnérabilités de sécurité dans les programmes du monde réel (39 nouveaux bogues, 17 CVEs ont été attribués et 30 bogues ont été corrigés).