Skip to Main content Skip to Navigation
Theses

Finding the needle in the heap : combining binary analysis techniques to trigger use-after-free

Résumé : La sécurité des systèmes est devenue un élément majeur du développement logicielle, pour les éditeurs, les utilisateurs et les agences gouvernementales. Un problème récurrent est la détection de vulnérabilités, qui consiste à détecter les bugs qui pourraient permettre à un attaquant de gagner des privilèges non prévues, comme la lecture ou l’écriture de donnée sensible, voir même l’exécution de code non autorisé. Cette thèse propose une approche pratique pour la détection d’une vulnérabilité particulière : le use-after-free, qui apparaît quand un élément du tas est utilisé après avoir été libéré. Cette vulnérabilité a été utilisé dans de nombreux exploits, et est, de par sa nature, difficile à détecter. Les problèmes récurrents pour sa détection sont, par exemple, le fait que les éléments déclenchant la vulnérabilité peuvent être répartis à de grande distance dans le code, le besoin de raisonner sur l’allocateur mémoire, ou bien la manipulation de pointeurs. L’approche proposé consiste en deux étapes. Premièrement, une analyse statique, basée sur une analyse légère, mais non sûre, appelé GUEB, permet de traquer les accès mémoire ainsi que l’état des éléments du tas (alloué / libéré / utilisé) . Cette analyse mène à un slice de programme contenant de potentiel use-after-free. La seconde étape vient alors confirmer ou non la présence de vulnérabilité dans ces slices, et est basée sur un moteur d'exécution symbolique guidé, développé dans la plateforme Binsec. Ce moteur permet de générer des entrées du programme réel déclenchant un use-after-free. Cette combinaison s’est montré performante en pratique et a permis de détecter plusieurs use-after-free qui étaient précédemment inconnu dans plusieurs codes réels. L’implémentation des outils est disponible en open-source et fonctionne sur du code x86.
Document type :
Theses
Complete list of metadatas

Cited literature [138 references]  Display  Hide  Download

https://tel.archives-ouvertes.fr/tel-01681707
Contributor : Abes Star :  Contact
Submitted on : Thursday, January 11, 2018 - 5:28:06 PM
Last modification on : Friday, July 3, 2020 - 4:43:04 PM
Document(s) archivé(s) le : Sunday, May 6, 2018 - 6:36:32 AM

File

FEIST_2017_diffusion.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : tel-01681707, version 1

Citation

Josselin Feist. Finding the needle in the heap : combining binary analysis techniques to trigger use-after-free. Cryptography and Security [cs.CR]. Université Grenoble Alpes, 2017. English. ⟨NNT : 2017GREAM016⟩. ⟨tel-01681707v1⟩

Share

Metrics

Record views

77

Files downloads

866