Automatically Seed Corpus and Fuzzing Executables Generation Using Test Framework

Sanghoon Jeon, Minsoo Ryu, Dongyoung Kim, Huy Kang Kim

Research output: Contribution to journalArticlepeer-review

Abstract

Fuzzing is widely utilized as a practical test method to determine unknown vulnerabilities in software. Although fuzzing shows excellent results for code coverage and crash count, it is not easy to apply these effects to library fuzzing. A library cannot run independently; it is only executed by an application called a customer program. In particular, a fuzzing executable and a seed corpus are needed to execute the library code by calling a specific function sequence and passing the input of the fuzzer to reproduce the various states of the library. However, preparing the environment for library fuzzing is challenging because it relies on the human expertise and requires both an understanding of the library and fuzzing knowledge. This study proposes FuzzBuilderEx, a system that provides an automated fuzzing environment for a library by utilizing the test framework to resolve this problem. FuzzBuilderEx conducts a static/dynamic analysis of the test code to automatically generate seed corpus and fuzzing executables that enable library fuzzing. Furthermore, the automatically generated seed corpus and fuzzing executable are compatible with existing fuzzers, such as the American Fuzzy Lop (AFL). This study applied FuzzBuilderEx to nine open-source libraries for performance evaluation and confirmed the effects of an increase in code coverage by 31.2% and a unique crash count of 58.7% compared to previous studies. Notably, we detected three zero-day vulnerabilities and registered one of them in the common vulnerabilities and exposures (CVE) database.

Original languageEnglish
Pages (from-to)90408-90428
Number of pages21
JournalIEEE Access
Volume10
DOIs
Publication statusPublished - 2022

Keywords

  • Data-driven security
  • fuzzing
  • seed generation
  • test framework
  • vulnerability detection

ASJC Scopus subject areas

  • Computer Science(all)
  • Materials Science(all)
  • Engineering(all)
  • Electrical and Electronic Engineering

Fingerprint

Dive into the research topics of 'Automatically Seed Corpus and Fuzzing Executables Generation Using Test Framework'. Together they form a unique fingerprint.

Cite this