arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 2012.13516cs.SE
收藏

具有快速失败反馈的模糊控制

Fuzzing with Fast Failure Feedback

Rahul Gopinath, Bachir Bendrissou, Björn Mathis, Andreas Zeller

摘要:

模糊测试--用随机输入测试程序--已经成为检测程序中错误和漏洞的主要技术。为了生成覆盖新功能的输入,模糊器需要来自程序的执行反馈--例如,由以前的输入获得的覆盖率,或者需要解决以覆盖新分支的条件。但是,如果没有这样的执行反馈,模糊只能依赖于机会,这是无效的。在本文中,我们介绍了一种新的模糊技术,它只依赖于故障反馈-也就是说,输入是否有效,如果不是,错误发生的信息。我们的bFuzzer工具逐个字节地枚举输入空间,并测试程序,直到找到有效的前缀,然后从这些前缀继续探索。由于不需要插装或执行反馈,bFuzzer与语言无关,并且所需的测试执行得非常快。我们评估我们的技术上的五个科目,并表明,bFuzzer是有效的和高效的,即使在比较其白盒对应。

英文摘要:

Fuzzing -- testing programs with random inputs -- has become the prime technique to detect bugs and vulnerabilities in programs. To generate inputs that cover new functionality, fuzzers require execution feedback from the program -- for instance, the coverage obtained by previous inputs, or the conditions that need to be resolved to cover new branches. If such execution feedback is not available, though, fuzzing can only rely on chance, which is ineffective. In this paper, we introduce a novel fuzzing technique that relies on failure feedback only -- that is, information on whether an input is valid or not, and if not, where the error occurred. Our bFuzzer tool enumerates byte after byte of the input space and tests the program until it finds valid prefixes, and continues exploration from these prefixes. Since no instrumentation or execution feedback is required, bFuzzer is language agnostic and the required tests execute very quickly. We evaluate our technique on five subjects, and show that bFuzzer is effective and efficient even in comparison to its white-box counterpart.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