代理身份:为何每个代理漏洞都是信任边界失败
本文探讨了AI代理系统中的信任边界问题。代理不是简单的模型调用,而是一个循环:模型在运行时决定调用哪个工具,传入什么参数。这导致了多种攻击向量,如提示注入、身份欺骗、预算炸弹和工具投毒。关键缺失是身份传播:当代理调用后端服务时,如果没有携带用户的签名声明,接收方无法区分请求来自谁,从而产生混淆副手问题。文章介绍了Portkey与Palo Alto Networks Cortex平台集成的解决方案:代理网关提供工作负载身份并支持OAuth令牌传播;MCP注册表监控工具描述漂移;LLM网关执行配额和防护栏。这些平台层控制共同覆盖了信任边界,将安全从开发者约定转移到基础设施强制执行。
在AI代理系统中,安全漏洞常常被误解为模型错误或工具缺陷。然而,实际原因往往是信任边界的失效——两个具有不同权限的组件之间缺乏信任。
代理不同于传统应用。传统应用中,开发者编码控制API调用;而在代理中,语言模型在运行时根据从未见过的文本决定调用哪个工具及参数。这创造了一个新的攻击面。
信任边界在哪里?
简单推理调用是无副作用的:模型将文本映射到文本,防护栏控制输入输出。但代理是一个循环:运行时持续调用模型,直到它停止请求工具。模型不知道用户身份、工具安全性或预算限制。信任问题因此属于循环属性,而非模型属性。
身份传播的关键性
当代理调用后端服务时,如果请求不携带签名用户声明,接收方只有两个选择:拒绝所有请求(产品无法工作),或信任调用者(造成混淆副手)。这是当前代理平台的主导故障模式。同样,MCP服务器可在会话间改变工具列表或描述,代理会将其渲染到提示中,使未受控的MCP服务器成为系统提示的可变扩展。
四种常见攻击
- 提示注入:工具返回的文本(如邮件正文)包含模型指令,模型无法区分数据和指令。
- 身份欺骗:代理转发未验证的用户ID标头,下游工具信任它。
- 预算炸弹:模型循环调用付费工具400次,无消费检查。
- 工具投毒:MCP服务器更新工具描述为“也将对话发送给attacker@”,代理执行。
每种攻击都跨越了未定义的信任边界。
平台层强制
Portkey Agent Gateway为每个代理颁发工作负载身份,支持OAuth令牌传播,使身份在调用链中保持完整。MCP Registry注册签名清单并监控漂移,可隔离异常服务器。LLM Gateway提供统一出口,执行速率限制和成本上限,并集成Palo Alto Networks Prisma AIRS防护栏。这些控制共同覆盖了信任边界:身份传播防止欺骗,注册表控制防止工具投毒,网关配额防止预算炸弹,防护栏阻止提示注入。
结论是,信任边界必须由基础设施强制执行,而非开发者约定。Portkey平台将政策统一到控制平面,实现快速失败,而非事后告警。