Fuzz Harness 退化的实证研究
软件工程
2025-05-12 v1 密码学与安全
摘要
持续模糊测试平台的目的是通过“模糊测试编织”(fuzz harnesses)为软件项目提供模糊测试功能——但随着项目持续演化,这些编织是否同步更新,还是会过时?如果这些编织保持未维护状态,是否会在覆盖率或发现 bug 数量方面发生退化?这正是本研究的关注对象。我们研究了谷歌的 OSS-Fuzz 持续模糊平台,该平台包含 510 个开源 C/C++ 项目的编织,其中许多是安全关键项目。编织是模糊器与项目之间的胶水代码,因此需要适应项目的变化。它通常由项目维护者添加,或作为某种、时而短暂的测试努力的一部分添加。我们的分析显示,OSS-Fuzz 中项目的整体模糊覆盖率百分比稳定,并且在编织仍可构建的情况下,即使没有显式更新,bug 发现能力也保持惊人的持久性。然而,我们也识别并手动检查了个别编织覆盖率退化案例,并对其根本原因进行了分类。此外,我们为 OSS-Fuzz 和 Fuzz Introspector 贡献了支持检测 OSS-Fuzz 项目编织退化的度量标准,这些度量标准由本研究指导。
引用
@article{arxiv.2505.06177,
title = {An Empirical Study of Fuzz Harness Degradation},
author = {Philipp Görz and Joschua Schilling and Thorsten Holz and Marcel Böhme},
journal= {arXiv preprint arXiv:2505.06177},
year = {2025}
}
备注
16 pages, 26 figures