Dynamic binary firmware analysis : challenges & solutions - Archive ouverte HAL Access content directly
Theses Year : 2019

Dynamic binary firmware analysis : challenges & solutions

Analyse dynamique de micrologiciels binaires : défis et solutions

(1)
1

Abstract

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.
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.
Fichier principal
Vignette du fichier
MUENCH_Marius_2019.pdf (4.17 Mo) Télécharger le fichier
Origin : Version validated by the jury (STAR)

Dates and versions

tel-03143960 , version 1 (17-02-2021)

Identifiers

  • HAL Id : tel-03143960 , version 1

Cite

Marius Muench. Dynamic binary firmware analysis : challenges & solutions. Embedded Systems. Sorbonne Université, 2019. English. ⟨NNT : 2019SORUS265⟩. ⟨tel-03143960⟩
249 View
917 Download

Share

Gmail Facebook Twitter LinkedIn More