Superion: Grammar-Aware Greybox Fuzzing

被引:163
作者
Wang, Junjie [1 ]
Chen, Bihuan [2 ,3 ]
Wei, Lei [1 ]
Liu, Yang [1 ,4 ]
机构
[1] Nanyang Technol Univ, Sch Comp Sci & Engn, Singapore, Singapore
[2] Fudan Univ, Sch Comp Sci, Shanghai, Peoples R China
[3] Fudan Univ, Shanghai Key Lab Data Sci, Shanghai, Peoples R China
[4] Zhejiang Sci Tech Univ, Coll Informat Sci, Hangzhou, Zhejiang, Peoples R China
来源
2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2019) | 2019年
基金
新加坡国家研究基金会;
关键词
Greybox Fuzzing; Structured Inputs; ASTs; COMPILER BUGS;
D O I
10.1109/ICSE.2019.00081
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
In recent years, coverage-based greybox fuzzing has proven itself to be one of the most effective techniques for finding security bugs in practice. Particularly, American Fuzzy Lop (AFL for short) is deemed to be a great success in fuzzing relatively simple test inputs. Unfortunately, when it meets structured test inputs such as XML and JavaScript, those grammar-blind trimming and mutation strategies in AFL hinder the effectiveness and efficiency. To this end, we propose a grammar-aware coverage-based greybox fuzzing approach to fuzz programs that process structured inputs. Given the grammar (which is often publicly available) of test inputs, we introduce a grammar-aware trimming strategy to trim test inputs at the tree level using the abstract syntax trees (ASTs) of parsed test inputs. Further, we introduce two grammar-aware mutation strategies (i.e., enhanced dictionary-based mutation and tree-based mutation). Specifically, tree-based mutation works via replacing subtrees using the ASTs of parsed test inputs. Equipped with grammar-awareness, our approach can carry the fuzzing exploration into width and depth. We implemented our approach as an extension to AFL, named Superion; and evaluated the effectiveness of Superion using large-scale programs (i.e., an XML engine libplist and three JavaScript engines WebKit, Jerryscript and ChakraCore). Our results have demonstrated that Superion can improve the code coverage (i.e., 16.7% and 8.8% in line and function coverage) and bug-finding capability (i.e., 34 new bugs, among which we discovered 22 new vulnerabilities with 19 CVEs assigned and 3.2K USD bug bounty rewards received) over AFL and jsfunfuzz.
引用
收藏
页码:724 / 735
页数:12
相关论文
共 68 条
[1]  
[Anonymous], 2015, FSE, DOI DOI 10.1145/2786805.2786844
[2]  
[Anonymous], 2017, ICSE, DOI DOI 10.1109/ICSE-C.2017.14
[3]  
[Anonymous], 2008, NETWORK DISTRIBUTED
[4]  
[Anonymous], 2016, NDSS
[5]  
[Anonymous], 2016, TUDCS201614664
[6]  
[Anonymous], 2016, ASE, DOI DOI 10.1145/2970276.2970321
[7]  
[Anonymous], 2017, NDSS
[8]  
Appelt D., 2014, P 2014 INT S SOFTW T, P259, DOI DOI 10.1145/2610384.2610403
[9]  
Babic Domagoj, 2011, P 20 INT S SOFTW TES, P12, DOI DOI 10.1145/2001420.2001423
[10]  
Bastani O, 2017, ACM SIGPLAN NOTICES, V52, P95, DOI [10.1145/3140587.3062349, 10.1145/3062341.3062349]