https://api.orcarouter.ai/v1/...; apenas as
chaves e políticas no gateway mudam. Para a anatomia de ataque subjacente, leia
Injeção de prompt e
Chamadas de ferramenta perigosas;
esta página é a resposta.
Os papéis que cada etapa precisa são indicados inline. Ler o feed de Matches
de guardrail está aberto a qualquer Member; as visões de Events, Runs
e trace do firewall precisam de Developer+; revogar uma chave, aplicar uma
postura de autonomia e editar uma política precisam de Developer+; marcar uma
guardrail match como falso positivo precisa de Admin.
1. O loop de resposta a incidentes de segurança de IA
Três fases, executadas em ordem. Não pule direto para o endurecimento — contenha primeiro para que o atacante perca acesso enquanto você investiga.Conter
Revogue a chave comprometida para que o atacante não possa fazer outra
chamada. Cunhe uma substituta nova e fortemente escopada.
Dimensionar
Leia os feeds de Events / Runs do firewall e de Matches do guardrail
para ver exatamente o que a chave fez e o que disparou.
Endurecer
Aperte a postura de autonomia e adicione a regra que o teria capturado, para
que o mesmo ataque não possa recorrer.
2. Conter — revogue a chave
O primeiro movimento é cortar o acesso. Uma chavesk-orca-... vazada continua
funcionando até você revogá-la, então faça isto antes de qualquer coisa.
No console, abra API Keys, encontre a chave comprometida (ela é mascarada na
exibição — combine-a por nome, environment ou último uso) e delete-a (papel
Developer). A deleção é imediata: a próxima requisição naquela chave é
rejeitada no gateway.
Depois cunhe uma substituta, escopada ao mínimo de que a carga precisa — nunca
sua chave para toda a conta. Em API Keys → New key (papel Developer):
Limite o raio de explosão na nova chave
Limite o raio de explosão na nova chave
Defina
credit_limit_usd em um teto sensato (0 = ilimitado) para que um
vazamento futuro não possa drenar cota, allow_ips para os IPs de egress do
seu backend se o chamador roda de um servidor fixo, e expired_time para
qualquer coisa temporária (-1 = nunca expira). Use model_limits (com
model_limits_enabled) para cercar a chave somente aos modelos de que ela
precisa.Vincule suas políticas à nova chave
Vincule suas políticas à nova chave
Escolha seu guardrail endurecido no dropdown Guardrail (define
guardrail_id) e sua política de firewall no dropdown Firewall policy
(define firewall_policy_id). Ambos os vínculos vivem na chave dentro do
gateway, então a nova chave é governada desde sua primeira chamada. Copie o
texto plano uma vez — ele é mascarado em todo lugar após a criação.3. Dimensionar — leia os feeds de Events e Matches
Agora descubra o que a chave de fato fez. O gateway já registrou cada chamada de ferramenta e cada regra que disparou — com escopo de workspace, sem instrumentação extra.| Feed | Onde | Papel | O que responde |
|---|---|---|---|
| Firewall → Events | por chamada de ferramenta | Developer+ | Cada avaliação — veredito, superfície, ferramenta, args, a run a que pertence. |
| Firewall → Runs | consolidado | Developer+ | “O que esta sessão de agente realmente fez” — mix de vereditos, ferramentas e modelos distintos. |
| Guardrails → Matches | por hit de regra | Member | Cada regra de guardrail que disparou — tipo, ação, stage, detalhe. |
deny e audit para ver
o que foi bloqueado versus o que escapou sob uma postura só de observe.
Faça a verificação cruzada de Guardrails → Matches para a mesma janela. Se
uma regra Prompt-Injection Basics sinalizou a requisição — frases como
“ignore previous instructions” ou “reveal your system prompt” — ela aparece
aqui com o tipo e o stage da regra.
O feed de Matches registra a substring correspondente apenas quando Log
raw content está ligado para aquele guardrail — está desligado por padrão
(a postura conservadora de privacidade). Com ele desligado você ainda vê que
uma regra disparou e sua meta-string de detalhe, só não o texto literal.
Ligue-o por guardrail quando precisar da substring para triagem; a configuração
não é retroativa.
POST /api/guardrail/match/:id/mark-fp, Admin) para que ela pare de
distorcer seu sinal enquanto você ajusta.
4. Endurecer — feche o gap
A contenção para este atacante; o endurecimento para o próximo. Dois movimentos: aperte a postura do workspace imediatamente, depois adicione a regra específica que teria capturado o que você acabou de ver.Caminho rápido — eleve o nível de autonomia
Se o incidente expôs um agente que estava rodando aberto demais, vire toda a postura do workspace em uma transação. Em Firewall → Posture, aplique o nível de autonomiatight
(papel Developer). Em um movimento isto define default-deny, nega shell
destrutivo, nega os nomes de ferramenta SSRF no formato de fetch e aplica os
guardrails PII Shield e Secrets & API-Key Blocker. Cada mudança é uma
transação com desfazer em um clique a partir do snapshot de auditoria, então
você pode reverter direto se for estrito demais.
Caminho preciso — adicione a regra que o teria capturado
Para injeção de prompt especificamente, o OrcaRouter entrega um preset Prompt-Injection Basics (categoria safety) — uma regra de keyword que sinaliza frases comuns de injeção para revisão sem bloquear o usuário. Comece por aí para obter sinal, depois escale. Seu irmão mais rígido, o Jailbreak / Role-Play Blocker, bloqueia a mesma classe com um regex. Em Guardrails → New guardrail (papel Developer; o sandbox de Test roda regras candidatas inline —llm_judge faz uma chamada de modelo paga —
então é Developer+ também), aplique o preset Prompt-Injection Basics,
depois adicione uma regra llm_judge para capturar as injeções ofuscadas que
uma lista de keywords perde:
judge_fail_open: false para tratar um erro ou timeout do judge como um block
quando uma verificação perdida for inaceitável. Prove toda a política na aba
Test e contra um corpus de Eval antes de vinculá-la a uma chave.
Faça o rollout da nova regra com segurança
Não aplique enforcement de uma regra nova às cegas em tráfego ao vivo. Para o firewall, definashadow_mode: true na política — todo veredito de enforcement
é rebaixado para audit e registrado como [shadow] would …, então você a
observa disparar no feed de Events antes que mude qualquer tráfego. Para
guardrails, defina a ação de uma regra nova como flag primeiro, observe o
feed de Matches, depois promova-a para block ou mask. Veja
modos de enforcement para o caminho
completo observe → shadow → enforce.
5. Verifique a correção
Confirme que o loop está fechado antes de considerá-lo resolvido.Reproduza o ataque no sandbox
Cole o prompt malicioso na aba Test do guardrail no stage
input e
confirme que o veredito agora é um block (ou flag). Para um incidente de
chamada de ferramenta, faça um dry-run da chamada ofensora em
Firewall → Test (Developer+) e confirme que o veredito é deny. Nenhum
sandbox envia nada upstream ou persiste nada.Confirme que a chave antiga está morta
Envie uma requisição na chave revogada e confirme que ela é rejeitada. Um
guardrail bloqueado retorna HTTP 400
guardrail_blocked; uma chamada de
ferramenta negada retorna HTTP 400 firewall_blocked — e um block custa
nenhuma cota (blocks no stage input disparam antes da medição; blocks de
output reembolsam a cota pré-consumida) e é marcado como skip-retry.Capture a timeline
Toda mudança de guardrail escreve uma linha de version-history que você pode
comparar e reverter. Mudanças de firewall são capturadas na trilha de
auditoria, e um apply de nível de autonomia carrega um snapshot de desfazer
em um clique. Junto com o log de auditoria do workspace, esse é o seu
registro de incidente — quem mudou o quê, quando, e qual era a postura antes
e depois.
6. Runbook num relance
| Fase | Ação | Onde | Papel |
|---|---|---|---|
| Conter | Delete a chave vazada | API Keys | Developer+ |
| Conter | Cunhe uma substituta com escopo | API Keys → New key | Developer+ |
| Dimensionar | Leia chamadas de ferramenta + vereditos | Firewall → Events / Runs | Developer+ |
| Dimensionar | Leia regras que dispararam | Guardrails → Matches | Member |
| Endurecer | Eleve a postura | Firewall → Posture (tight) | Developer+ |
| Endurecer | Adicione a regra que captura | Guardrails / Firewall | Developer+ |
| Verificar | Reproduza no sandbox | Abas Test | Developer+ |
7. Para onde ir a seguir
Checklist de go-live
O passe de endurecimento pré-produção — escope chaves e trave a postura antes
de lançar.
Injeção de prompt
O ataque ao qual este runbook responde, de ponta a ponta.
Modos de enforcement
Observe → shadow → enforce — faça o rollout de uma regra nova sem quebrar
tráfego.
Pare a exfiltração
Trave os destinos outbound se o incidente tocou a rede.
