2026 年 8 月 · 6 分钟阅读
比提示注入更隐蔽:Agent 数据注入与 Agentjacking 正在劫持你的 Agent

关键定义
Agent 数据注入(Agent Data Injection, ADI) 一种新型攻击:不篡改 Agent 的指令,而是把恶意数据伪装成可信数据(如资源标识符、工具调用与响应格式)注入,让 Agent 在自以为执行正常任务时,基于被攻击者控制的数据执行本不该执行的动作。
授权意图链(Authorized Intent Chain) Tenet 描述的架构现实:开发者授权了 Agent,Agent 授权了 MCP 连接,MCP 返回来自 Sentry 的数据——每一步都有授权,专为捕获未授权行为的现有安全模型没有任何异常可标记,攻击因此对现有控制“隐形”。
让 AI Agent 总结一个产品页的评论,一条被植入的评论就能让它点下“立即购买”;让编码助手应用维护者在 GitHub 线程里的修复,一条假评论就能让它在你电脑上执行陌生人的命令。这两种攻击都没有劫持 Agent 的任务——它们只是污染了 Agent 信任的事实,然后让 Agent 继续“正常”工作。2026 年,这个新的攻击面被正式命名为“Agent 数据注入”(Agent Data Injection, ADI)。
一种比提示注入更隐蔽的攻击类别
2026 年 7 月,来自首尔国立大学、伊利诺伊大学厄巴纳-香槟分校(UIUC)与安全公司 Largosoft 的研究团队披露了 Agent 数据注入攻击(arXiv:2607.05120)。ADI 瞄准的层面与提示注入完全不同:提示注入是“要求 Agent 做它不该做的事”,而 ADI 是“污染 Agent 用来决定它已经在做的事的事实”。Agent 没有偏离任务,只是基于被篡改的数据做出了错误决定。
研究把第一类攻击称为“元素 ID 注入”。许多网页 Agent 通过页面可访问性树或 DOM 结构中嵌入的数字或顺序标识符来识别可点击元素。攻击者在页面上植入一条复用真实有效按钮标识符的伪造评论——那个标识符对应的正是“立即购买”或“确认付款”元素——就能让 Agent 点错目标,却自以为点对了。这使任何允许用户生成内容的网站都可能遭受 XSS 类攻击。
第二类攻击指向编码 Agent,可导致远程代码执行。当一个编码 Agent 被要求处理 GitHub 线程里的修复建议时,一条伪造的评论就能让它在主机上运行陌生人的命令。研究在多种真实世界的 Agent 上验证了这些攻击,包括 Claude in Chrome、Antigravity 与 Nanobrowser 等网页 Agent。
Agentjacking:利用“可信”的错误报告
几乎同一时间,Tenet 安全团队披露了另一种攻击——Agentjacking。它利用的是 Sentry——开发者常用的错误追踪与性能监控平台。Sentry 的 DSN(数据源名称)是“故意公开”的,通常就嵌在前端 JavaScript 里。Tenet 用这个公开凭据,把恶意指令注入 Sentry 错误事件,而这些事件与 Sentry 自身的修复建议无法区分。AI 编码 Agent 查询未解决的错误时,读到并执行了这些被注入的指令——正如开发者本人会做的那样。
攻击的规模令人警醒:Tenet 发现至少 2388 家组织的 Sentry DSN 可注入,其中 71 家位列 Tranco 前 100 万流量网站;受控测试覆盖 100+ 组织,确认了 85% 的完整 Agent 执行成功率。攻击全程无需钓鱼、无需攻破任何系统、无需窃取任何令牌——它利用的只是一个按设计就该公开的凭据。Tenet 于 2026 年 6 月向 Sentry 进行了负责任披露。
为什么现有安全控制对此“隐形”
Tenet 把根因概括为“授权意图链”:开发者授权了 AI Agent,Agent 授权了 MCP 连接,MCP 返回来自 Sentry 的数据——而 Sentry 正是开发者自己显式接入的服务。在链条的每一步,授权都是存在的。专为捕获未授权行为而设计的安全模型,在这里没有任何异常可标记。
这与 AI Now 研究所的“友军误伤”(Friendly Fire)研究相互印证:研究人员展示,仅用开箱即用的 Claude Code(auto 模式)或 Codex(auto-review 模式)去审查一个不信任的开源库,就能通过散布在库文档中的提示注入实现远程代码执行——不需要 hooks、技能、插件、MCP 服务器或配置文件作为注入向量。换句话说,连“防御性”使用 AI 本身都会引入新的攻击面。
防御:把数据当不可信输入
这些攻击的共同点,是 Agent 把外部数据(网页内容、工具返回、错误报告)当作可信输入。防御的首要原则因此很直接:把 Agent 读取的每一份外部数据都当作不可信输入对待。具体到执行层面,企业需要:对工具返回和错误事件做输入校验,而不是仅凭内容信任;严格限制 Agent 的权限与作用域,最小化它有权调用的工具和数据范围;用沙箱与环境层遏制来限制 Agent 能访问的东西,而不是只依赖“监督它在做什么”;并把每个 MCP 服务器当作供应链依赖来审计——维护已批准发布者清单、审查工具描述而非只看名称、为每个第三方服务器指定负责人。
从更根本的层面看,Anthropic 的工程经验给出了方向:当凭据永远不会进入沙箱,它们就无法被外泄——无论诱因是用户、模型“创造性地”绕路,还是攻击者。环境层(Agent 能访问什么)的确定性边界,才是当所有概率性防御失效时兜底的那道墙。
OOMeta 的视角
提示注入教会我们“别信任指令”,ADI 与 Agentjacking 教会我们更彻底的一课“别信任数据”。Agent 之所以危险,不在于它会做错事,而在于它会用你给它的权限,基于它信任的(可能是被污染的)数据,做出一系列“看起来合理”的动作。因此治理的重心必须从“监控 Agent 在做什么”,前移到“限制 Agent 能访问什么、能信任什么”:把外部数据当作不可信输入、把 MCP 服务器当作供应链依赖、用环境层遏制兜底。当每一步授权都“合法”时,唯一能拦住攻击的,就是提前设下的边界。
参考来源:Choi et al., "Agent Data Injection Attacks are Realistic Threats to AI Agents", arXiv:2607.05120, 2026-07, arxiv.org/html/2607.05120v1;The Hacker News, "New Agent Data Injection Attack Can Make AI Agents Misclick or Run Attacker Commands", 2026-07-16, thehackernews.com/2026/07/new-agent-data-injection-attack-can.html;Cloud Security Alliance, "Agent Data Injection: A New Attack Class Beyond Prompt Injection", 2026-07-17, labs.cloudsecurityalliance.org/research/csa-research-note-agent-data-injection-adi-20260717-csa-styl;Tenet Security, "One Fake Bug Report Hijacked a $250B Company's AI Agent", 2026-06-17, tenetsecurity.ai/blog/agentjacking-coding-agents-with-fake-sentry-errors;AI Now Institute, "Friendly Fire: Hijacking Defensive Cyber AI Agents for Remote Code Execution", 2026, ainowinstitute.org/publications/friendly-fire-exploit-brief;Anthropic Engineering, "How we contain Claude across products", 2026-05-25, www.anthropic.com/engineering/how-we-contain-claude
常见问题
Agent 数据注入(ADI)和提示注入有什么不同?+
提示注入把恶意指令嵌入 Agent 读取的内容,试图覆盖其原始指令;ADI 则污染 Agent 用于决策的事实数据(如网页元素 ID、数据来源标识、工具返回格式),让 Agent 在认为自己执行正常任务时做出攻击者想要的动作。
ADI 攻击是如何运作的?+
通过注入伪装成可信数据(如安全关键元数据、Agent 上下文数据),Agent 基于被攻击者控制的数据执行了本不该执行的动作。例如对网页 Agent(Claude in Chrome、Antigravity、Nanobrowser)的任意点击攻击,利用网页上的伪 UI 元素让 Agent 点击攻击者指定的元素,使任何有用户生成内容的网站都可能受到 XSS 类攻击。
Agentjacking 是什么?+
Tenet 安全披露的一种攻击:利用 Sentinel 的公开 DSN,把恶意指令注入 Sentry 错误事件,AI 编码 Agent 读取后执行攻击者控制的命令。Tenet 发现 2388 家组织的 DSN 可注入,受控测试对 100+ 组织确认 85% 的完整执行成功率,无需钓鱼、无需攻破任何系统。
为什么这些攻击对现有安全控制“隐形”?+
因为每一步都有授权:开发者授权 Agent,Agent 授权 MCP 连接,MCP 返回来自 Sentry 的数据——这就是 Tenet 所说的授权意图链。每一步授权都完整,专为捕获未授权行为的现有安全模型没有任何异常可标记,攻击因此不被发现。
企业应该怎么防御?+
把 Agent 读取的数据当作不可信输入对待、对工具返回做输入校验、限制 Agent 的权限与作用域、用沙箱与环境层遏制限制 Agent 能访问的东西,并把每个 MCP 服务器当作供应链依赖来审计——就像对待任何第三方软件依赖一样。
相关文章
AI 网关只告诉你请求去了哪,JetStream 回答它该不该发
JetStream Clearance 把零信任的信任边界从身份下移到单次动作:AI Blueprints 契约 + 参数级权限 + 序列检测,在 MCP 调用执行前逐动作授权。网关已成商品,授权引擎是下一个战场。
审查过的 MCP 工具在第四次调用开始背叛你:Deadbugz 的运行时门控投毒
Pillar Security 披露活跃 MCP 供应链活动 Deadbugz:恶意服务器伪装成文本格式化工具,前三次调用一切正常,第四次起改写返回的工具元数据,指示 agent 搜寻 SSH 密钥、AWS 凭证并隐藏行为。一次性审查被系统性绕过——工具描述是运行时安全边界,批准应发生在动作执行之时。
AI 越来越多,谁来管风险?
当企业里的 AI 系统从 3 个增长到 30 个,权限边界模糊、合规压力上升、成本失控。企业需要一个独立于业务团队的 AI 风险治理机制——三个最常见的风险盲区与应对。
美国 AI 新规解读:你的 AI 系统能通过审计吗?
2026 年 6 月,美国国会发布 Great American AI Act,要求企业的 AI 系统有独立审计、安全报告和风险框架。法案通过了,你的 AI 系统清单呢?本文给出 5 步自检 Checklist 与常见盲区。