近期,谷歌宣布其人工智能驱动的模糊测试工具 OSS-Fuzz 成功识别出26个开源代码库中的安全漏洞,其中包括 OpenSSL 加密库中的一个中等严重性问题。
谷歌的开源安全团队在一篇博客文章中指出:“这些漏洞的发现代表了自动化漏洞检测的一个新里程碑:每一个漏洞都是通过 AI 生成和优化的模糊测试目标找到的。”
图源备注:图片由AI生成,图片授权服务商Midjourney
此次发现的 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++ 语言无法实现完全的内存安全,但这些改进无疑降低了风险,使软件更加可靠且安全。
重点总结:
🌟 谷歌的 OSS-Fuzz 工具发现了26个开源项目中的漏洞,包括一个存在近20年的 OpenSSL 漏洞。
🔍 AI 生成的模糊测试目标提高了272个 C/C++ 项目的代码覆盖率,增加了超过370,000行新代码。
🔒 谷歌正在将代码迁移到内存安全语言,并通过硬化 libc++ 等策略提升 C++ 项目的安全性。
暂无评论