VUzzer: Application-aware Evolutionary Fuzzing

被引:373
作者
Rawat, Sanjay [1 ,2 ]
Jain, Vivek [3 ]
Kumar, Ashish [3 ]
Cojocar, Lucian [1 ,2 ]
Giuffrida, Cristiano [1 ,2 ]
Bos, Herbert [1 ,2 ]
机构
[1] Vrije Univ Amsterdam, Comp Sci Inst, Amsterdam, Netherlands
[2] Amsterdam Dept Informat, Amsterdam, Netherlands
[3] Int Inst Informat Technol, Hyderabad, India
来源
24TH ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2017) | 2017年
关键词
D O I
10.14722/ndss.2017.23404
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Fuzzing is an effective software testing technique to find bugs. Given the size and complexity of real-world applications, modern fuzzers tend to be either scalable, but not effective in exploring bugs that lie deeper in the execution, or capable of penetrating deeper in the application, but not scalable. In this paper, we present an application-aware evolutionary fuzzing strategy that does not require any prior knowledge of the application or input format. In order to maximize coverage and explore deeper paths, we leverage control- and data-flow features based on static and dynamic analysis to infer fundamental properties of the application. This enables much faster generation of interesting inputs compared to an application-agnostic approach. We implement our fuzzing strategy in VUzzer and evaluate it on three different datasets: DARPA Grand Challenge binaries (CGC), a set of real-world applications (binary input parsers), and the recently released LAVA dataset. On all of these datasets, VUzzer yields significantly better results than state-of-the-art fuzzers, by quickly finding several existing and new bugs.
引用
收藏
页数:14
相关论文
共 45 条
[1]   A systematic review of search-based testing for non-functional system properties [J].
Afzal, Wasif ;
Torkar, Richard ;
Feldt, Robert .
INFORMATION AND SOFTWARE TECHNOLOGY, 2009, 51 (06) :957-976
[2]  
[Anonymous], 2012, Probability, Random Processes and Statistical Analysis
[3]  
[Anonymous], 2013, CERT TRIAGE TOOLS
[4]  
[Anonymous], 2012, Queue, DOI DOI 10.1145/2090147.2094081
[5]  
[Anonymous], 2006, P 13 ACM C COMP COMM
[6]  
[Anonymous], 2008, Fuzzing for Software Security Testing and Quality Assurance
[7]  
Bachaalany Elias, IDAPYTHON INTERACTIV
[8]  
Bohme Marcel, 2016, P 2016 ACM SIGSAC C, P1032, DOI 10.1145/2976749.2978428
[9]   Symbolic Execution for Software Testing: Three Decades Later [J].
Cadar, Cristian ;
Sen, Koushik .
COMMUNICATIONS OF THE ACM, 2013, 56 (02) :82-90
[10]   Program-Adaptive Mutational Fuzzing [J].
Cha, Sang Kil ;
Woo, Maverick ;
Brumley, David .
2015 IEEE SYMPOSIUM ON SECURITY AND PRIVACY SP 2015, 2015, :725-741