MetaEmu: An Architecture Agnostic Rehosting Framework for Automotive Firmware

08/06/2022
by   Zitai Chen, et al.
0

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.

READ FULL TEXT
research
04/18/2023

Proof-Producing Symbolic Execution for Binary Code Verification

We propose a proof-producing symbolic execution for verification of mach...
research
06/30/2020

Symbolic Execution and Debugging Synchronization

In this thesis, we introduce the idea of combining symbolic execution wi...
research
07/04/2011

A Framework for Designing 3D Virtual Environments

The process of design and development of virtual environments can be sup...
research
07/08/2019

Manticore: A User-Friendly Symbolic Execution Framework for Binaries and Smart Contracts

An effective way to maximize code coverage in software tests is through ...
research
05/07/2021

argXtract: Deriving IoT Security Configurations via Automated Static Analysis of Stripped ARM Binaries

Recent high-profile attacks on the Internet of Things (IoT) have brought...
research
01/27/2019

Eva-CiM: A System-Level Performance and Energy Evaluation Framework for Computing-in-Memory Architectures

Computing-in-Memory (CiM) architectures aim to reduce costly data transf...

Please sign up or login with your details

Forgot password? Click here to reset