Learning to Fuzz: Application-Independent Fuzz Testing with Probabilistic, Generative Models of Input Data
By Jibesh Patra, Michael Pradel. 2016
65 citations recorded by the source corpus.
Subfields: Natural Language Processing
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Natural Language Processing
- Charles Sutton
- Michael Pradel
- Premkumar T. Devanbu
- Miltiadis Allamanis
- Koushik Sen
- Earl T. Barr
- Rishabh Singh
- Jibesh Patra
Citations in the corpus
- A Survey of Machine Learning for Big Code and Naturalness (2017, methodology): “alize the code by consistentlyalpha-renamingvariablesandmethodnames.Finally,theyfilterinvalidintermediateoutput so they, in the end, generate only valid programs. In a similar manner, Patra and Pradel [153] synthesize JavaScript programs for fuzz testing JavaScript interpreters. 5.8 Program Analysis ”
- DeepBugs: a learning approach to name-based bug detection (2018, methodology): “…predicting fixes of compilation errors via neural networks [Bhatia and Singh 2016; Gupta et al. 2017], and the generation of inputs for fuzz testing via probabilistic, generative language models [Patra and Pradel 2016] or neural networks [Amodio et al. 2017; Godefroid et al. 2017; Liu et al. 2017].”
- AFLNET: A Greybox Fuzzer for Network Protocols (2020, background): “We can distinguish blackbox approaches [19], [20] that learn the message structure from a given corpus of messages and whitebox approaches [21], [22] that actively explore the protocol implementation to uncover message structure.”
- Context2Name: A Deep Learning-Based Approach to Infer Natural Variable Names from Usage Contexts (2017, background): “to programs, targeting a variety of development tasks such as code completion [10, 29, 32], fixing syntactic errors [9, 18], generating inputs for fuzz testing of programs [17, 24, 28], and generating programs or short code snippets to assist developers or test compilers [4, 34].”
- Superion: Grammar-Aware Greybox Fuzzing (2018, unknown): “r to generate C programs. Domato [21] generates test inputs from scratch given the grammars that specify HTML/CSS structures and JavaScript objects, properties and functions. Skyfire [60] and TreeFuzz [47] learns a probabilistic model, using the grammar and a corpus of test inputs, to generate new te”
- Learn&Fuzz: Machine learning for input fuzzing (2017, background): “TreeFuzz [24] was recently proposed as a fuzz testing approach for tree structured inputs (such as programs) by learning a generative model of tree structures from a corpus of example data.”
- Improving bug detection via context-based code representation learning and attention-based neural networks (2019, methodology): “…engineering (SE) tasks, such as automated correction for syntax errors [Bhatia and Singh 2016], fuzz testing with probabilistic, generative models [Patra and Pradel 2016], program synthesis [Amodio et al. 2017], code clones [Li et al. 2017; Smith and Horwitz 2009; White et al. 2016], program…”
- NL2Type: Inferring JavaScript Function Types from Natural Language Information (2019, methodology): “Other work uses neural networks to predict parts of code [29], to detect vulnerabilities [30], to generate inputs for fuzz testing [56], [57], to detect and fix syntactic programming mistakes [58], and to predict whether a file is likely to contain a bug [59]. g) JavaScript Analysis: Program analyses…”
- Fuzz4ALL: Universal Fuzzing with Large Language Models (2023, background): “TreeFuzz [60] parses the training corpus into a tree structure and through tree traversal, learns a probabilistic, generative model that synthesizes new fuzzing inputs.”
- Large Language Model guided Protocol Fuzzing (2024, unknown): “Blackbox fuzzers such as T REE F UZZ [35] employ machine learning techniques over the seed corpus to construct probabilistic models that are subsequently used for input generation.”
- Deep Learning to Find Bugs (2017, background): “Existing approaches address a variety of development tasks, including code completion based on probabilistic models of code [9, 34, 36], predicting fixes of compilation errors via neural networks [8, 14], and the generation of inputs for fuzz testing via probabilistic, generative language models [30”