A systematic review of fuzzing techniques

被引:78
作者
Chen, Chen [1 ]
Cui, Baojiang [1 ]
Ma, Jinxin [2 ]
Wu, Runpu [2 ]
Guo, Jianchao [1 ]
Liu, Wenqian [1 ]
机构
[1] Beijing Univ Posts & Telecommun, 10 Xitucheng Rd, Beijing, Peoples R China
[2] China Informat Technol Secur Evaluat Ctr, Bldg 1,Courtyard 8,Shangdixi Rd, Beijing, Peoples R China
基金
中国国家自然科学基金;
关键词
Software bug; Vulnerability; Fuzzing; Dynamic symbolic execution; Coverage guide; Grammar representation; Scheduling algorithms; Taint analysis; Static analysis; GENERATION;
D O I
10.1016/j.cose.2018.02.002
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Fuzzing is an effective and widely used technique for finding security bugs and vulnerabilities in software. It inputs irregular test data into a target program to try to trigger a vulnerable condition in the program execution. Since the first random fuzzing system was constructed, fuzzing efficiency has been greatly improved by combination with several useful techniques, including dynamic symbolic execution, coverage guide, grammar representation, scheduling algorithms, dynamic taint analysis, static analysis and machine learning. In this paper, we will systematically review these techniques and their corresponding representative fuzzing systems. By introducing the principles, advantages and disadvantages of these techniques, we hope to provide researchers with a systematic and deeper understanding of fuzzing techniques and provide some references for this field. (C) 2018 Elsevier Ltd. All rights reserved.
引用
收藏
页码:118 / 137
页数:20
相关论文
共 152 条
[1]  
[Anonymous], COREUTILS
[2]  
[Anonymous], TRINITY
[3]  
[Anonymous], 2005, P 12 NETW DISTR SYST
[4]  
[Anonymous], 2003, TECH REP
[5]  
[Anonymous], DIFFY
[6]  
[Anonymous], JS FUZZ
[7]  
[Anonymous], DIZZY
[8]  
[Anonymous], IEEE T EVOL COMP
[9]  
[Anonymous], CSMITH
[10]  
[Anonymous], BACKFUZZ