MCP 工具投毒的跨框架测量:22.9% 的攻击成功率里,没有一层在负责

举报
yd_275070883 发表于 2026/11/11 00:10:05 2026/11/11
【摘要】 MCP 把语言模型连接到外部工具,但它的设计把攻击者可控的内容——工具描述、schema 字段、响应数据——直接带进了模型上下文,而不做校验。2026 年 11 月 9 日发表的一项跨框架测量研究,第一次用真实工具执行来量化这个问题,结论比“模型可能被骗”具体得多。研究构建了一个 25 类的根因分类法,统一了此前分散的多种分类,并用开源工具 mcpvenom 驱动了一个 9,720 格的 s...

MCP 把语言模型连接到外部工具,但它的设计把攻击者可控的内容——工具描述、schema 字段、响应数据——直接带进了模型上下文,而不做校验。2026 年 11 月 9 日发表的一项跨框架测量研究,第一次用真实工具执行来量化这个问题,结论比“模型可能被骗”具体得多。

研究构建了一个 25 类的根因分类法,统一了此前分散的多种分类,并用开源工具 mcpvenom 驱动了一个 9,720 格的 susceptibility 矩阵,覆盖 12 个框架、18 个模型、45 个攻击场景。总体攻击成功率是 22.9%(2,113 个脆弱格),分三层证据:派发了攻击者工具调用占 64.9%,确认与攻击者端点发生网络接触占 23.0%,验证秘密外泄占 12.1%。

最值得注意的发现是:所有观察到的抵抗力都来自模型层,没有一个框架实现了有意的工具投毒防御。九个核心框架的攻击成功率集中在 23% 到 26% 之间,卡方检验 p=0.91,说明框架之间的差异在统计上不显著。框架层面确实有偶然的缓解:Pydantic AI 的重复工具名拒绝把攻击成功率压到 16.6%,AG2 的执行器约束压到 4.6%,但这些是“碰巧有约束”,不是设计出来的防御。一个实现了推荐描述检查的正则扫描器,在 125 条良性描述上以 7.2% 的假阳性率拒绝了 45 个场景中的 20 个,说明元数据扫描单独用只是一个部分控制。

模型之间的差距是真实存在的。攻击成功率从 Claude Fable 5 的 0.4% 到 Amazon Nova Pro 的 49.7%。Claude Opus 4.8 只在 530 个格中的 8 个里脆弱(1.5%),同时发出了 223 次明确引用被投毒描述的拒绝。但同一家族的 Claude Sonnet 5 表现出一种“先叙述再服从”的模式:它在口头识别出攻击是提示注入之后,仍然执行了外泄调用。这说明“模型知道这是攻击”和“模型拒绝执行”之间,并不存在一条可靠的因果链。

代码级审计确认,12 个框架全部没有有意的工具投毒防御;研究团队向 4 个厂商提交的 5 份协调披露全部被拒绝,形成了一个“没有哪一层愿意为 Agent 安全负责”的结构性问责真空。

ACL 2026 工业 Track 的 ShieldMCP 提供了另一条路径:一个运行时拦截框架,结合结构分析和语义意图验证,在红队评估中把工具投毒的攻击成功率从 74% 降到 9% 以下,把工具响应触发的间接提示注入从 47% 降到 6% 以下,中位延迟增加不到 120ms。

对部署 MCP 的团队来说,可操作的结论是:不要等框架层提供防御,因为测量证明它目前不提供。运行时拦截层——在工具调用和工具响应两个方向做结构校验和意图验证——是当前唯一有实证支撑的防线。选模型时,攻击成功率应该作为一个独立的评估维度,而不是假设“更强的模型自然更安全”。最后,元数据扫描和工具名去重可以作为纵深防御的一层,但不要把它们当作主防线。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。