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

  发布时间:2025-12-07 14:54:06   作者:玩站小弟   我要评论
开源数据库引擎 SQLite 有 bug,还是智能体检测出来的!通常,软件开发团队会在软件发布之前发现软件中的漏洞,让攻击者没有破坏的余地。模糊测试 Fuzzing)是一种常见的软件测试方法,其核心思 。

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

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

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

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

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

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 */1.2.3.4.5.6.7.8.9.10.11.

这创建了一个潜在的边缘情况 ,而函数 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 }1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.

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

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

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

  • Tag:

相关文章

  • 保护关键业务资产的四个步骤

    提到 “关键资产 ”,相信大家并不陌生,它是企业 IT 基础设施中对组织运作至关重要的技术资产。如果这些资产如应用服务器、数据库或特权身份)出现问题,势必会对企业安全态势造成严重影响。但每项技术资产都
    2025-12-07
  • 解决Office2010激活教程失败的问题(一次完整的Office2010激活教程失败解决方案)

    Office2010是微软公司发布的一款功能强大的办公软件套件,但在使用过程中,有些用户会遇到激活教程失败的问题。这篇文章将提供一种完整的解决方案,帮助用户顺利完成Office2010的激活。1.检查
    2025-12-07
  • 数据中心管理技巧

    您是否看到一个普通的网络系统包含多少组件了吗?用于数据处理的有源设备总数可达几十个或数百个。将配件和电缆添加到这个数字中,我们将获得一百个组件。因此,大多数技术人员更喜欢将网络系统容纳在单独的隔离数据
    2025-12-07
  • 准备工作

    :在安装操作系统时,使用优盘来安装Win7系统是一个方便快捷的选择。本文将详细介绍如何使用优盘来安装Win7系统的步骤,并提醒读者注意事项。准备工作1.确保你有一个可用的优盘,容量至少为4GB。2.下
    2025-12-07
  • 为何CISO面临更大的个人责任风险

    在采访中,Veritas Technologies 的首席信息安全官 (CISO) Christos Tulumba 讨论了导致 CISO 个人责任风险增加的关键因素,这些风险源于日益严重的网络安全威
    2025-12-07
  • 华为P8青春版关屏后断网怎么办

    华为P8青春版关屏后断网怎么办?相信有不少朋友都遇到过手机关屏后一段时间网络就自动断开了,知道怎么解决吗?不知道也没有关系,让小编来教你吧,下面就一起来看看华为P8青春版关屏后断网怎么办。
    2025-12-07

最新评论