Mathematics (Jan 2021)

MooFuzz: Many-Objective Optimization Seed Schedule for Fuzzer

  • Xiaoqi Zhao,
  • Haipeng Qu,
  • Wenjie Lv,
  • Shuo Li,
  • Jianliang Xu

DOI
https://doi.org/10.3390/math9030205
Journal volume & issue
Vol. 9, no. 3
p. 205

Abstract

Read online

Coverage-based Greybox Fuzzing (CGF) is a practical and effective solution for finding bugs and vulnerabilities in software. A key challenge of CGF is how to select conducive seeds and allocate accurate energy. To address this problem, we propose a novel many-objective optimization solution, MooFuzz, which can identify different states of the seed pool and continuously gather different information about seeds to guide seed schedule and energy allocation. First, MooFuzz conducts risk marking in dangerous positions of the source code. Second, it can automatically update the collected information, including the path risk, the path frequency, and the mutation information. Next, MooFuzz classifies seed pool into three states and adopts different objectives to select seeds. Finally, we design an energy recovery mechanism to monitor energy usage in the fuzzing process and reduce energy consumption. We implement our fuzzing framework and evaluate it on seven real-world programs. The experimental results show that MooFuzz outperforms other state-of-the-art fuzzers, including AFL, AFLFast, FairFuzz, and PerfFuzz, in terms of path discovery and bug detection.

Keywords