Cerebro: Context-aware adaptive fuzzing for effective vulnerability detection

  • Yuekang Li
  • , Yinxing Xue
  • , Hongxu Chen
  • , Xiuheng Wu
  • , Cen Zhang
  • , Xiaofei Xie
  • , Haijun Wang
  • , Yang Liu

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

97 Scopus citations

Abstract

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.

Original languageEnglish
Title of host publicationESEC/FSE 2019 - Proceedings of the 2019 27th ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering
EditorsSven Apel, Marlon Dumas, Alessandra Russo, Dietmar Pfahl
PublisherAssociation for Computing Machinery, Inc
Pages533-544
Number of pages12
ISBN (Electronic)9781450355728
DOIs
StatePublished - 12 Aug 2019
Event27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2019 - Tallinn, Estonia
Duration: 26 Aug 201930 Aug 2019

Publication series

NameESEC/FSE 2019 - Proceedings of the 2019 27th ACM Joint Meeting European Software Engineering Conference and Symposium on the Foundations of Software Engineering

Conference

Conference27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2019
Country/TerritoryEstonia
CityTallinn
Period26/08/1930/08/19

Keywords

  • Fuzz Testing
  • Software Vulnerability

Fingerprint

Dive into the research topics of 'Cerebro: Context-aware adaptive fuzzing for effective vulnerability detection'. Together they form a unique fingerprint.

Cite this