​谷歌AI驱动的 OSS-Fuzz 工具发现26个开源项目漏洞

来源:AIbase基地· 2024-11-21 17:05:03

近日,谷歌宣布其基于人工智能的模糊测试工具 OSS-Fuzz 成功发现了26个开源代码库中的漏洞,其中包括 OpenSSL 加密库中的一个中等严重性漏洞。

谷歌的开源安全团队在一篇分享的博客文章中表示:“这些漏洞的发现标志着自动化漏洞检测的新里程碑:每个漏洞都是通过 AI 生成和增强的模糊测试目标找到的。”

此次发现的 OpenSSL 漏洞编号为 CVE-2024-9143(CVSS 评分为4.3),其表现为一个越界内存写入错误,可能导致应用程序崩溃或远程代码执行。该问题已在 OpenSSL 的多个版本中得到修复,包括3.3.3、3.2.4、3.1.8、3.0.16、1.1.1zb 和1.0.2zl。谷歌指出,这个漏洞可能在代码库中存在了近20年,而传统人类编写的模糊测试目标无法发现该问题。

谷歌还提到,借助 AI 生成的模糊测试目标,272个 C/C++ 项目的代码覆盖率得到了提升,增加了超过370,000行的新代码。谷歌解释道,之所以许多错误会被忽视,是因为代码覆盖率并不等同于功能没有漏洞。仅靠代码覆盖率这一指标并不能衡量所有可能的代码路径和状态,因为不同的标志和配置可能会触发不同的行为,从而暴露出不同的漏洞。

这种 AI 辅助的漏洞发现还得益于大语言模型(LLMs)在模拟开发者模糊测试工作流程方面的出色表现,进一步提高了自动化程度。此外,谷歌本月初还透露,其基于 LLM 的框架 Big Sleep 帮助检测到 SQLite 开源数据库引擎中的一个零日漏洞。

为了提高自身代码库的安全性,谷歌正在推动将代码迁移到内存安全语言如 Rust,并对现有的 C++ 项目进行空间内存安全漏洞的修复。这包括迁移到安全缓冲区并启用硬化 libc++,通过对标准 C++ 数据结构添加边界检查,消除一类重要的空间安全漏洞。谷歌表示,实施这些改进所造成的性能损耗极小,平均仅为0.30%。

谷歌进一步强调,最近由开源贡献者添加的硬化 libc++ 引入了一系列安全检查,旨在在生产环境中捕捉诸如越界访问等漏洞。尽管 C++ 语言无法完全实现内存安全,这些改进无疑降低了风险,使软件更加可靠和安全。


[免责声明]如需转载请注明原创来源;本站部分文章和图片来源网络编辑,如存在版权问题请发送邮件至398879136@qq.com,我们会在3个工作日内处理。非原创标注的文章,观点仅代表作者本人,不代表本站立场。