MooFuzz: Many-Objective Optimization Seed Schedule for Fuzzer
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...
Main Authors: | , , , , |
---|---|
Format: | Article |
Language: | English |
Published: |
MDPI AG
2021-01-01
|
Series: | Mathematics |
Subjects: | |
Online Access: | https://www.mdpi.com/2227-7390/9/3/205 |
_version_ | 1797409288676704256 |
---|---|
author | Xiaoqi Zhao Haipeng Qu Wenjie Lv Shuo Li Jianliang Xu |
author_facet | Xiaoqi Zhao Haipeng Qu Wenjie Lv Shuo Li Jianliang Xu |
author_sort | Xiaoqi Zhao |
collection | DOAJ |
description | 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. |
first_indexed | 2024-03-09T04:12:02Z |
format | Article |
id | doaj.art-d57b37dc846840caaca28cacd855f217 |
institution | Directory Open Access Journal |
issn | 2227-7390 |
language | English |
last_indexed | 2024-03-09T04:12:02Z |
publishDate | 2021-01-01 |
publisher | MDPI AG |
record_format | Article |
series | Mathematics |
spelling | doaj.art-d57b37dc846840caaca28cacd855f2172023-12-03T13:59:29ZengMDPI AGMathematics2227-73902021-01-019320510.3390/math9030205MooFuzz: Many-Objective Optimization Seed Schedule for FuzzerXiaoqi Zhao0Haipeng Qu1Wenjie Lv2Shuo Li3Jianliang Xu4College of Information Science and Engineering, Ocean University of China, Qingdao 266100, ChinaCollege of Information Science and Engineering, Ocean University of China, Qingdao 266100, ChinaCollege of Information Science and Engineering, Ocean University of China, Qingdao 266100, ChinaCollege of Information Science and Engineering, Ocean University of China, Qingdao 266100, ChinaCollege of Information Science and Engineering, Ocean University of China, Qingdao 266100, ChinaCoverage-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.https://www.mdpi.com/2227-7390/9/3/205seed schedulemany-objective optimizationfuzzingbug detectionpath discovery |
spellingShingle | Xiaoqi Zhao Haipeng Qu Wenjie Lv Shuo Li Jianliang Xu MooFuzz: Many-Objective Optimization Seed Schedule for Fuzzer Mathematics seed schedule many-objective optimization fuzzing bug detection path discovery |
title | MooFuzz: Many-Objective Optimization Seed Schedule for Fuzzer |
title_full | MooFuzz: Many-Objective Optimization Seed Schedule for Fuzzer |
title_fullStr | MooFuzz: Many-Objective Optimization Seed Schedule for Fuzzer |
title_full_unstemmed | MooFuzz: Many-Objective Optimization Seed Schedule for Fuzzer |
title_short | MooFuzz: Many-Objective Optimization Seed Schedule for Fuzzer |
title_sort | moofuzz many objective optimization seed schedule for fuzzer |
topic | seed schedule many-objective optimization fuzzing bug detection path discovery |
url | https://www.mdpi.com/2227-7390/9/3/205 |
work_keys_str_mv | AT xiaoqizhao moofuzzmanyobjectiveoptimizationseedscheduleforfuzzer AT haipengqu moofuzzmanyobjectiveoptimizationseedscheduleforfuzzer AT wenjielv moofuzzmanyobjectiveoptimizationseedscheduleforfuzzer AT shuoli moofuzzmanyobjectiveoptimizationseedscheduleforfuzzer AT jianliangxu moofuzzmanyobjectiveoptimizationseedscheduleforfuzzer |