Angora: Efficient Fuzzing by Principled Search

被引:339
作者
Chen, Peng [1 ]
Chen, Hao [2 ]
机构
[1] ShanghaiTech Univ, Shanghai, Peoples R China
[2] Univ Calif Davis, Davis, CA 95616 USA
来源
2018 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP) | 2018年
关键词
D O I
10.1109/SP.2018.00046
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Fuzzing is a popular technique for finding software bugs. However, the performance of the state-of-the-art fuzzers leaves a lot to be desired. Fuzzers based on symbolic execution produce quality inputs but run slow, while fuzzers based on random mutation run fast but have difficulty producing quality inputs. We propose Angora, a new mutation-based fuzzer that outperforms the state-of-the-art fuzzers by a wide margin. The main goal of Angora is to increase branch coverage by solving path constraints without symbolic execution. To solve path constraints efficiently, we introduce several key techniques: scalable byte-level taint tracking, context-sensitive branch count, search based on gradient descent, and input length exploration. On the LAVA-M data set, Angora found almost all the injected bugs, found more bugs than any other fuzzer that we compared with, and found eight times as many bugs as the second-best fuzzer in the program who. Angora also found 103 bugs that the LAVA authors injected but could not trigger. We also tested Angora on eight popular, mature open source programs. Angora found 6, 52, 29, 40 and 48 new bugs in file, jhead, nm, objdump and size, respectively. We measured the coverage of Angora and evaluated how its key techniques contribute to its impressive performance.
引用
收藏
页码:711 / 725
页数:15
相关论文
共 26 条
  • [1] [Anonymous], 2016, NDSS
  • [2] [Anonymous], 2006, ACM SIGOPS OPER SYST, DOI DOI 10.1145/1218063.1217938
  • [3] [Anonymous], 2016, P ACM SIGSAC C COMP, DOI DOI 10.1145/2976749.2978343
  • [4] [Anonymous], OPTIMIZING SEED SELE
  • [5] [Anonymous], 2017, NDSS
  • [6] Bekrar S., 2012, 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation (ICST 2012), P818, DOI 10.1109/ICST.2012.182
  • [7] Bhme M., 2016, P 2016 ACM SIGSAC C, P1032, DOI DOI 10.1145/2976749.2978428
  • [8] Cadar C., 2008, Proceedings of the 8th USENIX conference on Operating systems design and implementation, OSDI'08, (USA), P209
  • [9] Symbolic Execution for Software Testing: Three Decades Later
    Cadar, Cristian
    Sen, Koushik
    [J]. COMMUNICATIONS OF THE ACM, 2013, 56 (02) : 82 - 90
  • [10] Program-Adaptive Mutational Fuzzing
    Cha, Sang Kil
    Woo, Maverick
    Brumley, David
    [J]. 2015 IEEE SYMPOSIUM ON SECURITY AND PRIVACY SP 2015, 2015, : 725 - 741