谷歌声称,其人工智能模型是同类中第一个在野外发现内存安全漏洞的模型,特别是 SQLite 中可利用的堆栈缓冲区下溢,然后在有缺陷的代码正式发布之前修复了该漏洞。
The Chocolate Factory 的基于 LLM 的 bug 搜寻工具被称为 Big Sleep,是 Google 的 Project Zero 和 DeepMind 之间的合作项目。据说该软件是 6 月份宣布的早期 Project Naptime 的演变。
SQLite是一个开源数据库引擎,堆栈缓冲区下溢脆弱性可能允许攻击者造成崩溃,甚至可能实现任意代码执行。更具体地说,由于在某个时刻意外地将神奇值 -1 用作数组索引,因此 SQLite 可执行文件(而不是库)中会发生崩溃或代码执行。代码中有一个断言()来捕获 -1 作为索引的使用,但在发布版本中,此调试级别检查将被删除。
因此,不法分子可能会通过与用户共享的恶意制作的数据库或通过某种 SQL 注入来触发不良索引错误,从而导致崩溃或在受害者的计算机上实现代码执行。就连谷歌员工也承认,这个漏洞的利用并不简单,所以要注意的是,这个漏洞的严重性并不是这里真正的新闻——这家网络巨头相信它的人工智能已经取得了第一。
我们被告知,模糊测试(将随机和/或精心设计的数据输入软件以发现可利用的错误)并没有发现问题。
然而,法学硕士却做到了。据谷歌称,这是人工智能代理首次在广泛使用的现实世界软件中发现先前未知的可利用内存安全缺陷。Big Sleep 在 10 月初记录了该错误后,被告知要对该项目的源代码进行一系列提交,SQLite 的开发人员修好了同一天。因此,该缺陷在正式发布之前已被删除。
“我们认为这项工作具有巨大的防守潜力,”Big Sleep 团队拥挤的在 11 月 1 日的一篇文章中。“模糊测试有很大帮助,但我们需要一种方法可以帮助防御者找到通过模糊测试很难(或不可能)发现的错误,我们希望人工智能能够缩小这一差距。”
我们应该注意到,10 月份,总部位于西雅图的 Protect AI宣布它是一个免费的开源工具,声称可以在 Anthropic 的 Claude AI 模型的帮助下找到 Python 代码库中的零日漏洞。
该工具名为 Vulnhuntr,据其开发人员称,它已在大型开源 Python 项目中发现了十多个零日漏洞。
谷歌表示,这两种工具有不同的用途。“我们在博客文章中的断言是 Big Sleep 发现了第一个未知的可利用的内存安全问题在广泛使用的现实世界软件中,”谷歌发言人告诉登记册,加上我们的强调。“Python LLM 发现与内存安全无关的不同类型的错误。”
Big Sleep 仍处于研究阶段,迄今为止已使用具有已知漏洞的小程序来评估其查找错误的能力。这是它的第一次现实世界实验。
为了进行测试,团队收集了最近对 SQLite 存储库的一些提交。在手动删除琐碎的和仅文档的更改后,“然后我们调整了提示,为代理提供提交消息和更改的差异,并要求代理检查当前存储库(位于头)对于可能尚未解决的相关问题,”该团队写道。
基于 Gemini 1.5 Pro 的 LLM 最终发现了该 bug,该 bug 与种子提交的更改松散相关[1976c3f7]。“这在手动变体分析中并不罕见,了解代码库中的一个错误通常会导致研究人员遇到其他问题,”谷歌员工解释道。
在文章中,Big Sleep 团队还详细介绍了代理评估代码、查找漏洞、使系统崩溃以及进行根本原因分析所采取的步骤的“亮点”。
“然而,我们想重申,这些都是高度实验性的结果,”他们写道。“Big Sleep 团队的立场是,目前,针对特定目标的模糊器可能至少同样有效(在发现漏洞方面)。”®