AIGC宇宙 AIGC宇宙

谷歌内部项目:大模型 AI 智能体发现了代码漏洞

作者:机器之心
2024-11-04 03:54
开源数据库引擎 SQLite 有 bug,还是智能体检测出来的! 通常,软件开发团队会在软件发布之前发现软件中的漏洞,让攻击者没有破坏的余地。 模糊测试 (Fuzzing)是一种常见的软件测试方法,其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常。

开源数据库引擎 SQLite 有 bug,还是智能体检测出来的!

通常,软件开发团队会在软件发布之前发现软件中的漏洞,让攻击者没有破坏的余地。模糊测试 (Fuzzing)是一种常见的软件测试方法,其核心思想是将自动或半自动生成的随机数据输入到一个程序中,并监视程序异常。

尽管模糊测试大有帮助,但有些漏洞难以甚至不可能通过模糊测试发现。

谷歌内部项目:大模型 AI 智能体发现了代码漏洞

谷歌内部有一个名为 Project Zero 的软件安全研究团队,他们发现随着大型语言模型 (LLM) 的代码理解和一般推理能力的提高,LLM 将能够在识别和展示安全漏洞时重现人类安全研究人员的系统方法,最终弥补当前自动漏洞发现方法的一些盲点。

Project Zero 在 6 月介绍了 LLM 辅助漏洞研究框架 ——Naptime 架构,之后 Naptime 演变成了 Big Sleep 智能体,由 Google Project Zero 和 Google DeepMind 合作完成。

谷歌内部项目:大模型 AI 智能体发现了代码漏洞

Naptime 架构

研究团队认为:与开放式漏洞研究相比,变体分析任务更适合当前的 LLM。通过提供一个起点(例如之前修复的漏洞的详细信息),可以消除漏洞研究中的很多歧义:「这是一个以前的错误;某个地方可能还有另一个类似的错误。」

现在,Big Sleep 智能体发现了第一个现实软件漏洞:SQLite 中可利用堆栈缓冲区下溢。

研究团队收集了 SQLite 存储库中最近的一些提交,手动删除了琐碎的和仅用于文档的更改,然后调整了 prompt,为智能体提供提交消息(commit message)和更改的差异,要求智能体检查当前存储库是否存在可能尚未修复的相关问题。

简单来说,SQLite 这个漏洞是在索引类型字段 iColumn 中使用了特殊的 sentinel 值 -1:

复制
7476:   struct sqlite3_index_constraint {

7477:      int iColumn;              /* Column constrained.  -1 for ROWID */

7478:      unsigned char op;         /* Constraint operator */

7479:      unsigned char usable;     /* True if this constraint is usable */

7480:      int iTermOffset;          /* Used internally - xBestIndex should ignore */

7481:   } *aConstraint;            /* Table of WHERE clause constraints */

这创建了一个潜在的边缘情况,而函数 seriesBestIndex 无法正确处理这种边缘情况,导致在处理对 rowid 列有约束的查询时,将负索引写入堆栈缓冲区。在研究团队提供给智能体的构建中,启用了调试断言(debug assertion),并且此条件由第 706 行的断言检查:

复制
619 static int seriesBestIndex(

620   sqlite3_vtab *pVTab,

621   sqlite3_index_info *pIdxInfo

622 ){

...

630   int aIdx[7];           /* Constraints on start, stop, step, LIMIT, OFFSET,

631                          ** and value.  aIdx[5] covers value=, value>=, and

632                          ** value>,  aIdx[6] covers value<= and value< */

633   const struct sqlite3_index_constraint *pConstraint;

...

642   for(i=0; i<pIdxInfo->nConstraint; i++, pConstraint++){

643     int iCol;    /* 0 for start, 1 for stop, 2 for step */

644     int iMask;   /* bitmask for those column */

645     int op = pConstraint->op;

...

705     iCol = pConstraint->iColumn - SERIES_COLUMN_START;

706     assert( iCol>=0 && iCol<=2 );

707     iMask = 1 << iCol;

...

713     if( pConstraint->usable==0 ){

714       unusableMask |=  iMask;

715       continue;

716     }else if( op==SQLITE_INDEX_CONSTRAINT_EQ ){

717       idxNum |= iMask;

718       aIdx[iCol] = i;

719     }

720   }

然而,实际上这个断言并不存在,因此该漏洞可能会被恶意利用。幸运的是,该团队在正式版本出现之前就发现了这个问题,因此 SQLite 用户没有受到影响。

毫无疑问的是,智能体在这次漏洞查找中起了关键作用,这也表明智能体在软件安全方面具备很大的应用潜力。

参考链接:https://googleprojectzero.blogspot.com/2024/10/from-naptime-to-big-sleep.html

相关标签:

相关资讯

成功率达 53%,研究显示 GPT-4 可自主利用“零日”漏洞攻破网站

据 NewAtlas 报道,研究人员利用自主协作的 GPT-4 机器人小组成功入侵了一半以上的测试网站,这些机器人可以自主协调行动并根据需要生成新的“帮手”。更令人吃惊的是,他们利用的是以前未知的、现实世界中从未公开的“零日”漏洞(zero-day vulnerabilities)。图源 Pexels早在几个月前,同一批研究人员就发表了一篇论文,声称他们能够使用 GPT-4 自动利用“N day”漏洞,即业界已知但尚未修复的漏洞。实验中,GPT-4 仅凭已知的常见漏洞和披露列表 (CVE),就能自主利用其中 87%
6/9/2024 1:05:35 PM
远洋

GPT-4 化身黑客搞破坏,成功率 87%!OpenAI 要求保密提示词,网友复现 ing

91 行代码、1056 个 token,GPT-4 化身黑客搞破坏!测试成功率达 87%,单次成本仅 8.8 美元 (折合人民币约 63 元)。这就是来自伊利诺伊大学香槟分校研究团队的最新研究。他们设计了一个黑客智能体框架,研究了包括 GPT-4、GPT-3.5 和众多开源模型在内的 10 个模型。结果发现只有 GPT-4 能够在阅读 CVE 漏洞描述后,学会利用漏洞攻击,而其它模型成功率为 0。研究人员表示,OpenAI 已要求他们不要向公众发布该研究的提示词。网友们立马赶来围观了,有人还搞起了复现。这是怎么一回
4/21/2024 12:53:34 PM
清源

韩国下架DeepSeek的安全反思

据韩联社2月17日报道,韩国个人信息保护委员会(PIPC)于本周一宣布,即日起暂停中国人工智能初创企业深度求索(DeepSeek)旗下聊天机器人应用在韩国应用商店的新用户下载服务,以审查其是否符合韩国《个人信息保护法》。 已安装用户仍可正常使用,但被建议避免输入敏感个人信息。 DeepSeek承认“欠考虑”根据PIPC公告,此次限制措施自2月15日下午6时生效,主要针对苹果AppStore和谷歌Play商店的韩国本地版本。
2/18/2025 11:08:41 AM
佚名
  • 1