开源数据库引擎 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:
这创建了一个潜在的边缘情况,而函数 seriesBestIndex 无法正确处理这种边缘情况,导致在处理对 rowid 列有约束的查询时,将负索引写入堆栈缓冲区。在研究团队提供给智能体的构建中,启用了调试断言(debug assertion),并且此条件由第 706 行的断言检查:
然而,实际上这个断言并不存在,因此该漏洞可能会被恶意利用。幸运的是,该团队在正式版本出现之前就发现了这个问题,因此 SQLite 用户没有受到影响。
毫无疑问的是,智能体在这次漏洞查找中起了关键作用,这也表明智能体在软件安全方面具备很大的应用潜力。
参考链接:
https://googleprojectzero.blogspot.com/2024/10/from-naptime-to-big-sleep.html
文章来自于微信公众号 “机器之心”,作者“机器之心编辑部”
【开源免费】DeepBI是一款AI原生的数据分析平台。DeepBI充分利用大语言模型的能力来探索、查询、可视化和共享来自任何数据源的数据。用户可以使用DeepBI洞察数据并做出数据驱动的决策。
项目地址:https://github.com/DeepInsight-AI/DeepBI?tab=readme-ov-file
本地安装:https://www.deepbi.com/
【开源免费】airda(Air Data Agent)是面向数据分析的AI智能体,能够理解数据开发和数据分析需求、根据用户需要让数据可视化。
项目地址:https://github.com/hitsz-ids/airda
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0