用于Web浏览器模糊测试的循环神经网络
Recurrent Neural Networks for Fuzz Testing Web Browsers
摘要:
基于生成的模糊测试是一种软件测试方法,能够发现软件中不同类型的错误和漏洞。然而,它是已知的是非常耗时的设计和微调经典的模糊,以实现可接受的覆盖范围,即使是小规模的软件系统。为了解决这个问题,我们研究了一种基于机器学习的模糊测试方法,在该方法中,我们概述了一系列基于循环神经网络(RNN)的测试用例生成器,并训练那些现成的数据集上的测试用例生成器,其中最少的人为微调。与以前的工作相比,所提出的生成器不依赖于启发式采样策略,而是从预测分布中进行有原则的采样。我们提供了一个详细的分析,以证明在一个具有挑战性的Web浏览器测试场景的特点和有效性的建议发电机。实验结果表明,基于RNN的生成器能够提供更好的覆盖率比基于变异的方法,并能够发现路径没有发现一个经典的模糊。我们的研究结果补充了其他领域的研究结果,表明基于RNN的模糊生成是一种可行的途径,可以在使用合适的模型选择/分析程序的条件下提高软件质量。
英文摘要:
Generation-based fuzzing is a software testing approach which is able to discover different types of bugs and vulnerabilities in software. It is, however, known to be very time consuming to design and fine tune classical fuzzers to achieve acceptable coverage, even for small-scale software systems. To address this issue, we investigate a machine learning-based approach to fuzz testing in which we outline a family of test-case generators based on Recurrent Neural Networks (RNNs) and train those on readily available datasets with a minimum of human fine tuning. The proposed generators do, in contrast to previous work, not rely on heuristic sampling strategies but principled sampling from the predictive distributions. We provide a detailed analysis to demonstrate the characteristics and efficacy of the proposed generators in a challenging web browser testing scenario. The empirical results show that the RNN-based generators are able to provide better coverage than a mutation based method and are able to discover paths not discovered by a classical fuzzer. Our results supplement findings in other domains suggesting that generation based fuzzing with RNNs is a viable route to better software quality conditioned on the use of a suitable model selection/analysis procedure.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。