Matryoshka: Fuzzing Deeply Nested Branches

被引:67
作者
Chen, Peng [1 ]
Liu, Jianzhong [2 ]
Chen, Hao [3 ]
机构
[1] ByteDance Al Lab, Beijing, Peoples R China
[2] ShanghaiTech Univ, Shanghai, Peoples R China
[3] Univ Calif Davis, Davis, CA 95616 USA
来源
PROCEEDINGS OF THE 2019 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS'19) | 2019年
基金
美国国家科学基金会;
关键词
fuzzing; optimization; taint analysis; vulnerability detection;
D O I
10.1145/3319535.3363225
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Greybox fuzzing has made impressive progress in recent years, evolving from heuristics-based random mutation to solving individual branch constraints. However, they have difficulty solving path constraints that involve deeply nested conditional statements, which are common in image and video decoders, network packet analyzers, and checksum tools. We propose an approach for addressing this problem. First, we identify all the control flow-dependent conditional statements of the target conditional statement. Next, we select the taint flow-dependent conditional statements. Finally, we use three strategies to find an input that satisfies all conditional statements simultaneously. We implemented this approach in a tool called Matryoshka(1) and compared its effectiveness on 13 open source programs with other state-of-the-art fuzzers. Matryoshka achieved significantly higher cumulative line and branch coverage than AFL, QSYM, and Angora. We manually classified the crashes found by Matryoshka into 41 unique new bugs and obtained 12 CVEs. Our evaluation demonstrates the key technique contributing to Matryoshka's impressive performance: among the nesting constraints of a target conditional statement, Matryoshka collects only those that may cause the target unreachable, which greatly simplifies the path constraint that it has to solve.
引用
收藏
页码:499 / 513
页数:15
相关论文
共 38 条
[1]  
Allen Frances E., 1970, P S COMPILER OPTIMIZ, V5, P1
[2]  
[Anonymous], 2018, ARXIV180104589
[3]  
[Anonymous], 2008, P NDSS
[4]  
Aschermann Cornelius, 2019, S NETW DIST SYST SEC
[5]  
Bekrar Sofia, 2012, IEEE INT C SOFTW TES
[6]   Directed Greybox Fuzzing [J].
Bohme, Marcel ;
Van-Thuan Pham ;
Manh-Dung Nguyen ;
Roychoudhury, Abhik .
CCS'17: PROCEEDINGS OF THE 2017 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2017, :2329-2344
[7]  
Cadar C., 2008, P OP SYST DES IMPL, P209
[8]   Symbolic Execution for Software Testing: Three Decades Later [J].
Cadar, Cristian ;
Sen, Koushik .
COMMUNICATIONS OF THE ACM, 2013, 56 (02) :82-90
[9]   Unleashing MAYHEM on Binary Code [J].
Cha, Sang Kil ;
Avgerinos, Thanassis ;
Rebert, Alexandre ;
Brumley, David .
2012 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP), 2012, :380-394
[10]  
Cha Sang Kil, 2015, IEEE S SEC PRIV SP