新提交的提交容易将漏洞引入程序。作为一种有前途的对策,可以使用定向灰盒模糊测试器通过将提交更改位置指定为目标来测试提交更改。但是,现有的定向模糊测试器主要侧重于达到单个目标,而忽略了对其他受影响代码的多样化探索。因此,它们可能会忽略在远离更改位置的位置崩溃的错误,并且在多目标场景中缺乏直接性,这在提交测试的背景下都很常见。在本文中,我们提出了一种直接灰盒模糊测试器 WAFLG O ,以有效发现提交引入的漏洞。WAFLGO 采用一种新颖的关键代码引导输入生成策略来彻底探索受影响的代码。具体而言,我们确定了两种类型的关键代码:路径前缀代码和数据后缀代码。关键代码首先引导输入生成逐渐、增量地到达更改位置。然后,在保持关键代码可达性的同时,输入生成策略进一步鼓励在探索受影响代码时生成输入的多样性。此外,WAFLGO 引入了一种轻量级多目标距离度量,用于直接和彻底检查所有更改点。我们实现了 WAFLG O,并使用提交引入的 30 个真实错误对其进行了评估。与 8 种最先进的工具相比,WAFLGO 实现了平均 10.3 × 的加速。此外,WAFLGO 在测试最近 50 次提交的真实软件(包括 libtiff、fig2dev 和 libming 等)时发现了 7 个新漏洞,其中包括 4 个 CVE。
主要关键词