Binary-level directed fuzzing for complex vulnerabilities - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2021

Binary-level directed fuzzing for complex vulnerabilities

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

Résumé

Fuzzing is a popular security testing technique consisting in generating massive amount of random inputs, very effective in triggering bugs in real-world programs. Although recent research made a lot of progress in solving fuzzing problems such as magic numbers and highly structured inputs, detecting complex vulnerabilities is still hard for current feedback-driven fuzzers, even in case where the targets are known (directed fuzzing). In this thesis, we consider the problem of guiding fuzzing to detect complex vulnerabilities such as Use-After-Free (UAF), as bug-triggering paths must satisfy specific properties of those bug classes. UAF is currently identified as one of the most critial exploitable vulnerabilities and has serious consequences such as data corruption and information leaks. Firstly, we provide a detailed survey on Directed Greybox Fuzzing, which is the core technique of this thesis, aiming to perform stress testing on predefined targets like recent code changes or vulnerable functions. Secondly, we propose new directed fuzzing techniques tailored to detecting UAF vulnerabilities in binary code that we have proven effective and efficient inboth bug reproduction and patch testing. Thirdly, we show that our directed techniques can be fruitfully generalized to other typestate bugs like buffer overflows. Finally, our proposed techniques have been implemented in the open-source tools Binsec/UAFuzz and Binsec/TypeFuzz, helping to find security vulnerabilities in real-world programs (39 new bugs, 17 CVEs were assigned and 30 bugs were fixed).
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).
Fichier principal
Vignette du fichier
NGUYEN_2021_archivage.pdf (1.94 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-03238343 , version 1 (27-05-2021)
tel-03238343 , version 2 (23-07-2021)

Identifiants

  • HAL Id : tel-03238343 , version 2

Citer

Manh-Dung Nguyen. Binary-level directed fuzzing for complex vulnerabilities. Cryptography and Security [cs.CR]. Université Grenoble Alpes [2020-..], 2021. English. ⟨NNT : 2021GRALM005⟩. ⟨tel-03238343v2⟩
376 Consultations
1045 Téléchargements

Partager

Gmail Facebook X LinkedIn More