PrescientFuzz: A more effective exploration approach for grey-box fuzzing

Daniel Blackwell,David Clark
2024-04-30
Abstract:In this paper, we introduce an approach for improving the early exploration of grey-box fuzzing campaigns; allowing the fuzzer to reach the interesting coverage earlier. To do this, it leverages information from the system under test's (SUT's) control flow graph in order to decide which inputs are likely to lead to discovering most coverage when mutated.
Software Engineering,Cryptography and Security
What problem does this paper attempt to address?
The problem that this paper attempts to solve is to improve the exploration efficiency of grey - box fuzzing in the early stage, enabling fuzzing tools to reach interesting code coverage more quickly. Specifically, the author proposes a method of using the control - flow - graph (CFG) information of the system - under - test (SUT) to predict which inputs are most likely to discover new code paths after mutation, thus achieving more efficient code coverage. ### Core Problems of the Paper 1. **Improve Early - stage Coverage** - Although existing grey - box fuzzing methods are more effective than black - box fuzzing, the exploration efficiency in the early stage still needs to be improved. The goal of the paper is to introduce a new exploration strategy, enabling fuzzing tools to discover more code paths and potential vulnerabilities in a shorter time. 2. **Utilize Control - Flow - Graph Information** - The method proposed by the author depends on analyzing the control - flow - graph of the program, calculating the number of basic blocks that each input execution path can reach, and adjusting the probability of input selection based on this information. In this way, those inputs that may bring more new coverage can be preferentially selected for mutation. 3. **Optimize the Input Selection Strategy** - By introducing reachability frequency and depth weighting, the paper proposes a comprehensive scoring mechanism to evaluate the potential of each input, thereby optimizing the input selection process and further improving the coverage. ### Solutions - **Reachability Weight**: By tracking the frequency of each reachable block's appearance and giving higher weights to less - frequently - appearing reachable blocks, the diversity of exploration is ensured. - **Depth Weight**: Weight according to the depth of the reachable block (i.e., the minimum number of edges required to reach the block from the current path), and preferentially select blocks closer in distance to accelerate the exploration speed. - **Comprehensive Scoring Mechanism**: Combine reachability weight, depth weight, and factors such as execution time to calculate the comprehensive score of each input and guide the input selection process. ### Experimental Results The paper evaluated PrescientFuzz through the FuzzBench platform. The results show that among 11 benchmark tests, PrescientFuzz performs best on 5 benchmarks, demonstrating its effectiveness in improving early - stage coverage. ### Summary The paper proposes a grey - box fuzzing exploration strategy based on the control - flow - graph, aiming to improve early - stage coverage by optimizing the input selection process. The experimental results show that this method performs well in multiple benchmark tests, proving its potential in practical applications.