最先进的模糊测试框架

逆向工程 模糊测试
2021-06-20 10:53:50

我之前已经推出了自己的 Fuzzing 框架,并尝试了一些其他的,比如 Peach Fuzzer。我已经有一段时间没有研究漏洞追踪了,关于模糊测试的最新技术是什么?也就是说,如果我今天开始对 Acme Corp 的 PDF 阅读器进行模糊测试,我应该研究什么工具集?

2个回答

模糊器分为三种类型:

  • 突变模糊器,它从大量不同的、良好的输入文件和突变列表开始。然后,每个文件都以某种方式改变并传递给应用程序以查看应用程序是否可以处理改变后的输入。Charlie Miller 2010 年的CanSecWest 演讲很好地介绍了这种方法。通常,为文件格式滚动您自己的变异模糊器版本很简单。
  • 生成模糊器,最简单的就是生成随机输出。更复杂的版本将能够描述在协议的各个领域中注入随机性的协议和方法。Sulley是这个类中的一个工具。一个特别好的子类是基于语法的模糊器,您可以从 BNF 语法开始,并通过直接遍历语法生成字符串。
  • 白盒模糊器可以说是一个不同的类,其中一些约束求解器会考虑代码路径以生成新的模糊测试输入。雪崩是一个公开可用的工具。(SAGE,@0xea 指出的工具,是另一个例子。)

Miller 的另一篇论文对前两篇论文进行了很好的概述。您可能应该看到Fuzzing 书的网站,其中有一些您可以开始使用的软件。

不知道最先进的技术,但在结合符号执行的方向上取得了一些进展,如MS Research 的SAGE(应该有更好的论文,但我认为它是付费的)。为智能模糊化污点基础的方法展示了如何污点分析先进的模糊结合(应该有一些非paywalled版本各地)。另外,我希望大多数人在他们用尽它们之前不会真正发布他们的高级技术,这是这个问题的主要问题。