WindRanger: A Directed Greybox Fuzzer driven by DeviationBasic Blocks

WindRanger: A Directed Greybox Fuzzer driven by Deviation

Basic Blocks

WindRanger is a heroine in the game Dota2. Her ultimate skill is called Focus Fire, which allows her to quickly take down the target enemy. We hope our technique can help greybox fuzzer to focus on certain predefined targets, so we name it as WindRanger.

Abstract

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.FollowingAFLGo, 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 calledWindRangerwhichleverages 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, WindRangeruses the deviation basic blocks and their related data flow information for seed distance calculation, mutation, seed prioritization as well as explore-exploit scheduling. We evaluatedWindRangeron 3 datasets consisting of 29 programs. The experiment results show thatWindRangeroutperformsAFLGo, AFL,andFairFuzzby 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) withWindRangerby supplying manually identified suspect locations as the target sites.

Some background of fuzzing/grey box fuzzing/directed fuzzing

The TTT experiment results on UniFuzz. (Full version)

The value of the configurable options of Windranger used for experiments.

An in-depth analysis of the CVE found in ffmpeg.

open science artifact of windranger