paper-with-me

홈 › Papers

NEUZZ: Efficient Fuzzing with Neural Program Smoothing

2018-07-15 · Dongdong She, Kexin Pei, Dave Epstein, Junfeng Yang, Baishakhi Ray, Suman Jana

Fuzzing has become the de facto standard technique for finding software vulnerabilities. However, even state-of-the-art fuzzers are not very efficient at finding hard-to-trigger software bugs. Most popular fuzzers use evolutionary guidance to generate inputs that can trigger different bugs. Such evolutionary algorithms, while fast and simple to implement, often get stuck in fruitless sequences of random mutations. Gradient-guided optimization presents a promising alternative to evolutionary guidance. Gradient-guided techniques have been shown to significantly outperform evolutionary algorithms at solving high-dimensional structured optimization problems in domains like machine learning by efficiently utilizing gradients or higher-order derivatives of the underlying function. However, gradient-guided approaches are not directly applicable to fuzzing as real-world program behaviors contain many discontinuities, plateaus, and ridges where the gradient-based methods often get stuck. We observe that this problem can be addressed by creating a smooth surrogate function approximating the discrete branching behavior of target program. In this paper, we propose a novel program smoothing technique using surrogate neural network models that can incrementally learn smooth approximations of a complex, real-world program's branching behaviors. We further demonstrate that such neural network models can be used together with gradient-guided input generation schemes to significantly improve the fuzzing efficiency. Our extensive evaluations demonstrate that NEUZZ significantly outperforms 10 state-of-the-art graybox fuzzers on 10 real-world programs both at finding new bugs and achieving higher edge coverage. NEUZZ found 31 unknown bugs that other fuzzers failed to find in 10 real world programs and achieved 3X more edge coverage than all of the tested graybox fuzzers for 24 hours running.

📄 PDF Abstract BibTeX arXiv:1807.05620

Code (1)

dongdongshe/neuzz 공식 구현 tf

Tasks

Evolutionary Algorithms

Similar Papers 제목 키워드 기반

Revisiting Neural Program Smoothing for Fuzzing

2023-09-28 · Maria-Irina Nicolae, Max Eisele, Andreas Zeller

Testing with randomly generated inputs (fuzzing) has gained significant traction due to its capacity to expose program vulnerabilities automatically. Fuzz testing campaigns generate large amounts of data, making them ide…

BenchmarkingCPUGPU

MEUZZ: Smart Seed Scheduling for Hybrid Fuzzing

2020-02-20 · Yao-Hui Chen, Mansour Ahmadi, Reza Mirzazade farkhani, Boyu Wang 외

Seed scheduling is a prominent factor in determining the yields of hybrid fuzzing. Existing hybrid fuzzers schedule seeds based on fixed heuristics that aim to predict input utilities. However, such heuristics are not ge…

BIG-bench Machine LearningScheduling

Deep Reinforcement Fuzzing

2018-01-14 · Konstantin Böttinger, Patrice Godefroid, Rishabh Singh

Fuzzing is the process of finding security vulnerabilities in input-processing code by repeatedly testing the code with modified inputs. In this paper, we formalize fuzzing as a reinforcement learning problem using the c…

Q-Learningreinforcement-learningReinforcement LearningReinforcement Learning (RL)

FuzzCoder: Byte-level Fuzzing Test via Large Language Model

2024-09-03 · Liqun Yang, Jian Yang, Chaoren Wei, Guanglin Niu 외

Fuzzing is an important dynamic program analysis technique designed for finding vulnerabilities in complex software. Fuzzing involves presenting a target program with crafted malicious input to cause crashes, buffer over…

Language ModelingLanguage ModellingLarge Language Modelvalid

Legion: Best-First Concolic Testing

2020-02-15 · Dongge Liu, Gidon Ernst, Toby Murray, Benjamin I. P. Rubinstein

Concolic execution and fuzzing are two complementary coverage-based testing techniques. How to achieve the best of both remains an open challenge. To address this research problem, we propose and evaluate Legion. Legion …

Decision MakingDecision Making Under UncertaintySequential Decision Making