当前位置: 代码迷 >> 综合 >> TSE2019-The Art, Science, and Engineering of Fuzzing: A Survey
  详细解决方案

TSE2019-The Art, Science, and Engineering of Fuzzing: A Survey

热度:78   发布时间:2023-12-14 02:28:44.0

摘要— 在当今可用的众多软件测试技术中,模糊测试由于其概念简单、部署门槛低以及发现真实世界软件漏洞的大量经验证据而仍然非常受欢迎。在较高级别上,模糊测试是指重复运行程序的过程,生成的输入可能在语法上或语义上格式不正确。虽然近年来,研究人员和从业者都投入了大量不同的精力来改进fuzzing,但这种工作的激增也使得很难获得全面而一致的模糊测试视图。为了帮助保持和使大量的模糊文献具有连贯性,本文提出了一个统一的,通用的模糊化模型以及当前模糊文献的分类法。我们通过调查使现代模糊器有效的艺术,科学和工程方面的相关文献和创新,有条不紊地探索模型模糊器每个阶段的设计决策。

1介绍

不幸的是,研究人员和从业人员在模糊处理方面的工作激增,也预示着进展受阻。例如,对一些fuzzer的描述并不超出其源代码和手册页面。因此,随着时间的推移,很容易失去对这些模糊器的设计决策和潜在重要调整的跟踪。此外,在各种模糊器使用的术语中有一个可观察到的碎片。例如,AFL[243]使用术语“测试用例最小化”来表示一种减少崩溃输入大小的技术,而在funfuzz中,同样的技术被称为“测试用例缩减”[195]。与此同时,BFF[52]包含了一种听起来类似的技术,称为“崩溃最小化”,这是一种寻求最小化崩溃输入与其原始种子文件之间的位数差异的技术,与减少输入大小无关。我们认为这种碎片化使得模糊知识的发现和传播变得困难,这可能会严重阻碍模糊研究的长远发展。
由于上述原因,我们认为现在是巩固和提炼模糊处理大量进展的最佳时机,其中许多进展发生在2007-2008年出版的三本关于该主题的贸易书籍[82]、[212]、[214]之后。
当我们试图统一这一场时,我们将从§2开始提出我们的模糊术语和模糊的统一模型。保持正确的目的,我们的术语选择密切反映当前的主要用法,和我们的

  相关解决方案