Chrome 为 WebMCP(网站向 AI 智能体暴露工具的新方式)增加了安全指南,并将确保这些工具安全的责任完全交给了网站所有者。该指南警告称,任何声明自己已“智能体就绪 (agent-ready)”的网站,也为恶意攻击者通过精心构造的清单 (manifests) 或受污染的输出劫持智能体打开了路径。
为什么 WebMCP 现在如此重要
开发者长期以来一直在问:AI 智能体能否读取我的页面并完成交易?WebMCP 颠覆了这一模式。与其让智能体去猜测结账流程如何运作,网站会发布一个清单 (manifest),准确地告诉智能体它可以执行哪些操作——例如查询价格、更新购物车、检索评论等等。其结果是得到了一个功能更强大的助手,但也带来了一个新的攻击面:网站将工具交给智能体的瞬间,也向智能体交付了一套可能被破坏的指令集。
开发者必须防范的两种劫持途径
恶意清单 (Malicious manifests) – 攻击者在工具名称或描述中注入隐藏命令。由于智能体会将每一段文本视为潜在的指令,一个精心构造的名称可能会覆盖智能体的原始任务,使其执行非预期的操作。
受污染的输出 (Contaminated output) – 这是更常见的途径。合法的工具会返回用户生成的数据——如产品评论、论坛帖子、评论等。如果恶意用户在这些内容中混入命令,工具就会将该命令直接传递给智能体。大语言模型 (LLMs) 无法可靠地将数据与指令区分开来;它们会将整个数据流视为单一的提示词 (prompt)。
加固清单的实际步骤
Chrome 的指南可以总结为开发者可以添加到其 WebMCP 清单文件中的三条配置规则。
限制谁可以调用你的工具 – 使用
exposedTo规则将受信任的智能体平台列入白名单。例如,支付处理工具不应该对网络上的每一个 AI 智能体都可见。定义可以调用该工具的确切来源,并拒绝其他请求。标记不可信内容 – 对于任何可能返回用户提供的数据(如评论或留言)的工具,添加
untrustedContentHint标志。这会告知智能体该负载可能包含恶意指令,从而促使其在执行文本操作前应用更严格的安全过滤器。声明只读行为 –
readOnlyHint标志允许你发出信号,说明工具是仅读取数据,还是也可以写入/更改状态。当工具是只读时,智能体可以在无需额外用户确认的情况下继续操作;当工具可以修改某些内容时,智能体在继续操作前应征求用户的同意。
开发者可能会抵触的地方
更广泛的影响
下一步值得关注的内容
总结
使网站“智能体就绪”不再仅仅是为了提高可见性的勾选项,而是一项安全责任。通过限制访问、标记不可信输出以及明确标记只读工具,开发者可以阻止攻击者将有用的 AI 助手变成滥用的渠道。请像对待任何其他公共 API 一样对待清单:在将其暴露给世界之前,对其进行审计、进行版本管理并进行加固。
