摘要 — 与对代码的每个部分给予同等关注的基于覆盖率的模糊测试不同,定向模糊测试旨在将模糊测试器定向到代码中的特定目标,例如,具有潜在漏洞的代码。尽管取得了很大进展,但我们观察到现有的有向模糊测试器仍然效率不高,因为它们通常象征性地或具体地执行许多无法到达目标代码的程序路径。因此,它们浪费了大量的计算资源。本文介绍了BEEACON,它可以以可证明的方式有效地引导路径海洋中的灰盒模糊器。也就是说,在轻量级静态分析的协助下,计算到达目标的抽象前提条件,我们可以在运行时修剪82.94%的执行路径,分析开销(?5h)可以忽略不计,但可以保证修剪的路径必须是虚假的,并且对目标有感知。我们已经实施了我们的方法,BEACON,并将其与漏洞再现应用场景中的五个最先进的(定向)模糊测试器进行了比较。评估结果表明,BEACON在average上的速度比现有的定向灰盒模糊测试快11.50倍,并且还可以提高传统覆盖引导模糊器AFL,AFL ++和Mopt的速度,以分别以6.31x,11.86x和10.92x加速来重现特定错误。 更有趣的是,当用于 测试漏洞补丁时, BEACON 发现了 14 个未完成的修复,这些漏洞修复了现有的 CVE 识别漏洞和 8 个新 bug,而其中 10 个漏洞可以通过分配新的 CVE ID 来利用。
一、引言
|