🤖 AI Summary
This work addresses the challenge of limited path coverage in black-box firmware fuzzing, where traditional gray-box approaches fail due to the absence of execution feedback. To overcome this limitation, the study proposes a novel black-box fuzzing framework that leverages power side-channel information as a feedback mechanism. By analyzing power traces through sliding-window and full-trace correlation techniques, the method identifies branch behaviors and reconstructs high-level control-flow graphs via statistical modeling to guide test input generation. Experimental evaluation across three embedded platforms and ten firmware benchmarks demonstrates that the approach achieves branch coverage within 13.5% of state-of-the-art gray-box fuzzers and substantially outperforms existing black-box methods, with improvements of up to 22%.
📝 Abstract
Fuzzing is widely used for software and hardware verification, offering an effective alternative to random testing. While gray-box fuzzers benefit from full visibility into the system under test and can leverage execution feedback such as branch coverage, these approaches are not applicable when verifying systems whose firmware or binaries are not publicly available. In such scenarios, obtaining coverage information for guiding the fuzzer becomes infeasible. In this paper, we introduce PowerFuzz, a statistical black-box fuzzing framework that leverages power side-channel measurements as a substitute for binary instrumentation, requiring no internal visibility into the target firmware. A central challenge in black-box firmware fuzzing is determining the executed branches during test execution. To address this challenge, we use power traces to identify branches utilizing a sliding window followed by a growing window full-trace correlation method. This approach also enables the construction of a high-level control-flow graph of the black-box firmware, which we utilize to drive the fuzzer to unexplored execution paths. Extensive evaluation using three embedded hardware platforms and ten firmware benchmarks demonstrates that PowerFuzz can provide branch coverage comparable (within 13.5%) to gray-box fuzzers while significantly outperforming (up to 22%) state-of-the-art black-box fuzzers.