IEEE Access · 2018 · 70 citations · 21 references
EngineeringSoftware SystemsComputer ArchitectureSoftware EngineeringSource Code AnalysisHardware SystemsSoftware AnalysisHardware SecurityProcessor Trace FeedbackCompile-time InstrumentationSystems EngineeringBinary AnalysisStatic CheckingFuzzingCompilersComputer EngineeringComputer ScienceDebuggerStatic Program AnalysisGreybox FuzzingOperating SystemsProgram AnalysisFormal MethodsSymbolic ExecutionQemu Emulation
Greybox fuzzing, such as american fuzzy lop (AFL), is very efficient in finding software vulnerability, which makes it the state-of-the-art fuzzing technology. Greybox fuzzing leverages the branch information collected during program running as feedback to guide choosing seeds. Current greybox fuzzing generally uses two kinds of methods to collect branch information: compile-time instrumentation (AFL) and emulation [AFL extended with QEMU emulation (QAFL)]. Compile-time instrumentation is efficient, but it does not support binary programs. Meanwhile, emulation supports binary programs, but its efficiency is very low. In this paper, we propose a greybox fuzzing approach named PTfuzz, which leverages hardware mechanism (Intel Processor Trace) to collect branch information. Our approach supports binary programs, just like the emulation method, while it gains a comparable performance with the compile-time instrumentation method. Our experiments show that PTfuzz can fuzz the original binary programs without any modification, and we gain a 3× performance improvement compared to QAFL.
21
Driller: Augmenting Fuzzing Through Selective Symbolic Execution
Nick Stephens, John Grosen, Christopher Salls et al. · 2016 · 864 citations · Full text
Marcel Böhme, Van-Thuan Pham, Manh-Dung Nguyen et al. · 2017 · 695 citations
Software Maintenance, Engineering, Computer Architecture +19
VUzzer: Application-aware Evolutionary Fuzzing
Sanjay Rawat, Vivek Jain, Ashish Kumar et al. · 2017 · 581 citations · Full text