The Art, Science, and Engineering of Fuzzing: A Survey
Valentin J.M. Manès, HyungSeok Han, Choongwoo Han, Sang Kil Cha, Manuel Egele, Edward J. Schwartz, and Maverick Woo
The Art, Science, and Engineering of Fuzzing: A Survey Valentin - - PowerPoint PPT Presentation
The Art, Science, and Engineering of Fuzzing: A Survey Valentin J.M. Mans, HyungSeok Han, Choongwoo Han, Sang Kil Cha, Manuel Egele, Edward J. Schwartz, and Maverick Woo A Complex Field 2 Fuzzing: Potential Definitions Some say:
Valentin J.M. Manès, HyungSeok Han, Choongwoo Han, Sang Kil Cha, Manuel Egele, Edward J. Schwartz, and Maverick Woo
A Complex Field
2
è What kind of crash? è PerfFuzz1 just looks for “algorithmic complexity vulnerabilities”.
è Random Testing may not use any seed. è Concolic execution use neither.
1 C. Lemieux, R. Padhye, K. Sen, and D. Song, “PerfFuzz: Automatically generating pathological inputs,” in Proceedings of theInternational Symposium on Software Testing and Analysis, 2018, pp. 254–265.
3
A definition should:
è Fuzzers are tools: there goal is defined by the user.
è The field has shown too much diversity.
4
* This is a simplified version of the definition in the paper.
5
Fuzzing refers to a process of repeatedly running a program with generated inputs to test if a program violates a correctness policy.*
6
Fuzzer InputGen InputEval
test cases
PreProcess
ConfUpdate
execinfos
Schedule ① ② ③
7
vMajor Github repositories vMajor conferences (Security & Software Engineering)
8
Fuzzer zzuf InputGen InputEval
test cases
PreProcess
ConfUpdate
execinfos
Schedule
Seed bit flip Simple Execution
9
Fuzzer AFL InputGen InputEval
test cases
PreProcess
ConfUpdate
execinfos
Schedule
Instrumentation Mutation operations Instrumented Execution Coverage-based Fitness Function Round Robin++
10
11
12
13
LangFuzz BFF
14
CalFuzzer Sidewinder
15
github.com/SoftSec-KAIST/Fuzzing-Survey
16
Sharable links: fuzzing-survey.org/?k=Ankou
17