写点什么

全球超万亿使用量的热门数据库,首次被大模型揪出了严重漏洞

  • 2024-11-07
    北京
  • 本文字数:2477 字

    阅读完需:约 8 分钟

全球超万亿使用量的热门数据库,首次被大模型揪出了严重漏洞

谷歌的研究人员日前声称,他们首次利用大语言模型发现了一个重要漏洞。


在一篇博客文章中,谷歌表示,他们相信这是 AI agent 在广泛使用的现实软件中发现此前未知的、可利用的内存安全问题的首个公开案例。具体来说,它在 SQLite 中发现了一个可被利用的堆栈缓冲区下溢漏洞。

这个漏洞在 10 月就被谷歌报告给 SQLite 开发团队,后者在同一天已经修复了它。由于漏洞在官方发布之前就被消除了,因此并没有影响到 SQLite 的用户。

利用大模型发现漏洞:或致程序崩溃甚至执行任意代码

这款基于大语言模型的漏洞挖掘 AI agent 名为“Big Sleep”,是谷歌的 Project Zero 和 DeepMind 合作的成果。据称,它是今年 6 月宣布的早期项目“Project Naptime”的延伸。


谷歌指出,在 8 月份的 DEFCON 安全会议上,负责创建 AI 辅助漏洞研究工具的网络安全研究人员在 SQLite 中发现了另一个问题,这激发了他们的团队去尝试看能否找到更严重的漏洞。


SQLite是一款开源的数据库引擎,堆栈缓冲区下溢漏洞可能允许攻击者导致程序崩溃,甚至执行任意代码。进一步地说,崩溃或代码执行会发生在 SQLite 可执行文件(而非库)中,原因是在代码的某个地方,特殊值 -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 列有约束的查询时,将负索引写入栈缓冲区。在团队提供给 agent 的构建中,启用了调试断言,这个条件在第 706 行的断言中得到了检查:

