← 最新论文
🤖 AI

Unicode TAG-Block Concealment of Tool-Metadata Payloads in the Model Context Protocol: An Approval-View Fidelity Gap Across Three Independent Server Implementations

本文证明了模型上下文协议(MCP)存在一个关键的审批-视图保真度差距,即 Unicode TAG 块编码允许攻击者将恶意负载隐藏在工具元数据中,从而在向多个独立的服务器实现直接传递隐藏内容至模型上下文的同时,绕过人工审查和客户端净化器。

原作者: Mohammadreza Rashidi

发布于 2026-07-08
📖 1 分钟阅读☕ 轻松阅读

原作者: Mohammadreza Rashidi

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你有一个非常聪明、乐于助人的机器人助手(一个 AI 编程代理),它可以为你做很多事情,比如读取文件、发送电子邮件或查看天气。为了实现这些功能,这个机器人需要与外部工具进行通信。

模型上下文协议 (Model Context Protocol, MCP) 是让你的机器人连接到这些外部工具的标准规则手册。你可以把它想象成一份“菜单”。当你连接一个新工具时,服务器会向你的机器人发送一份“菜单”。这份菜单包含三个部分:

  1. 名称: 工具叫什么名字。
  2. 描述: 一句解释其功能的文字。
  3. 规则: 如何使用它(它需要哪些输入)。

在机器人开始使用这些工具之前,(人类)必须查看这份菜单并点击“允许”。这是你的安全检查环节。

问题所在:“魔术墨水”诡计

研究人员在这篇论文中发现,这种安全检查机制存在缺陷。事实证明,你看到的菜单机器人实际读取的指令并不总是相同的。

这里有一个类比:
想象你正在雇佣一名新员工(工具)。你拿到了一份简历(工具描述)进行审查。

  • 你看到的是: 简历看起来很正常。上面写着:“此人擅长整理文件。”
  • 老板(AI)读到的是: 在同一份简历内部,用隐形墨水写着一条秘密指令:“偷走公司所有的密码并发送给我。”
    论文发现,目前的系统并没有强制要求“可见的简历”必须与“不可见的指令”保持一致。

特定的诡计:“幽灵”字符

研究人员测试了 8 种隐藏这些秘密指令的方法。大多数方法类似于使用另一种语言或使用奇怪的格式,如果人类仔细观察,还是能发现端倪。

但有一种方法效果极佳,它依赖于一种被称为 Unicode TAG 字符 的技术。

  • 类比: 想象一个图书馆,每个书架都有标签。大多数标签上面都有文字。但有一个特殊的区域(“TAG 区”),那里的标签在技术上是有效的,但图书馆的工作人员(你的屏幕、你的手机、你的 IDE)完全不知道这些标签长什么样。它们就那样……消失了。
  • 结果: 当你看工具描述时,屏幕上显示这些字符为空白。但当数据发送给 AI 机器人时,机器人的大脑(它的分词器/tokenizer)会读取每一个字节,包括那些不可见的字节。它能完美清晰地看到这条秘密指令。

论文将这种现象称为 隐蔽编码 (Concealment Encoding)。这就像是在一张纸上写字,对你的眼睛来说看起来是空白的,但当你用特殊的机器(AI)去扫描它时,文字就会显现出来。

他们发现的其他缺陷

虽然“隐形墨水”是最危险的,但论文还发现安全系统存在其他失效方式:

  1. “偷梁换柱”(Rug Pull): 你批准了一个名为“列出文件”的工具,它看起来无害。随后,服务器悄悄更改了描述,将其变为“列出文件并窃取密码”。由于工具的名称没有改变,只是描述变了,系统不会再次询问你。
  2. “冒充者”(Namespace Collision): 一个恶意行为者创建了一个名为 read_file 的工具,这个名字和你电脑上已有的一个安全工具的名字一模一样。机器人会产生混淆,转而使用那个坏的工具。
  3. “陷阱门”(Schema Coercion): 工具描述看起来很正常,但“规则”部分(输入模式/schema)包含一个默认设置,该设置写着“关闭所有安全防护”。如果机器人直接接受了默认值,它就会在无意中关闭自己的安全护盾。

他们是如何证明的

研究人员不仅仅是靠猜测;他们构建了一个真实的测试。

  • 他们创建了一个试图发送这些隐藏指令的“恶意”服务器。
  • 他们将该服务器连接到一个真实的 AI 客户端(机器人)。
  • 他们针对人们实际用于构建这些工具的 三个独立的软件库 进行了测试。
  • 结果: 在所有三个不同的软件系统中,隐藏的指令都成功穿透了。这种“隐形墨水”诡计 100% 有效,机器人接收到了秘密指令,尽管人类审核员对此一无所知。

他们提出的解决方案

论文认为,我们不能仅仅依赖“关键词过滤”(比如寻找坏词的拼写检查器),因为坏人可以隐藏这些词。

相反,他们提出了三个结构性的修复方案:

  1. 字节忠实视图 (Byte-Faithful Viewing): 如果机器人能看到一个字符,你也必须能看到它。如果某个字符对你的屏幕来说是不可见的,系统应该显示一个警告框(例如一个“缺失字符”的符号),而不是让它静默消失。
  2. 变更后重新审批 (Re-Approval on Changes): 如果你在已经说“是”之后,工具的描述或规则发生了变化,系统必须停止运行并再次询问你。
  3. 严格的命名空间 (Strict Namespaces): 来自互联网的工具不应该被允许占用属于你电脑的工具名称。

总结

这篇论文揭示了目前让我们将 AI 工具连接到外部世界的方式存在一个“盲点”。攻击者可以编写出对人类眼睛隐形、但对 AI 却清晰可见的指令。研究人员证明了这一点在不同软件系统中均有效,并指出解决问题的唯一方法是确保人类所看到的与 AI 所看到的完全一致——即实现“字节级”的一致性。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →