Grammar Mutation for Testing Input Parsers (Registered Report)

Grammar Mutation for Testing Input Parsers (Registered Report)
复制标题

用于测试输入解析器的语法突变(注册报告)

DOI:
10.1145/3605157.3605170
复制
发表时间:
2023
期刊:
--
影响因子:
--
通讯作者:
Bendrissou B
Bendrissou B
中科院分区:
--
文献类型:
--
作者:
Bendrissou B

文献摘要

参考文献

相似文献

基于语法的模糊测试是测试使用结构化输入的程序,特别是输入解析器的有效方法。这种方法的先决条件是以语法的形式对输入格式进行规范。因此,一个基于语法的模糊运动的成功是高度依赖于可用的语法。如果语法不能准确地表示输入格式,或者如果被测系统(SUT)不严格遵守该语法,则在通过基于语法的模糊生成的输入和SUT接受的输入之间可能存在阻抗不匹配。即使SUT被设计为严格遵守语法,SUT解析器也可能存在仅由轻微无效的输入触发的漏洞。通过构造,基于语法的模糊不会产生这样的边缘情况输入。 为了克服这些限制,我们提出了Gmutator,一种方法,变异的输入语法,并利用语法模糊器产生输入符合突变的语法。因此,Gmutator可以找到不符合原始语法但被SUT(错误地)接受的输入。此外,与标准方法相比,Gmutator生成的输入有可能增加SUT代码覆盖率。我们提出了将Gmutator应用于两个JSON解析库的初步结果,在那里我们能够识别出一些不一致之处,并观察到覆盖代码的增加。我们提出了一个完整的实验评估计划,在四个不同的输入格式-JSON,XML,URL和Lua和十二个SUT(三个输入格式)。
Grammar-based fuzzing is an effective method for testing programs that consume structured inputs, particularly input parsers. A prerequisite of this method is to have a specification of the input format in the form of a grammar. Consequently, the success of a grammar-based fuzzing campaign is highly dependent on the available grammar. If the grammar does not accurately represent the input format, or if the system under test (SUT) does not conform strictly to that grammar, there may be an impedance mismatch between inputs generated via grammar-based fuzzing and inputs accepted by the SUT. Even if the SUT has been designed to strictly conform to the grammar, the SUT parser may exhibit vulnerabilities that would only be triggered by slightly invalid inputs. Grammar-based fuzzing, by construction, will not yield such edge case inputs. To overcome these limitations, we present Gmutator, an approach that mutates an input grammar and leverages the Grammarinator fuzzer to produce inputs conforming to the mutated grammars. As a result, Gmutator can find inputs that do not conform to the original grammar but are (wrongly) accepted by an SUT. In addition, Gmutator-generated inputs have the potential to increase SUT code coverage compared with the standard approach. We present preliminary results applying Gmutator to two JSON parsing libraries, where we are able to identify a few inconsistencies and observe an increase in covered code. We propose a plan for a full experimental evaluation over four different input formats—JSON, XML, URL and Lua—and twelve SUTs (three per input format).
DOI: 10.1145/3368089.3409679
发表时间: 2020-11
期刊: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering
影响因子: --
作者:
Rahul Gopinath;Björn Mathis;A. Zeller
通讯作者: Rahul Gopinath;Björn Mathis;A. Zeller
DOI: 10.1145/3460319.3464814
发表时间: 2021-07
期刊: Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis
影响因子: --
作者:
Prashast Srivastava;Mathias Payer
通讯作者: Prashast Srivastava;Mathias Payer
“合成输入语法”:一项复制研究
DOI: --
发表时间: 2022
期刊: ACM-SIGPLAN Symposium on Programming Language Design and Implementation
影响因子: --
作者:
Bachir Bendrissou;Rahul Gopinath;A. Zeller
通讯作者: A. Zeller
学习高度递归输入语法
DOI: 10.1109/ase51524.2021.9678879
发表时间: 2021
期刊: 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE)
影响因子: --
作者:
Neil Kulkarni;Caroline Lemieux;Koushik Sen
通讯作者: Koushik Sen