谷歌利用 Big Sleep 大型语言模型代理发现 SQLite 内存缺陷

aixo 2024-11-07 12:03:28
大模型 2024-11-07 12:03:28

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

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

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

llmops_LLM_溜溜梅

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

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

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

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

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

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

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

LLM