MetaEmu: An Architecture Agnostic Rehosting Framework for Automotive Firmware
In this paper we present MetaEmu, an architecture-agnostic emulator synthesizer geared towards rehosting and security analysis of automotive firmware. MetaEmu improves over existing rehosting environments in two ways: Firstly, it solves the hitherto open-problem of a lack of generic Virtual Executio...
Gespeichert in:
Hauptverfasser: | , , |
---|---|
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | In this paper we present MetaEmu, an architecture-agnostic emulator
synthesizer geared towards rehosting and security analysis of automotive
firmware. MetaEmu improves over existing rehosting environments in two ways:
Firstly, it solves the hitherto open-problem of a lack of generic Virtual
Execution Environments (VXEs) for rehosting by synthesizing processor
simulators from Ghidra's language definitions. In doing so, MetaEmu can
simulate any processor supported by a vast and growing library of open-source
definitions. In MetaEmu, we use a specification-based approach to cover
peripherals, execution models, and analyses, which allows our framework to be
easily extended. Secondly, MetaEmu can rehost and analyze multiple targets,
each of different architecture, simultaneously, and share analysis facts
between each target's analysis environment, a technique we call inter-device
analysis. We show that the flexibility afforded by our approach does not lead
to a performance trade-off -- MetaEmu lifts rehosted firmware to an optimized
intermediate representation, and provides performance comparable to existing
emulation tools, such as Unicorn. Our evaluation spans five different
architectures, bare-metal and RTOS-based firmware, and three kinds of
automotive Electronic Control Unit (ECU) from four distinct vendors -- none of
which can be rehosted or emulated by current tools, due to lack of processor
support. Further, we show how MetaEmu enables a diverse set of analyses by
implementing a fuzzer, a symbolic executor for solving peripheral access
checks, a CAN ID reverse engineering tool, and an inter-device coverage
tracker. |
---|---|
DOI: | 10.48550/arxiv.2208.03528 |