619 static int seriesBestIndex(620   sqlite3_vtab *pVTab,621   sqlite3_index_info *pIdxInfo622 ){...630   int aIdx[7];           /* Constraints on start, stop, step, LIMIT, OFFSET,631                          ** and value.  aIdx[5] covers value=, value>=, and632                          ** 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   }
复制代码


然而,在发布版本中,这个断言不存在。因此,在谷歌的测试中(这会因编译器和优化级别而异),在第 718 行的后续写入操作会破坏指向 pConstraint 的指针的最低有效 32 位,这将在下一次循环迭代中导致取消引用。这种漏洞可能会被利用。


不过,谷歌的研究人员也承认,这个漏洞的利用难度不小。


“Big Sleep”目前仍处于研究阶段,到目前为止,它使用带有已知漏洞的小型程序来评估其查找漏洞的能力。这是它的在真实世界环境中的首次实验。


在测试中,团队收集了 SQLite 代码库最近的几次提交。“在手动删除了琐碎的和仅用于文档的修改后,我们调整了 prompt,向 agent 提供了提交消息和更改的差异,并要求 agent 审查当前的代码库(在 HEAD)中是否存在可能未被修复的相关问题,”谷歌在博文中写道。


基于 Gemini 1.5 Pro 的大模型最终发现了这个漏洞。在博文中,“Big Sleep”团队还详细介绍了代理评估代码、发现漏洞、导致系统崩溃以及生成根本原因分析的步骤要点。详情可查看:https://googleprojectzero.blogspot.com/2024/06/project-naptime.html

AI 是模糊测试的未来?


像谷歌这样的许多公司使用一种称为“模糊测试”(Fuzzing)的过程,通过向软件提供随机或无效的数据来测试软件,以识别漏洞、触发错误或使程序崩溃。


但谷歌表示,模糊测试在“帮助防御者找到那些难以(或不可能)通过模糊测试发现的漏洞”方面做得还不够,并补充说,他们“希望 AI 能缩小这一差距”。


“我们认为这项工作具有巨大的防御潜力,”“Big Sleep”团队博客文章中宣称。“这个漏洞本身非常有趣,而且现有的 SQLite 测试基础设施(通过 OSS-Fuzz 和项目自己的基础设施)都没有发现这个问题,因此我们做了一些进一步的调查。”


值得注意的是,在 10 月,总部位于西雅图的 Protect AI 公司宣布了一款免费、开源的工具,声称可以在 Anthropic 的 Claude AI 模型的帮助下,在 Python 代码库中发现零日漏洞。这个工具名为 VulnHunter,根据其开发人员的说法,它已经在大型开源 Python 项目中发现了十多个零日漏洞。


根据谷歌的说法,这两个工具的目的不同。谷歌的一位发言人在接受《The Register》采访时强调,“我们在博客文章中的声明是,‘Big Sleep’在广泛使用的真实软件中发现了首个未知的、可被利用的内存安全问题。”“Python 的 LLM 发现的不是与内存安全相关的漏洞,而是不同类型的缺陷。”


“然而,我们想重申,这些都是高度实验性的结果,”谷歌团队写道。“‘Big Sleep’团队的立场是,Big Sleep Agent 目前针对特定目标的模糊测试工具在(发现漏洞)方面至少同样有效。”


参考链接:

https://www.theregister.com/2024/11/05/google_ai_vulnerability_hunting/

https://googleprojectzero.blogspot.com/2024/06/project-naptime.html

https://www.forbes.com/sites/daveywinder/2024/11/05/google-claims-world-first-as-ai-finds-0-day-security-vulnerability/

2024-11-07 17:019272

评论

发布
暂无评论

百度大模型安全荣获2024世界智能产业博览会“Find智能科技创新应用典型案例”

百度安全

蓝易云 - javaee springMVC cookie的存入和取出

百度搜索:蓝易云

spring 浏览器 Cookie 云服务器 JavaEE

AI 驱动的视频增强工具Topaz Video AI for mac v5.1.4注册激活版

Rose

Photomator for mac 强大的色彩调整功能、对 650 多种 RAW 图像格式的支持

Rose

Apache IoTDB vs InfluxDB 开源版,架构性能全面对比!

Apache IoTDB

数字化赋能企业协同,华为云WeLink如何打破传统办公界限?

YG科技

一文了解HarmonyOSNEXT发布重点

凌宇之蓝

HarmonyOS 鸿蒙系统 HarmonyOS框架

噪声-降噪引脚如何提高系统性能

梦笔生花

哪里有好用的mac硬盘测速工具?试试Blackmagic Disk Speed Test免费版

Rose

AutoCAD 2024 mac破解版 附cad2024注册机

Rose

高效办公也要兼顾信息安全,WeLink为企业数字化转型保驾护航

YG科技

蓝易云 - javaee springMVC model的使用

百度搜索:蓝易云

Java Linux 运维 Spring MVC model

蓝易云 - javaee springMVC数字类型转换之通过注解的方式

百度搜索:蓝易云

云计算 服务器 云服务器 Spring MVC Java EE

好用的保护电池健康的小工具 AlDente Pro for Mac v1.27激活版

Rose

YouTube mac(YouTube客户端)v1.22中文激活版

Rose

未来金融将如何借助加密货币发展

dappweb

加密货币 ao

蓝易云 - sql order by排序null值放最后,怎么写

百度搜索:蓝易云

sql Linux 运维 云服务器 null

Navicat Premium 17 轻松地管理和维护数据库,提高数据处理效率。

Rose

Adobe ai 2024中文破解版资源 mac/win

Rose

QLab Pro v5.4.1激活版 mac演出控制软件 广泛应用于戏剧、舞蹈、歌剧和其他现场表演

Rose

Ample Sound Ample Guitar PF 吉他原声多类型音频工具

Rose

Vim 编辑器:高效文本编辑的瑞士军刀

左诗右码

vim

自动化脚本:提升运维效率的秘诀

左诗右码

Shell

蓝易云 - 6元一年的云服务器

百度搜索:蓝易云

Linux 运维 服务器 云服务器 托管

热仿真分析服务 散热仿真分析代做

Geek_2d6073

全球超万亿使用量的热门数据库,首次被大模型揪出了严重漏洞_数据库_罗燕珊_InfoQ精选文章