跳转到主要内容
拥有比其任务需要更多能力的智能体是一个等待被利用的隐患。 窃取其密钥,用注入指令欺骗它,或攻破一个依赖——密钥能做的 一切现在都在攻击者手中。这就是过度代理问题,它与一个密切 相关的模式结合放大了危害,那个模式叫混淆代理人:智能体没有 被直接攻破,而是被说服代表攻击者使用其合法权限。 两个问题共享一个根本原因:被攻破的智能体持有的密钥对其执行 的任务来说太强大了。防御是最小权限——给每个智能体恰好其任务 所需的能力,不多。
本页是关于限制爆炸半径的网关控制。上游威胁模型背景——为什么 智能体是高价值目标以及注入如何工作——在威胁模型中。 对于治理危险单个工具调用的匹配控制,参见 危险工具调用

1. 什么使智能体过度有能力

当工作区中的每个智能体共享一个密钥,或者密钥发放一次后从未 重新审视时,能力会向上漂移:
  • 无限制的模型——智能体可以调用工作区中的任何模型,包括 它从不需要的昂贵或高能力模型。
  • 无消费上限——失控的循环、触发的注入或账单攻击可以在你 注意到之前耗尽工作区余额。
  • 无到期时间——冲刺期间发放的密钥在一年后仍然有效,远超 它铸造的智能体退役之后。
  • 无 IP 约束——凭证在任何地方都有效,因此泄露的密钥没有 地理限制。
  • 无工具允许列表——智能体可以调用任何工具,即使与其功能 无关的。
任何一个单独来说都是扩大的爆炸半径。组合起来,单个被攻破的 智能体可以做工作区管理员能做的一切——调用最强大的模型,花费 全部余额,访问每个工具。

2. 混淆代理人模式

混淆代理人是过度代理的特殊化。智能体没有被劫持;它被说服了。 检索到的网页、文档或工具结果中的提示注入载荷告诉智能体采取 一个它被合法授权执行的动作——转移资金、删除记录、发送消息—— 代表攻击者。 智能体采取了行动。它被授权做恰好那件事。授权检查通过了。 损害已经造成。 防御需要两件事协同工作:
  1. 窄范围——智能体不能被欺骗做其任务从未预期的事情, 因为它根本没有被授权做。
  2. 对不可逆动作的人工审批——即使在授权范围内,高风险调用 也需要人工在执行前确认。

3. 深度防御:四个层

OrcaRouter 在组合在单个 API 密钥上的四个独立控制中执行最小权限。 没有一个需要修改你的智能体代码。

第 1 层——限定范围的密钥(身份 + 硬性限制)

每个智能体都应该有自己的 API 密钥。密钥携带网关无论智能体请求 什么都会执行的硬性限制:
字段它限制什么
model_limits此密钥可以调用的确切模型集合。对任何其他模型的请求在离开网关之前被拒绝。
allow_ips来自不在此列表上的任何地址的请求在认证层被拒绝。空意味着无 IP 限制。
credit_limit_usd以 USD 计的终身消费上限。0 表示无限制。网关对密钥的累积消费执行此上限。
expired_time绝对到期时间戳。-1 表示密钥永不过期。将其设置为智能体的部署生命周期。
environment用于组织密钥和过滤审计日志的标签(prodstagingdev)。
这些限制在密钥级别执行——在任何策略之前,在任何模型调用之前。 它们是最外层的爆炸半径边界。

第 2 层——防火墙策略(工具允许列表)

通过 firewall_policy_id防火墙策略附加到 密钥。策略治理该密钥发出的每一次工具调用:
  • 写规则允许智能体合法使用的工具名(支持工具名 glob—— 例如 db.query*)。
  • 将策略的 default_verdict 设置为 deny,这样未明确列出 的任何东西都被拦截。
  • 添加参数谓词来限制即使是允许的工具——例如只有在 database 参数匹配特定 schema 时才允许 db.query
