谷歌公司日前表示,旗下一款名为“ Big Sleep”(前称 Project Naptime)的大语言模型(LLM)辅助框架在 SQLite 开源数据库引擎中发现了一个零日漏洞,并称这是该类型AI工具首次在实际广泛使用的软件中发现零日漏洞。
SQLite 是一种在开发人员中流行的开源数据库引擎,所发现的漏洞指向其中的堆栈缓冲区下溢,当软件在内存缓冲区开始之前引用内存位置时,就会出现该漏洞,从而导致系统崩溃或任意代码执行。
谷歌研究人员在 10 月初向 SQLite 开发人员报告了该漏洞,对方在同一天修复了漏洞。由于漏洞是在正式版本出现之前被发现,因此不会影响正在使用SQLite的用户。
发现该漏洞的“ Big Sleep”AI模型属Google Project Zero 和 Google DeepMind 之间的合作项目,旨在大型语言模型的辅助下进行漏洞研究。 谷歌指出,在 8 月 DEFCON 安全会议上,负责创建 AI 辅助漏洞研究工具的网络安全研究人员表示在 SQLite 中发现了另一个问题,从而激发团队研究是否可以从中找到更严重的漏洞。
通常,许多公司使用一种称为“模糊测试”的过程,通过向软件提供随机或无效数据来测试软件,这些数据旨在识别漏洞、触发错误或使程序崩溃。但谷歌认为,模糊测试在帮助防御者找到难以(或不可能)发现的漏洞方面做得还不够,希望利用人工智能可以缩小这一差距。
而长期存在的漏洞变体问题也是“ Big Sleep”项目的主要动机之一, 谷歌在 2022 年发布的报告就曾指出,40% 以上的零日漏洞是已报告漏洞的变种,另有超过 20% 的漏洞也是以前的野外零日漏洞的变种。随着这种趋势的持续,模糊测试已无法成功捕获此类变体,而对于攻击者来说,手动变体分析成为一种经济高效的方法。
在“ Big Sleep”中,研究人员利用 LLM 的代码理解和推理能力,在识别和演示安全漏洞时利用 AI 代理来模拟人类行为,其中需要使用一套专用工具来允许代理浏览目标代码库,并在沙盒环境中运行 Python 脚本以生成用于模糊测试的输入、调试程序并观察结果。
“我们认为这项工作具有巨大的防御潜力。在软件发布之前就发现软件中的漏洞,意味着攻击者没有竞争的余地:漏洞甚至在攻击者有机会使用它们之前就被修复了,“谷歌表示。
但谷歌也强调,这些仍然是实验结果,“ Big Sleep”研究团队的立场是,在发现漏洞方面,目前特定于目标的模糊测试程序可能至少同样有效。希望在未来,这项工作将为防御者带来显著的优势——不仅可以找到崩溃的测试用例,还可以提供高质量的根本原因分析,分类和修复漏洞在未来也可能会更便宜、更有效。