论文标题
基于进化语法的模糊
Evolutionary Grammar-Based Fuzzing
论文作者
论文摘要
Fuzzer向目标软件提供随机生成的输入,以揭示错误的行为。为了有效地检测缺陷,生成的输入应符合输入格式的结构,因此,语法可用于生成句法正确的输入。在这种情况下,模糊可以由语法中竞争规则附加的概率来指导,从而导致基于语法的模糊构想。但是,对单个语法规则的最佳概率分配有效地暴露了正在测试的单个系统的错误行为是一个开放的研究问题。在本文中,我们提出了EvogFuzz,这是一种基于进化语法的模糊方法,以优化生成可能触发异常行为的测试输入的概率。评估显示了与基于概率语法的模糊(基线)相比,Evogfuzz在检测缺陷方面的有效性。评估适用于具有共同输入格式(JSON,JAVASCRIPT或CSS3)的十个现实世界应用,评估表明,与基线相比,EvogFuzz的所有受试者的中间线覆盖率明显更大。此外,Evogfuzz设法暴露了11条独特的缺陷,基线未从中检测到5个。
A fuzzer provides randomly generated inputs to a targeted software to expose erroneous behavior. To efficiently detect defects, generated inputs should conform to the structure of the input format and thus, grammars can be used to generate syntactically correct inputs. In this context, fuzzing can be guided by probabilities attached to competing rules in the grammar, leading to the idea of probabilistic grammar-based fuzzing. However, the optimal assignment of probabilities to individual grammar rules to effectively expose erroneous behavior for individual systems under test is an open research question. In this paper, we present EvoGFuzz, an evolutionary grammar-based fuzzing approach to optimize the probabilities to generate test inputs that may be more likely to trigger exceptional behavior. The evaluation shows the effectiveness of EvoGFuzz in detecting defects compared to probabilistic grammar-based fuzzing (baseline). Applied to ten real-world applications with common input formats (JSON, JavaScript, or CSS3), the evaluation shows that EvoGFuzz achieved a significantly larger median line coverage for all subjects by up to 48% compared to the baseline. Moreover, EvoGFuzz managed to expose 11 unique defects, from which five have not been detected by the baseline.