Emulation-based fuzzers enable testing binaries without source code, and facilitate testing embedded applications where automated execution on the target hardware architecture is difficult and slow. The instrumentation techniques added to extract feedback and guide input mutations towards generating effective test cases is at the core of modern fuzzers. But, modern emulation-based fuzzers have evolved by re-purposing general-purpose emulators; consequently, developing and integrating fuzzing techniques, such as instrumentation methods, are difficult and often added in an ad-hoc manner, specific to an instruction set architecture (ISA). This limits state-of-the-art fuzzing techniques to few ISAs such as x86/x86-64 or ARM/AArch64; a significant problem for firmware fuzzing of diverse ISAs. This study presents our efforts to re-think emulation for fuzzing. We design and implement a fuzzing-specific, multi-architecture emulation framework -- Icicle. We demonstrate the capability to add instrumentation once, in an architecture agnostic manner, with low execution overhead. We employ Icicle as the emulator for a state-of-the-art ARM firmware fuzzer -- Fuzzware -- and replicate results. Significantly, we demonstrate the availability of new instrumentation in Icicle enabled the discovery of new bugs. We demonstrate the fidelity of Icicle and efficacy of architecture agnostic instrumentation by discovering LAVA-M benchmark bugs, requiring a known and specific operational capability of instrumentation techniques, across a diverse set of instruction set architectures (x86-64, ARM/AArch64, RISC-V, MIPS). Further, to demonstrate the effectiveness of Icicle to discover bugs in a currently unsupported architecture in emulation-based fuzzers, we perform a fuzzing campaign with real-world MSP430 firmware binaries and discovered 7 new bugs.
翻译:以模擬基 fuzz 使64 模擬基的烟雾器能够在没有源码的情况下进行测试二进制,并在自动执行目标硬件结构(ISA)困难和缓慢的情况下促进测试嵌入应用程序。添加仪器技术是为了提取反馈和指导投入突变以生成有效测试案例,这是现代烟雾器的核心。但是,现代模擬基烟雾器通过重新涂抹通用模擬器而演变;因此,开发和整合诸如仪表方法等烟雾技术非常困难,而且往往以自动方式添加,具体针对一个指令集架构(ISA)。这限制了最先进的烟雾技术,这限制了诸如x86-x64 或ARM/Arch64 等少数ISA 的状态性能;对于各种ISA 的固态的涂料是一大大问题。本研究展示了我们重新思考用于模糊的模异性模模模模模模的图。我们设计并实施了一个模糊的、多级的、多级的模化的模具模具化的模具模拟框架 -- Icuil。我们展示了一种添加的仪器的能力,在一种结构中,在一种结构中, 需要的机的硬质指令式指令, 需要的机的机的机的机的机的精制式的机的机制式的机质化结构, 展示一个新的工具的机制式的机制式的机制式的机制式的机制式的机能。