DICE: Automatic Emulation of DMA Input Channels for Dynamic Firmware Analysis
Alejandro Mera, Bo Feng, Long Lu, Engin Kirda

TL;DR
DICE is a hardware-independent tool that emulates DMA input channels to enhance dynamic firmware analysis, enabling better coverage and bug detection in embedded device firmware.
Contribution
DICE introduces a novel DMA emulation method compatible with common architectures, significantly improving firmware analysis capabilities and bug detection.
Findings
Detected 33 out of 37 DMA input channels with 0 false positives
Supplied DMA inputs correctly to 21 out of 22 DMA buffers
Uncovered up to 79X more execution paths and 5 new bugs
Abstract
Microcontroller-based embedded devices are at the core of Internet-of-Things and Cyber-Physical Systems. The security of these devices is of paramount importance. Among the approaches to securing embedded devices, dynamic firmware analysis gained great attention lately, thanks to its offline nature and low false-positive rates. However, regardless of the analysis and emulation techniques used, existing dynamic firmware analyzers share a major limitation, namely the inability to handle firmware using DMA. It severely limits the types of devices supported and firmware code coverage. We present DICE, a drop-in solution for firmware analyzers to emulate DMA input channels and generate or manipulate DMA inputs. DICE is designed to be hardware-independent, and compatible with common MCU firmware and embedded architectures. DICE identifies DMA input channels as the firmware writes the source…
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.
Taxonomy
TopicsAdvanced Malware Detection Techniques · Security and Verification in Computing · Cryptographic Implementations and Security
