中文

当我们进行模糊测试时发生了什么?调查OSS-Fuzz缺陷历史

软件工程 2023-05-22 v1

摘要

背景:软件工程师必须保持警惕,预防和纠正漏洞及其他严重缺陷。为满足这一需求,已开发出大量工具和技术来协助开发人员。模糊测试器通过自主生成输入来测试程序,有望通过检测内存损坏、输入处理、异常案例及其他问题来节省时间。目标:本工作的目标是通过分析OSS-Fuzz生成的缺陷历史,使开发人员能够优先进行质量保证。具体而言,我们通过测量缺陷寿命、学习机会和缺陷类型,考察了项目采用模糊测试作为质量保证实践后所发生的情况。方法:我们分析了OSS-Fuzz在2022年3月12日之前公开的44,102个报告问题。我们将重复模糊测试报告的Git提交范围追溯到源代码仓库,以识别模糊测试缺陷在系统中存留的时间、由谁修复这些缺陷,以及模糊测试器历史上发现的缺陷类型。我们识别出引入缺陷的提交,以估计包含缺陷的代码被引入的时间,并测量从引入到检测到修复的时间线。结果:我们发现OSS-Fuzz中检测到的缺陷中位寿命为324天,但缺陷一旦被检测到,未被处理的中位时间仅为2天。此外,我们发现,在可识别源提交作者的8,099个问题中,只有不到一半(45.9%)的问题由引入该缺陷的同一作者修复。结论:结果表明,模糊测试可对采用它的项目产生积极影响,使其能够在有利于在产品发布前纠正错误的时间框架内处理缺陷。

关键词

引用

@article{arxiv.2305.11433,
  title  = {What Happens When We Fuzz? Investigating OSS-Fuzz Bug History},
  author = {Brandon Keller and Andrew Meneely and Benjamin Meyers},
  journal= {arXiv preprint arXiv:2305.11433},
  year   = {2023}
}