网络安全 频道

谷歌的Big Sleep LLM代理在SQLite中发现了未知漏洞

  谷歌宣布,其首次利用名为“Big Sleep”的大型语言模型(LLM)代理,在广泛使用的软件中发现了一个此前未知的、可利用的内存缺陷。

  Big Sleep是谷歌Project Zero与谷歌DeepMind合作的产物,它通过变异分析,在流行的开源数据库引擎SQLite的一个开发版本中发现了栈缓冲区下溢漏洞。

  Big Sleep是Project Zero的Naptime项目的升级版,后者是今年6月宣布的一个框架,它使LLM能够自主进行基本的漏洞研究。该框架为LLM提供了用于测试软件潜在缺陷的工具,这些工具以类似人类的工作流程运行,包括代码浏览器、调试器、报告工具和用于运行Python脚本并记录输出的沙盒环境。

  研究人员为Gemini 1.5 Pro驱动的AI代理提供了之前SQLite漏洞的起点,为Big Sleep在新版本软件中搜索潜在类似漏洞提供了上下文。代理被提供了最近的提交信息和差异更改,并被要求审查SQLite存储库中的未解决问题。最终,谷歌的Big Sleep识别出了一个涉及“seriesBestIndex”函数错误处理iColumn字段中特殊哨兵值-1的漏洞。由于该字段通常应为非负值,因此与该字段交互的所有代码都必须设计为正确处理这一特殊情况,而seriesBestIndex未能做到这一点,从而导致了栈缓冲区下溢。

  Project Zero的博客进一步揭示了Big Sleep如何使用提供的上下文和工具,通过多个步骤搜索和测试漏洞,并通过自然语言输出记录其过程。LLM代理自主地将之前的漏洞与代码的其他部分联系起来,开发了一个在沙盒中运行的测试用例,然后在触发崩溃后生成了根本原因分析和完整的崩溃报告。

  谷歌Project Zero和谷歌DeepMind的研究人员写道,Big Sleep最终生成的发现摘要“几乎可以直接报告”,它清楚地解释了由于seriesBestIndex未能处理iColumn字段中的负值,某个输入如何触发了崩溃。

  谷歌研究人员于2024年10月9日向SQLite报告了此问题,SQLite当天就修复了该问题。研究人员指出,由于漏洞存在于数据库引擎的开发版本中,因此它从未进入正式版本或影响SQLite用户。

  “我们认为这项工作具有巨大的防御潜力。在软件发布之前就发现漏洞,意味着攻击者没有可乘之机:漏洞在攻击者有机会利用之前就已经被修复,”研究人员表示。

  Big Sleep团队还指出,该代理有潜力发现使用典型模糊测试技术难以发现的漏洞。他们表示,尝试使用模糊测试重新发现SQLite漏洞,在150个CPU小时的测试后仍未发现漏洞。他们指出,这很可能是由于SQLite可用的模糊测试框架的配置限制,以及传统上用于SQLite模糊测试的工具——American Fuzzy Lop(AFL)——在长期使用后“已达到自然饱和点”。

  然而,团队强调,Big Sleep仍处于“高度实验性”阶段,他们认为,针对特定目标的模糊测试器“在检测漏洞方面至少与当前状态的AI代理一样有效”。

1
相关文章