中文

FuzzerAid:基于故障签名的模糊测试崩溃分组

软件工程 2022-09-07 v1

摘要

模糊测试一直是发现程序中缺陷与漏洞的重要手段。工业界部署的许多模糊测试器每日运行,会产生数量惊人的崩溃。诊断这些崩溃极具挑战且耗时。现有模糊测试器通常采用代码覆盖率或调用栈哈希等启发式方法来剔除重复报告的缺陷。尽管这些启发式方法代价低廉,却往往不够精确,最终仍会报告许多对应同一缺陷的“唯一”崩溃。本文提出 FuzzerAid,利用故障签名对模糊测试器报告的崩溃进行分组。故障签名是一段小型可执行程序,由原始程序中能够复现某缺陷的若干必要语句组成。在我们的方法中,首先利用给定崩溃生成故障签名,再以其他触发崩溃的输入执行该故障签名;若缺陷被复现,则将这些崩溃归入以该故障签名标记的组,否则生成新的故障签名。所有触发崩溃的输入分类完毕后,我们进一步将同源的故障签名合并为一组。我们在名为 FuzzerAid 的工具中实现了该方法,并在 15 个真实缺陷和 4 个大型开源项目生成的 3020 个崩溃上进行了评估。评估表明,我们能够正确分组 99.1% 的崩溃,仅报告 17(+2)个“唯一”缺陷,优于当前最先进的模糊测试器。

关键词

引用

@article{arxiv.2209.01244,
  title  = {FuzzerAid: Grouping Fuzzed Crashes Based On Fault Signatures},
  author = {Ashwin Kallingal Joshy and Wei Le},
  journal= {arXiv preprint arXiv:2209.01244},
  year   = {2022}
}

备注

In 37th IEEE/ACM International Conference on Automated Software Engineering, October 10 to 14, 2022, Rochester, MI, USA. 12 pages