Esta página é sobre os controles do gateway que limitam o raio de explosão.
O contexto do modelo de ameaças upstream — por que agentes são alvos de alto
valor e como a injeção funciona — está em Modelo de ameaças.
Para o controle correspondente que governa chamadas de ferramenta perigosas
individuais, veja Chamadas de ferramenta perigosas.
1. O que torna um agente excessivamente capaz
Quando todo agente em um workspace compartilha uma chave, ou quando uma chave é emitida uma vez e nunca revisada, a capacidade aumenta gradualmente:- Modelos sem restrição — o agente pode chamar qualquer modelo no workspace, incluindo os caros ou altamente capazes que nunca precisa.
- Sem teto de gasto — um loop descontrolado, uma injeção acionada ou um ataque de billing pode esgotar o saldo do workspace antes que você perceba.
- Sem expiração — uma chave emitida durante um sprint ainda é válida um ano depois, muito depois que o agente para o qual foi criada está aposentado.
- Sem restrição de IP — a credencial funciona de qualquer lugar, então uma chave vazada não tem limite geográfico.
- Sem lista de permissão de ferramentas — o agente pode invocar qualquer ferramenta, mesmo as não relacionadas à sua função.
2. O padrão do confused deputy
O confused deputy é uma especialização da agência excessiva. O agente não é sequestrado; ele é convencido. Um payload de injeção de prompt em uma página web recuperada, documento ou resultado de ferramenta diz ao agente para tomar uma ação que ele está legitimamente autorizado a fazer — mover dinheiro, excluir um registro, enviar uma mensagem — em nome do atacante. O agente age. Ele estava autorizado a fazer exatamente isso. A verificação de autorização passa. O dano está feito. A defesa exige duas coisas trabalhando juntas:- Escopo restrito — o agente não pode ser enganado a fazer algo que sua tarefa nunca pretendia, porque ele não está autorizado a fazê-lo.
- Aprovação humana para ações irreversíveis — mesmo dentro do escopo autorizado, uma chamada de alto risco exige confirmação de um humano antes de executar.
3. Defesa em profundidade: as quatro camadas
O OrcaRouter aplica a menor agência em quatro controles independentes que se compõem em uma única chave de API. Nenhum exige mudança de código no seu agente.Camada 1 — Chave com escopo (identidade + limites fixos)
Cada agente deve ter sua própria chave de API. A chave carrega limites fixos que o gateway aplica independentemente do que o agente solicita:| Campo | O que restringe |
|---|---|
model_limits | O conjunto exato de modelos que esta chave pode chamar. Uma requisição para qualquer outro modelo é rejeitada antes de sair do gateway. |
allow_ips | Requisições de qualquer endereço não nesta lista são rejeitadas na camada de autenticação. Vazio significa sem restrição de IP. |
credit_limit_usd | Limite de gasto vitalício em USD. 0 significa ilimitado. O gateway aplica isso contra o gasto acumulado na chave. |
expired_time | Timestamp de expiração absoluto. -1 significa que a chave nunca expira. Defina para o ciclo de deployment do agente. |
environment | Um rótulo (prod, staging, dev) para organizar chaves e filtrar logs de auditoria. |
Camada 2 — Política de firewall (lista de permissão de ferramentas)
Conecte uma política de firewall à chave viafirewall_policy_id. A política governa cada chamada de ferramenta que essa
chave emite:
- Escreva regras que permitam os nomes de ferramenta que o agente usa
legitimamente (globs de nome de ferramenta são suportados — ex.:
db.query*). - Defina o
default_verdictda política comodenypara que qualquer coisa não explicitamente listada seja bloqueada. - Adicione predicados de argumento para restringir até as ferramentas permitidas
— ex.: permite
db.queryapenas quando o argumentodatabasecorresponde a um schema específico.
Camada 3 — Aprovação humana para ações de alto risco (pending_approval)
Para chamadas de ferramenta irreversíveis ou de alto valor — um dispatch de
pagamento, uma exclusão de registro, um envio de email — adicione uma regra
pending_approval. O fluxo:
- O agente emite a chamada de ferramenta. O firewall a retém e retorna uma resposta “held” carregando um id de aprovação. A chamada não alcança a ferramenta.
- Um revisor aprova ou rejeita fora de banda — pelo console (Developer+) ou via um webhook assinado por HMAC para o seu próprio sistema de aprovação.
- Seu agente consulta o id de aprovação. Uma vez aprovado, ele reenvia a
chamada original com um header
X-OrcaRouter-Firewall-Approvalde uso único. O gateway a deixa passar exatamente uma vez.
Camada 4 — Limite de custo por run (cap_cost)
Uma regra cap_cost nega qualquer chamada de ferramenta assim que o gasto
acumulado da run do agente excede um teto por regra (em centavos). Este é o
disjuntor para:
- Loops descontrolados acionados por injeção.
- Ataques de billing que geram gasto antes que qualquer humano perceba.
- Recursão acidental em planos de múltiplos passos.
cap_cost opera no nível de run, não no nível vitalício da chave — então
ele reinicia por invocação de agente, e uma única run com mau comportamento
não pode esgotar o teto credit_limit_usd da chave.
4. Uma chave de agente bem escopada — exemplo
Um agente que resume tickets de cliente usandogpt-4o-mini e consulta uma
réplica somente leitura deve parecer com:
model_limits:["openai/gpt-4o-mini"]— não pode escalar para um modelo mais capaz ou caro.allow_ips: o CIDR de egress do pool de workers — a chave é inerte em qualquer outro lugar.credit_limit_usd: um teto semanal correspondendo ao custo esperado da tarefa, com alguma margem — ex.:5.00.expired_time: o fim do sprint ou período de deployment — a chave expira automaticamente sem limpeza manual.environment:"prod"— aparece em filtros de log e visões de anomalia.guardrail_id: um guardrail escopado para a sensibilidade de dados deste agente (mascaramento de PII, sem segredos na saída).firewall_policy_id: uma política que lista apenasdb.query*eticket.read*, veredito padrãodeny.
is_firewall_gateway marca uma chave como um token com escopo de gateway para
as rotas de dispatch MCP e hook de avaliação. Crie essas apenas para agentes
que conduzem o firewall programaticamente — nunca para tráfego de inferência
geral. Uma chave de gateway no caminho de inferência expõe rotas que chaves
de propósito amplo nunca deveriam alcançar. Habilitar is_firewall_gateway
exige Admin+.5. Papéis necessários
| Ação | Papel mínimo |
|---|---|
| Ler qualquer chave, política ou evento de firewall | Member |
| Criar ou editar chaves, políticas de firewall, regras | Developer |
| Aprovar uma chamada de ferramenta retida pelo console | Developer |
Habilitar is_firewall_gateway em uma chave | Admin |
6. Relação com outras ameaças
A agência excessiva é o habilitador de quase toda outra ameaça de agente:- Chamadas de ferramenta perigosas — uma chave com uma lista de permissão de ferramentas restrita não pode ser forçada a chamar uma ferramenta que não lista, mesmo que a injeção tenha sucesso.
- Injeção de prompt — os limites de escopo limitam o dano que a injeção pode causar; portões de aprovação bloqueiam as ações irreversíveis que a injeção tenta acionar.
- Modelo de ameaças — o mapa completo de superfície de ataque, mostrando onde a agência excessiva se situa em relação a outros vetores.
Chaves com escopo e políticas
A referência completa de campos de chave, ordem de resolução e o modelo
de fronteira de workspace.
Firewall
Criação de políticas, vereditos, fluxo de aprovação HITL e referência
completa de API.
