TL;DR
$AFL is a hardware-in-the-loop fuzzing framework for microcontroller firmware that uses embedded debugging features to efficiently find security vulnerabilities without intrusive instrumentation.
Contribution
The paper introduces $AFL, a novel fuzzing approach leveraging hardware debugging features for effective, non-intrusive firmware testing on microcontrollers.
Findings
Discovered 13 zero-day bugs in vendor SDKs.
Utilized ARM ETM and DWT hardware features for efficient coverage collection.
Validated on real evaluation boards from NXP and STMicroelectronics.
Abstract
Fuzzing is one of the most effective approaches to finding software flaws. However, applying it to microcontroller firmware incurs many challenges. For example, rehosting-based solutions cannot accurately model peripheral behaviors and thus cannot be used to fuzz the corresponding driver code. In this work, we present AFL, a hardware-in-the-loop approach to fuzzing microcontroller firmware. It leverages debugging tools in existing embedded system development to construct an AFL-compatible fuzzing framework. Specifically, we use the debug dongle to bridge the fuzzing environment on the PC and the target firmware on the microcontroller device. To collect code coverage information without costly code instrumentation, AFL relies on the ARM ETM hardware debugging feature, which transparently collects the instruction trace and streams the results to the PC. However, the raw ETM data…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
