AgentJacking: 伪造错误信息劫持AI编码助手

AgentJacking: 伪造错误信息劫持AI编码助手

Adrian Cole
187
original

Tenet Security 披露一种新型 AI 编码代理劫持攻击 AgentJacking。攻击者利用开发者对错误报告的信任,以伪造的 Sentry 错误触发代理自动执行恶意代码。当前主流编码助手均易受影响,且现有检测机制难以拦截。

AI 编码助手正变得越来越智能,但它们的信任半径也成了一把双刃剑。Tenet Security 本周公布了一种名为 AgentJacking 的攻击手法,专门针对那些能主动读取错误报告并自动修复代码的 AI 编程代理。攻击者不需要黑进你的 IDE,只需要往代码仓库里塞一个伪造的 Sentry 错误页面——AI 代理就会乖乖替你把恶意代码写进项目里。

攻击路径:错误报告的逆向滥用

一切始于开发者再熟悉不过的 Sentry 错误报告。当代码抛出异常时,Sentry 会生成包含堆栈跟踪和环境信息的详细页面。AI 编码代理(如 GitHub Copilot 的自动修复模式、Cursor 的 Agent 功能)被赋予读取这些报告并自动生成修复代码的能力。AgentJacking 的巧妙之处在于:攻击者将恶意指令嵌入到一个完全虚假的 Sentry 页面中,而代理无法区分真假——它看到的只是一个“高层次错误描述”,然后按照提示(其实是攻击者的命令)修改代码。

举个例子:攻击者伪造一个“数据库连接池耗尽”的错误,并在错误详情里附上“修复建议”,比如修改连接字符串中的密码或添加一个后门函数。代理信任这个权威的错误来源,会直接应用“修复”。整个过程不需要开发者手动批准(取决于代理的自动化程度),因此恶意代码可以悄然潜入。

为什么难以被察觉

传统安全工具如 SAST、DAST 主要扫描代码中的已知漏洞模式,但 AgentJacking 注入的代码看似完全合法——它只是修改了某个配置值或增加了一个看似无害的函数调用。更糟的是,伪造的错误页面可以托管在合法域名下(通过子域名接管或云存储),甚至可以伪装成内部服务错误。AI 代理的决策过程是黑盒的,开发者事后很难回溯为什么代理会做出某个修改。

Tenet Security 在测试中成功让多种主流编码助手(包括基于 GPT-4o 和 Claude 的代理)执行了危险操作,例如:

  • 在登录模块中追加密码明文记录
  • 修改数据库查询以泄露用户数据
  • 将 API 密钥发送到攻击者控制的服务器

这不是提示注入,是“环境劫持”

很多人第一时间会想到提示注入(prompt injection),但 AgentJacking 的运作方式不同。提示注入直接篡改输入给模型的文本,而 AgentJacking 攻击的是代理的 工具使用链路——代理调用读取错误页面的函数,然后根据页面内容生成代码。即使模型本身没有注入漏洞,它的输出也被不良的上下文污染了。这类似于浏览器中的跨站请求伪造(CSRF),但针对的是 AI 代理。

对于开发团队来说,这暴露了一个被忽视的攻击面:任何 AI 代理被动读取的外部资源(错误报告、日志、文档、Issue 回复)都可能成为攻击载体。只要代理“信任”这些来源,攻击者就能间接操控它的行为。

短期缓解与长期展望

目前没有一键修复的银弹。Tenet Security 建议开发者:第一,限制 AI 代理的自动化权限——至少要求在应用代码修改前进行人工审核(“代理建议”模式优于“自动执行”);第二,对代理读取的外部内容进行来源验证(例如只读取签名后的错误报告);第三,监控代理的修改行为,并与已知正常模式做对比。

长远来看,AI 编码工具需要内置上下文完整性检查:代理应该具备基本的“怀疑能力”,比如发现错误详情中出现明显的代码修改指令时,应暂停并询问用户。同时,安全社区需要为 AI 代理的输入输出建立类似 Content Security Policy 的约束机制。

这个攻击不挑 IDE,不挑模型,只看代理有多“听话”。在安全与效率的天平上,AgentJacking 提醒我们:留给 AI 的自主权越大,它犯错或被利用的可能性也越大。开发者在享受自动修复带来的便捷时,最好还是保持一份手动审查的谨慎。

AI安全编码助手提示注入AgentJacking虚假错误代码安全Sentry劫持攻击AI代理Cursor

