HackerPapers

arXiv:1812.00140cs.CR

The Art, Science, and Engineering of Fuzzing: A Survey

Valentin J. M. Manes, HyungSeok Han, Choongwoo Han, Sang Kil Cha, Manuel Egele, Edward J. Schwartz, Maverick Woo

Abstract

Among the many software vulnerability discovery techniques available today, fuzzing has remained highly popular due to its conceptual simplicity, its low barrier to deployment, and its vast amount of empirical evidence in discovering real-world software vulnerabilities. At a high level, fuzzing refers to a process of repeatedly running a program with generated inputs that may be syntactically or semantically malformed. While researchers and practitioners alike have invested a large and diverse effort towards improving fuzzing in recent years, this surge of work has also made it difficult to gain a comprehensive and coherent view of fuzzing. To help preserve and bring coherence to the vast literature of fuzzing, this paper presents a unified, general-purpose model of fuzzing together with a taxonomy of the current fuzzing literature. We methodically explore the design decisions at every stage of our model fuzzer by surveying the related literature and innovations in the art, science, and engineering that make modern-day fuzzers effective.

arXiv comments
29 pages, under submission to ACM Computing Surveys (July 2018) - 2018.12.10 update: correct minor mistakes in overview table - 2019.02.16 update: source clean - 2019.04.08: submission to TSE, 21 pages
Journal reference
DOI
Subjects
cs.CRCryptography and Security cs.SESoftware Engineering

On Hacker News

Linked by 2 identifiable commenters in 2 comments across 2 threads, from Aug 2019 to Mar 2024. Found in 1 HN submission from Jan 2020 to Jan 2020. Open submission discussions.

Comments linking this paper, per year.

Discussed in comments2 threads

    • Here’s a survey of fuzzing techniques: https://arxiv.org/pdf/1812.00140.pdf One of the earliest examples was a person who fuzzed many applications by getting them to load files he created. His files triggered many vulnerabilities in apps. His method (IIRC): take a file, flip a…

      nickpsecurityView on HNParent context

  1. Write Fuzzable Code 1 comment
    • "Generating Software Tests" (https://www.fuzzingbook.org/) is pretty great (independent of your programming language) - arguably a must read for anyone interested in software testing. John Regehr (the author of the blog post) has written more great posts: - How to Fuzz an ADT…

      matt_dView on HNParent context

Submitted to Hacker News

Connected through shared HN threads, not inferred similarity or a recommendation.