谷歌利用 AI 发现 20 年前的软件漏洞:「模糊测试」改写安全游戏规则

谷歌近日通过 AI 程序发现了一个隐藏了二十年的开源软件漏洞。谷歌在周三的一篇博客文章中表示,借助类似 ChatGPT 的 AI 工具,公司共识别出了 26 个漏洞,其中包括一个在 OpenSSL 中潜伏了二十年的漏洞。

这些漏洞是通过一种称为「模糊测试」(fuzz testing)的方法发现的。模糊测试通过向软件程序输入随机数据以查看其是否会崩溃,从而诊断潜在问题。去年,谷歌开始利用大型语言模型(LLM)来编写模糊测试代码,将以往需要人类手动进行的测试工作转移给 AI。

「我们的方法是利用 LLM 的编程能力生成更多模糊测试目标,从而提高测试效率,」谷歌开源安全团队在博客中写道。「LLM 在模拟典型开发者的完整工作流程方面表现出卓越的能力,包括编写、测试和迭代模糊测试目标,以及分类分析发现的崩溃问题。」

自推出以来,谷歌已在 272 个软件项目中应用了这一 AI 工具,发现了 26 个漏洞。其中一个名为 CVE-2024-9143 的漏洞涉及 OpenSSL,这是一种广泛用于互联网连接加密和服务器认证的工具。据研究人员称,这一漏洞可能已存在二十年,用传统的由人类编写的模糊测试代码是无法发现的。

该漏洞的核心问题在于「越界内存访问」,即程序试图访问超出允许范围的内存,这可能导致程序崩溃,甚至在极少数情况下执行恶意代码。尽管如此,由于发生危险操作的风险极小,该漏洞的严重性被评估为低。

谷歌推测,这一漏洞未被发现的原因在于相关代码被视为已通过充分测试。「代码覆盖率作为衡量标准,无法涵盖所有可能的代码路径和状态——不同的标志和配置可能触发不同行为,进而揭示不同漏洞,」研究人员指出。「这表明即使是已经过模糊测试的代码,也需要不断生成新的测试目标。」

展望未来,谷歌开源安全团队正致力于让 LLM 能够为发现的漏洞自动生成修复补丁。另一个目标是实现「无需人工审核」的漏洞报告流程。「这将有助于自动向项目维护人员报告新漏洞,」团队表示。

这一努力还与谷歌的另一个 AI 项目「Big Sleep」相结合,该项目同样利用 LLM 模拟人类安全研究人员的工作流程以发现漏洞。本月早些时候,谷歌宣布,Big Sleep 已成功发现 SQLite(一种开源数据库引擎)中一个此前未知且可利用的漏洞。

返回顶部