分享

评论

0
0/500 字符

暂无评论

成为第一个评论的人

探索更多

相似工具

Cursor

Cursor

一款基于 VS Code 二次开发的智能代码编辑器,以“原生内置 AI”为核心卖点。它不依赖插件,而是将 AI 深度植入编辑器底层,能够理解整个项目的上下文代码库,支持无缝迁移 VS Code 的所有配置和插件。

Google Antigravity

Google Antigravity

Antigravity 支持多模型,包括 Gemini 3 Pro、Claude Sonnet 4.5、GPT-OSS,开发者可以在同一环境中选择最适合任务的模型。

Codex

Codex

OpenAI Codex 是由 OpenAI 开发的 AI 编程模型和助手,可将自然语言指令翻译成对应的源代码,为开发者提供智能补全、代码生成等功能。它最初于 2021 年作为 OpenAI API 的代码模型推出,曾为 GitHub Copilot 提供核心支持。随着 OpenAI 技术的迭代,Codex 在 2025 年以“AI 编程智能体”的全新姿态回归,能够理解复杂需求并自动编写、调试代码,显著提升开发效率和软件交付速度。

Kiro

Kiro

Kiro 是由 AWS 推出的 AI 编程 IDE,采用规范驱动的开发模式,将自然语言需求转化为明确的规格文档和任务,再由内置 AI 代理生成代码并调试优化,全流程辅助大型项目开发。

Trae

Trae

Trae(官网 trae.ai)是由 字节跳动(ByteDance)推出的一款 AI 原生集成开发环境(IDE)。它不是简单地作为一个编程助手,而是一个「协作伙伴」,通过深度整合大型语言模型(LLM),帮助开发者从需求、构建代码,到调试和部署,实现更智能化、自动化的软件开发。

Claude

Claude

Claude 是由美国人工智能公司 Anthropic 打造的智能语言交互平台,它融合了深度文本理解、信息整理、代码辅助和任务分析等能力,能在聊天对话之外应对更复杂的问题,例如长文摘要、图像解析、逻辑推理及编程协助等。相比一些单一问答机器人,Claude 更像一个具备推理逻辑、可扩展功能的智能工具。

开源项目

guidellm: 评估和优化 LLM 部署性能

guidellm 是一个开源工具,专为评估和优化大语言模型(LLM)在生产环境中的推理性能而设计。它支持压力测试、延迟分析、吞吐量评估等,帮助开发者识别瓶颈并调整部署配置。基于 vLLM 团队开发,适合需要精细化调优 LLM 服务的团队。

Kiln: 一站式 AI 系统评估与优化平台

Kiln 是一个开源 Python 工具,帮助开发者系统化地构建、评估和优化 AI 系统。它集成了 evals、RAG、智能体、微调、合成数据生成、数据集管理和 MCP 协议支持,让 AI 开发工作流更高效、更可控。适合需要深度调优 AI 性能的团队和个人。

terax-ai: 7MB终端优先AI开发工作台

terax-ai 是一个轻量级(仅7MB)的终端优先AI原生开发工作台,专为命令行爱好者设计。它集成了AI辅助能力,提供极快的启动速度和极小的资源占用,让开发者在熟悉的终端环境中高效编码、调试和实验。开源且易于安装,适合追求简洁与效率的开发者。

omlx: macOS 菜单栏 LLM 推理服务器

omlx 是一款专为 Apple Silicon 打造的轻量级 LLM 推理服务器,通过 macOS 菜单栏轻松管理。它支持连续批处理和 SSD 缓存,能显著提升推理吞吐量和响应速度。开源且易于上手,适合 Mac 开发者本地运行大型语言模型。

pydantic-ai: 用Pydantic方式构建AI Agent

pydantic-ai 是一个基于 Pydantic 的 AI Agent 框架,利用 Pydantic 的数据验证能力,让 Agent 的输入输出变得结构化、类型安全。适合 Python 开发者快速构建可靠、可测试的 AI 代理应用,支持多种 LLM 后端和工具调用。

Truss: 最简方式将 AI 模型部署到生产环境

Truss 是一个开源 Python 框架,旨在让 AI/ML 模型的部署变得像写几行代码一样简单。它抽象了 Docker、Kubernetes 等基础设施,支持 PyTorch、TensorFlow 等多种框架,并提供预热、批处理、监控等生产级功能。适合数据科学家和 ML 工程师快速将实验模型上线。