P$^2$IM: Scalable and Hardware-independent Firmware Testing via Automatic Peripheral Interface Modeling (extended version)
This addresses the widespread vulnerability of IoT devices by providing a scalable and hardware-independent solution for firmware testing, representing a novel method rather than an incremental improvement.
The paper tackled the problem of hardware-dependent and poorly scalable dynamic testing of embedded firmware by proposing a software framework that enables hardware-independent and scalable firmware testing, achieving successful execution of 79% of sample firmware without manual assistance and uncovering 7 unique unknown bugs in real firmware.
Dynamic testing or fuzzing of embedded firmware is severely limited by hardware-dependence and poor scalability, partly contributing to the widespread vulnerable IoT devices. We propose a software framework that continuously executes a given firmware binary while channeling inputs from an off-the-shelf fuzzer, enabling hardware-independent and scalable firmware testing. Our framework, using a novel technique called P$^2$IM, abstracts diverse peripherals and handles firmware I/O on the fly based on automatically generated models. P$^2$IM is oblivious to peripheral designs and generic to firmware implementations, and therefore, applicable to a wide range of embedded devices. We evaluated our framework using 70 sample firmware and 10 firmware from real devices, including a drone, a robot, and a PLC. It successfully executed 79% of the sample firmware without any manual assistance. We also performed a limited fuzzing test on the real firmware, which unveiled 7 unique unknown bugs.