Tue 18 Jul 2023 10:30 - 10:45 at Smith Classroom (Gates G10) - ISSTA 2: Fuzzing 1 Chair(s): Jonathan Bell

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, is 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 a few ISAs such as x86/x86-64 or ARM/AArch64; a significant problem for \textit{firmware fuzzing} of diverse ISAs.

This study presents our efforts to \textit{re-think emulation for fuzzing}. We design and implement a fuzzing-specific, multi-architecture emulation framework—{\sc Icicle}. We demonstrate the capability to add instrumentation once, in an \textit{architecture agnostic} manner, with low execution overhead.
We employ {\sc Icicle} as the emulator for a state-of-the-art ARM firmware fuzzer—{\sc Fuzzware}—and replicate results. Significantly, we demonstrate the availability of new instrumentation in {\sc Icicle} enabled the discovery of new bugs. We demonstrate the fidelity of {\sc Icicle} and efficacy of architecture agnostic instrumentation by discovering bugs in benchmarks that require a known and \textit{specific} operational capability of instrumentation techniques, \textit{across a diverse set of instruction set architectures} (x86-64, ARM/AArch64, RISC-V, MIPS). Further, to demonstrate the effectiveness of {\sc Icicle} to discover bugs in a currently \textit{unsupported} architecture in emulation-based fuzzers, we perform a fuzzing campaign with real-world firmware binaries for Texas Instruments' MSP430 ISA and discovered 7 new bugs.

Tue 18 Jul

Displayed time zone: Pacific Time (US & Canada) change

10:30 - 12:00
ISSTA 2: Fuzzing 1Technical Papers at Smith Classroom (Gates G10)
Chair(s): Jonathan Bell Northeastern University
10:30
15m
Talk
Icicle: A Re-designed Emulator for Grey-Box Firmware Fuzzing
Technical Papers
Michael Chesser University of Adelaide, Surya Nepal CSIRO’s Data61, Damith C. Ranasinghe University of Adelaide
DOI
10:45
15m
Talk
Green Fuzzing: A Saturation-Based Stopping Criterion using Vulnerability Prediction
Technical Papers
Stephan Lipp TU Munich, Daniel Elsner TU Munich, Severin Kacianka TU Munich, Alexander Pretschner TU Munich, Marcel Böhme MPI-SP; Monash University, Sebastian Banescu TU Munich
DOI
11:00
15m
Talk
ItyFuzz: Snapshot-Based Fuzzer for Smart Contract
Technical Papers
Chaofan Shou University of California at Santa Barbara, Shangyin Tan University of California at Berkeley, Koushik Sen University of California at Berkeley
DOI
11:15
15m
Talk
Large Language Models Are Zero-Shot Fuzzers: Fuzzing Deep-Learning Libraries via Large Language Models
Technical Papers
Yinlin Deng University of Illinois at Urbana-Champaign, Chunqiu Steven Xia University of Illinois at Urbana-Champaign, Haoran Peng University of Science and Technology of China, Chenyuan Yang University of Illinois at Urbana-Champaign, Lingming Zhang University of Illinois at Urbana-Champaign
DOI
11:30
15m
Talk
Detecting State Inconsistency Bugs in DApps via On-Chain Transaction Replay and Fuzzing
Technical Papers
Mingxi Ye Sun Yat-sen University, Yuhong Nan Sun Yat-sen University, Zibin Zheng Sun Yat-sen University, Dongpeng Wu Sun Yat-sen University, Huizhong Li WeBank
DOI
11:45
15m
Talk
Green Fuzzer Benchmarking
Technical Papers
DOI