Cerebro: Context-aware adaptive fuzzing for effective vulnerability detection

Existing greybox fuzzers mainly utilize program coverage as the goal to guide the fuzzing process. To maximize their outputs, coverage-based greybox fuzzers need to evaluate the quality of seeds properly, which involves making two decisions: 1) which is the most promising seed to fuzz next (seed pri...

Full description

Saved in:
Bibliographic Details
Main Authors: LI, Yuekang, XUE, Yinxing, CHEN, Hongxu, WU, Xiuheng, ZHANG, Cen, XIE, Xiaofei, WANG, Haijun, LIU, Yang
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2019
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/7072
https://ink.library.smu.edu.sg/context/sis_research/article/8075/viewcontent/3338906.3338975.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-8075
record_format dspace
spelling sg-smu-ink.sis_research-80752022-04-07T08:15:10Z Cerebro: Context-aware adaptive fuzzing for effective vulnerability detection LI, Yuekang XUE, Yinxing CHEN, Hongxu WU, Xiuheng ZHANG, Cen XIE, Xiaofei WANG, Haijun LIU, Yang Existing greybox fuzzers mainly utilize program coverage as the goal to guide the fuzzing process. To maximize their outputs, coverage-based greybox fuzzers need to evaluate the quality of seeds properly, which involves making two decisions: 1) which is the most promising seed to fuzz next (seed prioritization), and 2) how many efforts should be made to the current seed (power scheduling). In this paper, we present our fuzzer, Cerebro, to address the above challenges. For the seed prioritization problem, we propose an online multi-objective based algorithm to balance various metrics such as code complexity, coverage, execution time, etc. To address the power scheduling problem, we introduce the concept of input potential to measure the complexity of uncovered code and propose a cost-effective algorithm to update it dynamically. Unlike previous approaches where the fuzzer evaluates an input solely based on the execution traces that it has covered, Cerebro is able to foresee the benefits of fuzzing the input by adaptively evaluating its input potential. We perform a thorough evaluation for Cerebro on 8 different real-world programs. The experiments show that Cerebro can find more vulnerabilities and achieve better coverage than state-of-the-art fuzzers such as AFL and AFLFast. 2019-08-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/7072 info:doi/10.1145/3338906.3338975 https://ink.library.smu.edu.sg/context/sis_research/article/8075/viewcontent/3338906.3338975.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Fuzz Testing Software Vulnerability OS and Networks Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Fuzz Testing
Software Vulnerability
OS and Networks
Software Engineering
spellingShingle Fuzz Testing
Software Vulnerability
OS and Networks
Software Engineering
LI, Yuekang
XUE, Yinxing
CHEN, Hongxu
WU, Xiuheng
ZHANG, Cen
XIE, Xiaofei
WANG, Haijun
LIU, Yang
Cerebro: Context-aware adaptive fuzzing for effective vulnerability detection
description Existing greybox fuzzers mainly utilize program coverage as the goal to guide the fuzzing process. To maximize their outputs, coverage-based greybox fuzzers need to evaluate the quality of seeds properly, which involves making two decisions: 1) which is the most promising seed to fuzz next (seed prioritization), and 2) how many efforts should be made to the current seed (power scheduling). In this paper, we present our fuzzer, Cerebro, to address the above challenges. For the seed prioritization problem, we propose an online multi-objective based algorithm to balance various metrics such as code complexity, coverage, execution time, etc. To address the power scheduling problem, we introduce the concept of input potential to measure the complexity of uncovered code and propose a cost-effective algorithm to update it dynamically. Unlike previous approaches where the fuzzer evaluates an input solely based on the execution traces that it has covered, Cerebro is able to foresee the benefits of fuzzing the input by adaptively evaluating its input potential. We perform a thorough evaluation for Cerebro on 8 different real-world programs. The experiments show that Cerebro can find more vulnerabilities and achieve better coverage than state-of-the-art fuzzers such as AFL and AFLFast.
format text
author LI, Yuekang
XUE, Yinxing
CHEN, Hongxu
WU, Xiuheng
ZHANG, Cen
XIE, Xiaofei
WANG, Haijun
LIU, Yang
author_facet LI, Yuekang
XUE, Yinxing
CHEN, Hongxu
WU, Xiuheng
ZHANG, Cen
XIE, Xiaofei
WANG, Haijun
LIU, Yang
author_sort LI, Yuekang
title Cerebro: Context-aware adaptive fuzzing for effective vulnerability detection
title_short Cerebro: Context-aware adaptive fuzzing for effective vulnerability detection
title_full Cerebro: Context-aware adaptive fuzzing for effective vulnerability detection
title_fullStr Cerebro: Context-aware adaptive fuzzing for effective vulnerability detection
title_full_unstemmed Cerebro: Context-aware adaptive fuzzing for effective vulnerability detection
title_sort cerebro: context-aware adaptive fuzzing for effective vulnerability detection
publisher Institutional Knowledge at Singapore Management University
publishDate 2019
url https://ink.library.smu.edu.sg/sis_research/7072
https://ink.library.smu.edu.sg/context/sis_research/article/8075/viewcontent/3338906.3338975.pdf
_version_ 1770576206277640192