Google利用“Big Sleep”发现SQLite新漏洞
关键要点
谷歌首次使用大型语言模型代理“Big Sleep”发现了一种新型的可利用内存漏洞。漏洞位于开发版本的广泛使用开源数据库引擎SQLite中。Big Sleep 利用变体分析,帮助识别代码中的潜在缺陷。该团队指出,目标特定模糊测试器在检测漏洞方面可能与AI代理同样有效。研究人员表示,及早发现软件漏洞具有重要的防御潜力。谷歌公司最近宣布,他们首次利用名为“Big Sleep”的大型语言模型代理发现了一种以前未知、可利用的内存缺陷,此漏洞出现在一个广泛使用的软件中。《谷歌项目零》与《谷歌DeepMind》的合作使这一突破成为可能。
加速器免费一小时这次发现是在SQLite的开发版本中,涉及一种堆栈缓冲区下溢的漏洞。Big Sleep通过变体分析成功找出此问题,标志着大型语言模型在漏洞研究中的应用有了显著进展。
Big Sleep是Project Zero的Naptime项目的进一步发展,后者是一个于六月宣布的框架。该框架使大型语言模型能够自主实行基本的漏洞研究,提供了一系列工具,包括代码浏览器、调试器、报告工具和一个用于运行Python脚本的沙箱环境。
研究人员为驱动Gemini 15 Pro的AI代理提供了先前SQLite漏洞的切入点,使Big Sleep能够搜索软件新版本中的潜在相似漏洞。代理接收到最近的提交信息和变更记录,并被要求检查SQLite代码库中的未解决问题。
最终,谷歌的Big Sleep识别出了一个缺陷,涉及函数“seriesBestIndex”对特殊哨兵值1在iColumn字段上的处理不当。由于这个字段通常应为非负数,因此与此字段交互的所有代码必须妥善处理这种独特的情况,而seriesBestIndex未能做到这一点,从而导致了堆栈缓冲区下溢。
Project Zero的博客进一步详细说明了Big Sleep是如何通过多个步骤搜索和测试这个漏洞的,利用提供的上下文和工具,并通过自然语言输出记录其过程。这位LLM代理自主地将之前的缺陷与代码的其他部分联系起来,开发了一个测试案例在沙箱中运行,随后生成了根本原因分析和完整的崩溃报告。
Big Sleep最终生成的摘要几乎可以直接报告,谷歌Project Zero与谷歌DeepMind的研究人员写道,清晰解释了某个输入如何导致崩溃,原因是seriesBestIndex未能妥善处理iColumn字段中的负值。

谷歌研究人员当天向SQLite报告了这一问题,SQLite在2024年10月9日当天便修复了该缺陷。研究人员提到,由于该缺陷出现在数据库引擎的开发版本中,因而并未进入正式发布版本,也未对SQLite的用户造成影响。
研究人员指出:“我们认为这项工作具有巨大的防御潜力。在软件发布之前发现漏洞意味着攻击者没有机会利用这些漏洞:在攻击者甚至有机会使用它们之前,漏洞就已被修复。”
Big Sleep团队还指出,该代理有潜力发现一些通过典型模糊测试技术较难发现的bug。他们表示,在150个CPU小时的测试中,尝试通过模糊测试重新发现SQLite的缺陷并未取得成功。这很可能是因为可用于SQLite的模糊测试工具的配置限制,以及传统上用于SQLite模糊测试的工具American Fuzzy Lop (AFL)在长时间使用后“达到了自然饱和点”。
然而,团队强调Big Sleep依然“高度实验性”,并相信目标特定的模糊测试器在目前状态下“至少同样有效”于检测漏洞。
能源网络安全立法在众议院获得进展 传媒
能源网络安全大学领导计划法案通过重点提取美国众议院已通过《能源网络安全大学领导计划法案》,旨在加强美国能源基础设施的网络安全防御。此法案针对去年的Colonial Pipeline ransomwar...