💡
原文英文,约3700词,阅读约需14分钟。
📝
内容提要
尽管OSS-Fuzz对开源项目进行了多年模糊测试,仍有漏洞存在。OSS-Fuzz与OpenSSF合作发现了大量漏洞,但持续的模糊测试并非解决所有问题的灵丹妙药。许多项目在多年测试后仍有严重漏洞,需要人工监督以确保测试覆盖率并编写新的模糊器。
🎯
关键要点
- 尽管OSS-Fuzz对开源项目进行了多年模糊测试,仍有漏洞存在。
- OSS-Fuzz与OpenSSF合作发现了大量漏洞,但持续的模糊测试并非解决所有问题的灵丹妙药。
- 许多项目在多年测试后仍有严重漏洞,需要人工监督以确保测试覆盖率并编写新的模糊器。
- 模糊测试是一种自动化软件测试技术,通过向程序输入随机或变异的值来监控异常或崩溃。
- GStreamer在七年的模糊测试中发现了29个新漏洞,显示出其测试覆盖率不足。
- OSS-Fuzz需要人工监督来监控项目覆盖率,并为未覆盖的代码编写新的模糊器。
- 开发者对模糊测试的误解可能导致他们对项目的安全性产生错误的信心。
- Poppler作为PDF解析库,尽管有60%的代码覆盖率,但仍存在未被发现的漏洞,原因在于外部依赖未被充分测试。
- Exiv2库在模糊测试中发现了多个漏洞,但仍有新漏洞被其他研究人员报告,显示出编码逻辑的漏洞容易被忽视。
- 模糊测试的五步工作流程包括代码准备、提高代码覆盖率、改善上下文敏感覆盖率、提高值覆盖率和缺陷分类。
- 模糊测试并不是万能的,某些漏洞可能需要大输入或额外时间才能触发,现有模糊器难以捕捉这些漏洞。
- 对于难以检测的漏洞,通常需要采用静态分析、符号测试或手动代码审查等其他方法。
➡️