Dynamic binary firmware analysis : challenges & solutions

par Marius Muench

Thèse de doctorat en Informatique

Sous la direction de Davide Balzarotti et de Aurélien Francillon.

Le président du jury était Marc Dacier.

Le jury était composé de Mathias Payer, Sarah Zennou.

Les rapporteurs étaient Jean-Pierre Seifert, Roberto Di Pietro.

  • Titre traduit

    Analyse dynamique de micrologiciels binaires : défis et solutions


  • Résumé

    Les systèmes embarqués sont un élément clé de la vie moderne. Par conséquent, le code fonctionnant sur ces systèmes, appelé "firmware", doit être soigneusement évalué et testé. L'analyse dynamique est un moyen courant d'évaluer la sécurité des firmwares, en particulier en l'absence de code source. Malheureusement, comparée à l'analyse et aux tests sur les ordinateurs de bureau, l'analyse dynamique des firmwares reste à la traîne. Dans cette thèse, nous identifions les principaux défis empêchant l’analyse dynamique et les techniques de test d’exploiter pleinement leur potentiel sur les firmware. Nous avons développé avatar2, un framework d'orchestration multi-cibles capable d'exécuter des firmware dans un émulateur à la fois de manière partielle et totale. À l’aide de ce framework, nous adaptons plusieurs techniques d’analyse dynamique pour pouvoir fonctionner avec succès sur des firmwares binaires. Notamment nous utilisons ses possibilités de script pour reproduire facilement une étude précédente. Nous montrons qu’elle permet d’enregistrer et de rejouer l’exécution d’un système embarqués et de mettre en œuvre des méthodes heuristiques pour une meilleure détection des pannes. En outre, la structure sert de base à une évaluation expérimentale des tests fuzz sur des systèmes intégrés et est utilisée dans un moteur d’exécution concolique évolutif pour les firmwares. Enfin, nous présentons Groundhogger, une nouvelle approche de décompression du micrologiciel des périphériques intégrés qui, contrairement à d’autres outils de décompression, utilise l’analyse dynamique.


  • Résumé

    Embedded systems are a key component of modern life and their security is of utmost importance. Hence, the code running on those systems, called "firmware", has to be carefully evaluated and tested to minimize the risks accompanying the ever-growing deployment of embedded systems. One common way to evaluate the security of firmware, especially in the absence of source code, is dynamic analysis. Unfortunately, compared to analysis and testing on desktop system, dynamic analysis for firmware is lacking behind. In this thesis, we identify the main challenges preventing dynamic analysis and testing techniques from reaching their full potential on firmware. Furthermore we point out that rehosting is a promising approach to tackle these problems and develop avatar2, a multi-target orchestration framework which is capable of running firmware in both fully, and partially emulated settings. Using this framework, we adapt several dynamic analysis techniques to successfully operate on binary firmware. In detail we use its scriptability to easily replicate a previous study, we demonstrate that it allows to record and replay the execution of an embedded system, and implement heuristics for better fault detection as run-time monitors. Additionally, the framework serves as building block for an experimental evaluation of fuzz testing on embedded systems, and is used as part in a scalable concolic execution engine for firmware. Last but not least, we present Groundhogger, a novel approach for unpacking embedded devices' firmware which, unlike other unpacking tools, uses dynamic analysis to create unpackers and evaluate it against three real world devices.


Il est disponible au sein de la bibliothèque de l'établissement de soutenance.

Consulter en bibliothèque

La version de soutenance existe

Où se trouve cette thèse\u00a0?

  • Bibliothèque : Sorbonne Université. Bibliothèque des thèses électroniques.
Voir dans le Sudoc, catalogue collectif des bibliothèques de l'enseignement supérieur et de la recherche.