WindRanger: A Directed Greybox Fuzzer driven by DeviationBasic Blocks
Wed 11 May 2022 22:15 - 22:20 at ICSE room 3-even hours - Software Testing 8 Chair(s): Darko Marinov
Directed grey-box fuzzing (DGF) is a security testing technique that aims to steer the fuzzer towards predefined target sites in the program. To gain directness, DGF prioritizes the seeds whose execution traces are closer to the target sites. Therefore, evaluating the distance between the execution trace of a seed and the target sites (aka, the seed distance) is important for DGF. The first directed grey-box fuzzer, AFLGo, uses an approach of calculating the basic block level distances during static analysis and accumulating the distances of the executed basic blocks to compute the seed distance. Following AFLGo, most of the existing state-of-the-art DGF techniques use all the basic blocks on the execution trace and only the control flow information for seed distance calculation. However, not every basic block is equally important and there are certain basic blocks where the execution trace starts to deviate from the target sites (aka, deviation basic blocks).
In this paper, we propose a technique called WindRanger which leverages deviation basic blocks to facilitate DGF. To identify the deviation basic blocks, WindRanger applies both static reachability analysis and dynamic filtering. To conduct directed fuzzing, WindRanger uses the deviation basic blocks and their related data flow information for seed distance calculation, mutation, seed prioritization as well as explore-exploit scheduling. We evaluated WindRanger on 3 datasets consisting of 29 programs. The experiment results show that WindRanger outperforms AFLGo, AFL, and Fairfuzz by reaching the target sites 21%, 34%, and 37% faster and detecting the target crashes 44%, 66%, and 77% faster respectively. Moreover, we found a 0-day vulnerability with a CVE ID assigned in ffmpeg (a popular multimedia library extensively fuzzed by OSS-fuzz) with WindRanger by supplying manually identified suspect locations as the target sites.
Tue 10 MayDisplayed time zone: Eastern Time (US & Canada) change
Wed 11 MayDisplayed time zone: Eastern Time (US & Canada) change
22:00 - 23:00 | Software Testing 8Technical Track / Journal-First Papers at ICSE room 3-even hours Chair(s): Darko Marinov University of Illinois at Urbana-Champaign | ||
22:00 5mTalk | The secret life of test smells - an empirical study on test smell evolution and maintenance Journal-First Papers Dong Jae Kim Concordia University, Tse-Hsun (Peter) Chen Concordia University, Jinqiu Yang Concordia University Link to publication DOI Media Attached | ||
22:05 5mTalk | Prioritizing Mutants to Guide Mutation Testing Technical Track Samuel Kaufman University of Washington, Ryan Featherman University of Washington, Justin Alvin University of Massachusetts Amherst, Bob Kurtz George Mason University, USA, Paul Ammann George Mason University, USA, René Just University of Washington DOI Pre-print Media Attached | ||
22:10 5mTalk | Automated Testing of Software that Uses Machine Learning APIs Technical Track Chengcheng Wan The University of Chicago, Shicheng Liu University of Chicago, Sophie Xie University of California, Berkeley, Yifan Liu University of Chicago, Henry Hoffmann University of Chicago, Michael Maire University of Chicago, Shan Lu University of Chicago Pre-print Media Attached | ||
22:15 5mTalk | WindRanger: A Directed Greybox Fuzzer driven by DeviationBasic Blocks Technical Track Zhengjie Du Nanjing University, Yuekang Li Nanyang Technological University, Yang Liu Nanyang Technological University, Bing Mao Nanjing University Pre-print Media Attached | ||
22:20 5mTalk | CONFETTI: Amplifying Concolic Guidance for Fuzzers Technical Track James Kukucka George Mason University, Luís Pina University of Illinois at Chicago, Paul Ammann George Mason University, USA, Jonathan Bell Northeastern University Pre-print Media Attached | ||
22:25 5mTalk | μAFL: Non-intrusive Feedback-driven Fuzzing for Microcontroller Firmware Technical Track DOI Pre-print Media Attached |