Fuzzing Based on Function Importance by Attributed Call Graph

10/07/2020
by   Wenshuo Wang, et al.
0

Fuzzing has become one of the important methods for vulnerability detecting. The existing fuzzing tools represented by AFL use heuristic algorithms to guide the direction of fuzzing which exposes great randomness. What's more, AFL filters seeds only by execution time and seed length. Meanwhile there is no in-depth consideration of the instruction information covered by the trace. In this paper, we propose a fuzzing method based on function importance. First, we propose a data structure called Attributed Call Graph to characterize function feature and the relationship. On this basis, we use an improved PageRank algorithm to further strengthen ACG's characterization of the importance of function position. We score the seeds according to the feature vector of the ACG covered in the seed execution trace and optimize the seed filtering and according to the scoring results. In addition, fuzzing is a process of dynamic change. We will adjust the feature vector range according to the number of function hits. The change of a node attribute will affect the importance of its surrounding nodes. Here we use the improved Weisfeiler-Lehman The algorithm propagates the node attributes to reflect this influence relationship. We implemented our fuzzer FunAFL based on the above method. Our tool found 18 bugs on the LAVA-M dataset exceeding the fuzzers such as AFL and AFLFast. The coverage rate in real-world programs is higher than that of AFL and AFLFast. At the same time, 10 bugs were found in real-world programs and 3 CVE numbers were assigned.

READ FULL TEXT
research
07/31/2020

MUZZ: Thread-aware Grey-box Fuzzing for Effective Bug Hunting in Multithreaded Programs

Grey-box fuzz testing has revealed thousands of vulnerabilities in real-...
research
01/03/2021

AlphaFuzz: Evolutionary Mutation-based Fuzzing as Monte Carlo Tree Search

Fuzzing is becoming more and more popular in the field of vulnerability ...
research
03/22/2022

Effective Seed Scheduling for Fuzzing with Graph Centrality Analysis

Seed scheduling, the order in which seeds are selected, can greatly affe...
research
09/26/2019

Attributed Graph Learning with 2-D Graph Convolution

Graph convolutional neural networks have demonstrated promising performa...
research
09/10/2020

Effective Influence Spreading in Temporal Networks with Sequential Seeding

The spread of influence in networks is a topic of great importance in ma...
research
04/18/2017

Ranking to Learn: Feature Ranking and Selection via Eigenvector Centrality

In an era where accumulating data is easy and storing it inexpensive, fe...
research
05/30/2019

MoonLight: Effective Fuzzing with Near-Optimal Corpus Distillation

Mutation-based fuzzing typically uses an initial set of valid seed input...

Please sign up or login with your details

Forgot password? Click here to reset