Grammar-based whitebox fuzzing

被引:83
|
作者
Godefroid, Patrice [1 ]
Kiezun, Adam [2 ]
Levin, Michael Y. [3 ]
机构
[1] Microsoft Res, Redmond, WA USA
[2] MIT, Comp Sci & Artificial Intelligence Lab, Cambridge, MA 02139 USA
[3] Microsoft Ctr Software Excellence, Redmond, WA USA
关键词
verification; algorithms; reliability; software testing; automatic test generation; grammars; program verification;
D O I
10.1145/1379022.1375607
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Whitebox fuzzing is a form of automatic dynamic test generation, based on symbolic execution and constraint solving, designed for security testing of large applications. Unfortunately, the current effectiveness of whitebox fuzzing is limited when testing applications with highly-structured inputs, such as compilers and interpreters. These applications process their inputs in stages, such as lexing, parsing and evaluation. Due to the enormous number of control paths in early processing stages, whitebox fuzzing rarely reaches parts of the application beyond those first stages. In this paper, we study how to enhance whitebox fuzzing of complex structured-input applications with a grammar-based specification of their valid inputs. We present a novel dynamic test generation algorithm where symbolic execution directly generates grammar-based constraints whose satisfiability is checked using a custom grammar-based constraint solver. We have implemented this algorithm and evaluated it on a large security-critical application, the JavaScript interpreter of Internet Explorer 7 (IE7). Results of our experiments show that grammar-based whitebox fuzzing explores deeper program paths and avoids dead-ends due to non-parsable inputs. Compared to regular whitebox fuzzing, grammar-based whitebox fuzzing increased coverage of the code generation module of the IE7 JavaScript interpreter from 53% to 81% while using three times fewer tests.
引用
收藏
页码:206 / 215
页数:10
相关论文
共 50 条
  • [1] Grammar-based Whitebox Fuzzing
    Godefroid, Patrice
    Kiezun, Adam
    Levin, Michael Y.
    [J]. PLDI'08: PROCEEDINGS OF THE 2008 SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN & IMPLEMENTATION, 2008, : 206 - +
  • [2] Grammar-based Fuzzing
    Sargsyan, Sevak
    Kurmangaleev, Shamil
    Mehrabyan, Matevos
    Mishechkin, Maksim
    Ghukasyan, Tsolak
    Asryan, Sergey
    [J]. 2018 IVANNIKOV MEMORIAL WORKSHOP (IVMEM 2018), 2018, : 32 - 35
  • [3] Bottleneck Analysis via Grammar-based Performance Fuzzing
    Koroglu, Yavuz
    Wotawa, Franz
    [J]. 2023 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION WORKSHOPS, ICSTW, 2023, : 180 - 185
  • [4] Grammar-based Adaptive Fuzzing: Evaluation on SCADA Modbus Protocol
    Yoo, Hyunguk
    Shon, Taeshik
    [J]. 2016 IEEE INTERNATIONAL CONFERENCE ON SMART GRID COMMUNICATIONS (SMARTGRIDCOMM), 2016,
  • [5] TREELINE and SLACKLINE: Grammar-Based Performance Fuzzing on Coffee Break
    Alsaeed, Ziyad
    Young, Michal
    [J]. PROCEEDINGS OF THE 32ND ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2023, 2023, : 1507 - 1510
  • [6] Conformance Testing of Formal Semantics Using Grammar-Based Fuzzing
    Marmsoler, Diego
    Brucker, Achim D.
    [J]. TESTS AND PROOFS (TAP 2022), 2022, 13361 : 106 - 125
  • [7] Leveraging Textual Specifications for Grammar-Based Fuzzing of Network Protocols
    Jero, Samuel
    Pacheco, Maria Leonor
    Goldwasser, Dan
    Nita-Rotaru, Cristina
    [J]. THIRTY-THIRD AAAI CONFERENCE ON ARTIFICIAL INTELLIGENCE / THIRTY-FIRST INNOVATIVE APPLICATIONS OF ARTIFICIAL INTELLIGENCE CONFERENCE / NINTH AAAI SYMPOSIUM ON EDUCATIONAL ADVANCES IN ARTIFICIAL INTELLIGENCE, 2019, : 9478 - 9483
  • [8] Grammar-based Fuzzing Tool Using Markov Chain Model to Generate New Fuzzing Inputs
    Al Salem, Hamad
    Song, Jia
    [J]. 2021 INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE AND COMPUTATIONAL INTELLIGENCE (CSCI 2021), 2021, : 1924 - 1930
  • [9] SpecFuzzer: A Tool for Inferring Class Specifications via Grammar-based Fuzzing
    Molina, Facundo
    d'Amorim, Marcelo
    Aguirre, Nazareno
    [J]. 2023 38TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, ASE, 2023, : 2094 - 2097
  • [10] Grammar-Based Evolutionary Fuzzing for JSON']JSON-RPC APIs
    Veldkamp, Lisette
    Olsthoorn, Mitchell
    Panichella, Annibale
    [J]. 2023 IEEE/ACM INTERNATIONAL WORKSHOP ON SEARCH-BASED AND FUZZ TESTING, SBFT, 2023, : 33 - 36