我应该如何配置操作系统以进行模糊测试?

信息安全 模糊测试
2021-08-21 14:03:10

如果我要进行一些模糊测试,我应该以任何特定方式配置我的操作系统吗?我应该关闭 ASLR(地址空间随机化)吗?有关系吗?

3个回答

ASLR 是一个广义术语,包含许多不同的保护和技术。通常,ASLR 的基本形式(例如堆栈随机化)用于使漏洞利用的开发更加困难或不可能 - 但不会阻止触发错误和应用程序崩溃。无论是否启用 aslr,模糊测试都应该同样有效。

在我的脑海中,我不认为 aslr 会以一种或另一种方式很重要——在我看来,它在防止错误变成 vuln 方面更有效。任何时候你的 fuzzer 得到一个超出范围的结果,你最安全的假设是它可以用来对付你;不确定 aslr 是否会改变这一点,因为有很多方法可以绕过它(取决于设置、平台、yada yada)。

无论如何,我会说你应该让系统尽可能松散,让你的模糊器有最大的机会成功找到漏洞——没有防火墙、高 ulimits、充足的带宽、如果你在多线程应用程序上使用大量处理器来最大化比赛条件的机会等

我还建议在多个操作系统上运行时进行模糊测试,因为库的行为可能不同。这尤其适用于 Windows,它有很多很好的调试工具。对 osx 了解不多,但是如果您可以在那里运行您的东西,您可能会发现一个完全不同的环境。

请发布结果 - 我很想知道这是如何工作的。

我建议使用具有测试工具的模糊测试框架,例如Peach Fuzz中的测试工具。测试工具会将调试器附加到您的目标应用程序并跟踪崩溃报告以及导致它的模糊测试用例。当目标应用程序崩溃时,harness 将重新启动应用程序并继续测试。

ASLR、NX 区域、金丝雀、堆 cookie 等,等等,都不会导致模糊测试过程出现问题。但是,当您发现内存损坏漏洞时,这些将使得利用它变得非常困难。