论文标题
与快速失败的反馈有关
Fuzzing with Fast Failure Feedback
论文作者
论文摘要
模糊 - 测试程序随机输入 - 已成为检测程序中错误和漏洞的主要技术。为了生成涵盖新功能的输入,模糊需要从程序中执行反馈 - 例如,以前的输入获得的覆盖范围或需要解决的条件以覆盖新分支。但是,如果没有这样的执行反馈,那么模糊性只能依靠机会,这是无效的。在本文中,我们介绍了一种新颖的模糊技术,该技术仅依赖于故障反馈 - 也就是说,有关输入是否有效的信息,如果没有有效,则发生了错误。我们的bfuzzer工具列举了输入空间字节后的字节,并测试程序找到有效的前缀,并继续从这些前缀进行探索。由于不需要仪器或执行反馈,因此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.