Google上周披露AI漏洞挖掘项目Big Sleep,宣称已利用它在10月找到了一个位于SQLite的堆栈缓冲区下溢漏洞,不管是SQLite现有的测试基础设施,或是OSS-Fuzz都没有发现该漏洞,相信这是AI代理工具于广泛使用的实际软件中,发现未知内存漏洞的第一个公开例子。SQLite开发者则在收到Google通知的当天便修补了该漏洞。

Big Sleep是由Google Project Zero团队今年6月发布的Naptime项目(Project Naptime)衍生而来。Naptime旨在评估大型语言模型(LLM)于安全漏洞研究中的潜力,它开发了一个框架,让LLM能够模仿人类安全专家发现并展示安全漏洞的系统性方法,并经过Meta CyberSecEval2基准测试的验证;而Big Sleep则是Project Zero与DeepMind的研究成果,它采用Naptime框架,并将LLM的应用从纯粹的基准测试扩展到真实世界的漏洞发现。

推动Naptime与Big Sleep项目的动力之一,是因为发现有各种已修补漏洞的变种仍不断遭到黑客利用,该趋势显示出模糊测试无法有效抓住这些变种,另一方面,黑客手动分析这些变种却是一个具备成本效益的做法。

Google表示,与开放式漏洞研究相比,现有的大型语言模型更适合变种分析。提供一个起点,如先前漏洞的细节,能减少研究的模糊性,并基于“先前有一个漏洞,可能还有类似的漏洞存在”这样具体的理论进行探索。

Big Sleep项目仍处于研究阶段,并利用含有已知漏洞的小程序来进行评估,Google日前决定于SQLite上进行首次大规模的实际变种分析实验,以测试相关的模型与工具,研究人员搜集了SQLite程序库最近的提交记录,手动删除了那些微小的与仅涉及文件的变更,接着调整了提示,提供提交消息与程序代码变更的差异对照,要求AI代理工具检查程序库的最新版本,寻找可能还未修复的相关问题,进而找出了SQLite上的堆栈缓冲区下溢漏洞。

Google认为,Big Sleep项目拥有具大的防御潜力,得以在软件发布前就发现软件中的安全漏洞,让漏洞在遭到黑客利用之前就被修复。人们需要一种方法来帮助防御者找到那些模糊测试很难发现的错误,希望AI可以缩小该差距。