Aller au contenu principal

Manh-Dung Nguyen

Mardi 30 Mars 2021

Guidage du test en frelatage de codes binaires pour la détection de vulnérabilités logicielles complexes

Résumé

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 and Binsec/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).

Date et Lieu

Organisé par

Manh-Dung NGUYEN

Composition du Jury

Aurélien FRANCILLON
Professeur associé, Eurecom - Sophia-Antipolis, Rapporteur
Jacques KLEIN
Professeur, Université du Luxembourg, Rapporteur
Marie-Laure POTET
Professeur, Université Grenoble Alpes, Examinatrice
Valérie VIET TRIEM TONG
Professeur, Centrale Supelec, Examinatrice
Roland GROZ
Professeur, Université Grenoble Alpes, Directeur de thèse
Matthieu LEMERRE
Ingénieur de recherche, Université Paris-Saclay, Co-encadrant de thèse
Sébastien BARDIN
Chargé de recherche, Université Paris-Saclay, Co-encadrant de thèse

Publié le 19 mars 2021

Mis à jour le 19 mars 2021