没有防火墙附加的密钥会回退到工作区默认策略。对于有窄工具需求 的智能体,带有严格策略的明确附加总是比依赖工作区默认值更可取。 参见防火墙规则了解完整的匹配语言。

第 3 层——对高风险动作的人工审批(pending_approval

对于不可逆或高价值的工具调用——支付派发、记录删除、邮件发送—— 添加 pending_approval 规则。流程:
  1. 智能体发出工具调用。防火墙挂起它并返回带有审批 id 的”挂起” 响应。调用不会到达工具。
  2. 审查者带外批准或拒绝——从控制台(Developer+)或通过 HMAC 签名的 webhook 到你自己的审批系统。
  3. 你的智能体轮询审批 id。一旦批准,它用一次性 X-OrcaRouter-Firewall-Approval 头重新提交原始调用。 网关只让它通过一次。
混淆代理人在此被阻止,即使范围有效:在动作执行之前,人工 确认这个动作是有意图的。

第 4 层——每次运行成本上限(cap_cost

cap_cost 规则一旦智能体运行的累积消费(以分计)超过每条规则 的上限,就拒绝任何工具调用。这是以下情况的断路器:
  • 由注入触发的失控循环。
  • 在任何人注意之前驱动消费的账单攻击。
  • 多步计划中的意外递归。
cap_cost运行级别操作,而不是密钥终身级别——因此它每次 智能体调用重置,单个行为不当的运行无法耗尽密钥的 credit_limit_usd 上限。

4. 一个限定范围良好的智能体密钥——示例

使用 gpt-4o-mini 总结客户工单并查询只读副本的智能体 应该看起来像这样:
  • model_limits["openai/gpt-4o-mini"]——不能升级到更有能力 或更昂贵的模型。
  • allow_ips:工作进程池的出站 CIDR——密钥在其他任何地方都 无效。
  • credit_limit_usd:匹配任务预期成本(有一些余量)的每周上限—— 例如 5.00
  • expired_time:冲刺或部署期结束——密钥自动过期,无需手动清理。
  • environment"prod"——出现在日志过滤器和异常视图中。
  • guardrail_id:针对此智能体数据敏感性的防护栏(PII 脱敏, 输出中无密钥)。
  • firewall_policy_id:只允许 db.query*ticket.read* 的策略, 默认判定 deny
当此智能体被通过注入的指令欺骗外泄数据时,爆炸半径是:一个模型、 一个 IP 范围、一个工具命名空间、一个成本上限。工作区的其余部分 不受影响。
is_firewall_gateway 将密钥标记为 MCP 派发和 evaluate hook 路由的 网关限定令牌。只为以编程方式驱动防火墙的智能体创建这些——永不 用于一般推理流量。推理路径上的网关密钥暴露了广用途密钥永远不 应该到达的路由。启用 is_firewall_gateway 需要 Admin+

5. 所需角色

动作最低角色
读取任何密钥、策略或防火墙事件Member
创建或编辑密钥、防火墙策略、规则Developer
从控制台批准被挂起的工具调用Developer
在密钥上启用 is_firewall_gatewayAdmin

6. 与其他威胁的关系

过度代理是几乎所有其他智能体威胁的推动因素
  • 危险工具调用——带有 严格工具允许列表的密钥不能被迫调用它没有列出的工具,即使注入 成功了。
  • 提示注入——范围限制了注入能做到什么;审批门阻止了注入试图 触发的不可逆动作。
  • 威胁模型——完整的攻击面图, 显示过度代理相对于其他向量的位置。
最小权限不能防止注入。它缩小了注入能达到什么。

限定范围的密钥与策略

完整的密钥字段参考、解析顺序和工作区边界模型。

防火墙

策略编写、判定、HITL 审批流程和完整 API 参考。
最小权限——每个智能体一个窄密钥、严格的工具允许列表、消费上限, 以及对不可逆动作的人工审批——是防御过度代理 LLM 攻击和混淆代理人 模式的主要手段。