Tudo aqui é configurado no console (Security → Firewall), cujas rotas de
gerenciamento usam sua sessão / token de acesso — não uma chave de relay
sk-orca-…. As chamadas /v1/* do seu agente não mudam.1. Por que regras por chamada perdem a cadeia
Os globs de ferramenta e cláusulas de argumento do firewall são stateless e determinísticos por design — eles decidem uma chamada, rápido, no hot path. Isso é exatamente o que você quer para “bloquearshell.exec rm -rf”. É
exatamente errado para uma exfiltração lenta onde cada chamada individual é
legal.
Duas ferramentas complementares preenchem o gap:
Regras de sequência
Uma regra que você cria que corresponde a uma cadeia ordenada de chamadas
dentro de uma janela de tempo — “bulk read → export → egress”. Você nomeia o
padrão.
Detecção de anomalias
O firewall aprende a forma normal de uso de ferramentas de cada workspace
e sinaliza desvios — loops de retry, caminhos de ferramenta nunca vistos
antes e picos de volume/custo. Nenhuma regra para criar.
2. Regras de sequência: nomeie a cadeia de ataque
Uma regrasequence vive dentro de uma
política de firewall como qualquer outra
regra, mas em vez de um único tool_name_glob ela carrega uma lista ordenada de
steps. Cada step é um glob de ferramenta com um min_count opcional e um
egress: true opcional; os steps devem ocorrer em ordem (intercalar com
chamadas não relacionadas é fino) e a cadeia inteira deve completar dentro de
window_seconds.
crm.*, depois chama qualquer
ferramenta *.export, depois faz qualquer chamada de egress — tudo dentro de dez
minutos. Cada chamada por si só passaria; o padrão é o sinal.
A sintaxe completa do campo sequence — window_seconds: 0 para sem limite de
tempo, padrões de min_count, semântica de ordenação de step — está no
schema de regra. Crie regras de sequência no
editor de regras do console; salvar é uma ação Developer+.
3. Detecção de anomalias: desvio do normal aprendido
Onde as regras de sequência perguntam “este padrão específico aconteceu?”, a detecção de anomalias pergunta “alguma coisa sobre esta run é anormal para este workspace?”. Ela não precisa de regra — o firewall constrói um baseline a partir do seu próprio tráfego e pontua a atividade ao vivo contra ele. Quatro tipos aparecem:rate_spike — uma inundação de volume
rate_spike — uma inundação de volume
Volume de chamadas por (tool, key) pontuado contra o baseline aprendido para
esta hora-da-semana. Uma linha aparece quando a contagem supera um piso
absoluto e roda alta em relação ao baseline, ou quando seu z-score cruza o
limiar estatístico. Então “100 chamadas
db.query às 3h de domingo” se
destaca mesmo que um burst do mesmo tamanho numa terça-14h não se
destacasse.burn_spike — um pico de custo
burn_spike — um pico de custo
A mesma ideia aplicada ao gasto: uma ferramenta queimando múltiplos de seu
custo de baseline aprendido para esta hora-da-semana. O aviso antecipado de
denial-of-wallet — combine-o com uma regra
cap_cost para aplicar um teto rígido.retry_loop — martelando uma ferramenta que falha
retry_loop — martelando uma ferramenta que falha
Um grupo
(conversation, tool, arguments) que se repete muitas vezes numa
janela apertada — um agente preso chamando a mesma ferramenta que falha com
os mesmos argumentos repetidamente, em vez de polling legítimo lento.novel_path — uma transição de ferramenta não vista
novel_path — uma transição de ferramenta não vista
Uma transição
tool_a → tool_b que este workspace nunca fez antes. A
primeira vez que um agente vai de read_file direto para http_fetch, essa
aresta acende mesmo se ambas as ferramentas são individualmente permitidas.O baseline de hora-da-semana
O baseline é uma média móvel de 14 dias agrupada por hora da semana (weekday × 24 + hour), então terça-14:00 é comparada contra o histórico
específico de terça-14:00 passado — não uma média plana de todo o tempo que
lavaria seu ritmo diário e semanal real. Um workspace novinho sem norma aprendida
ainda captura uma inundação óbvia via um piso absoluto, então você está protegido
desde o dia um.
4. Um passo a passo concreto
Suponha que um prompt comprometido conduza um dos seus agentes a um loop de falha apertado, depois sonde um caminho de export que ele nunca tocou. Aqui está o que você vê — nenhuma regra criada com antecedência:O agente se comporta mal
Instruções injetadas empurram o agente a fazer retry de um
db.query que
falha com argumentos idênticos, depois chamar report.export seguido de um
fetch outbound — um caminho que este workspace nunca rodou.Abra o feed de anomalias
Em Security → Firewall → Anomalies, a run revela um
retry_loop em
db.query e um novel_path na aresta report.export → http_fetch. Ler o
feed é uma ação Member — qualquer um na equipe pode fazer triagem.Confirme no trace de events
Clique até o log de events e a
analytics de run para ver a sequência
exata de chamadas, correlacionada à run do agente e à conversa. O feed de
anomalias é legível por Member, mas o log de events e o trace de run carregam
proveniência de chamada de ferramenta e são Developer+.
Converta a descoberta em uma regra
Agora que você viu a cadeia, codifique-a: um
deny no export perigoso, uma
allow-list de egress no fetch, ou uma
regra de sequência que audita o padrão inteiro na próxima vez. A detecção de
anomalias encontra o desconhecido; uma regra fixa o conhecido.5. Regras de sequência vs. detecção de anomalias
Elas resolvem problemas adjacentes — escolha a que combina com o que você sabe:| Regra de sequência | Detecção de anomalias | |
|---|---|---|
| Você cria | A cadeia exata | Nada — ela aprende |
| Captura | Um padrão de múltiplos passos conhecido | O desconhecido / anormal |
| Age | Aplica o veredito da regra à chamada que completa (audit / pending_approval / deny) | Aparece no feed |
pending_approval ou deny) capazes de controlar a
chamada que completa. Para uma parada rígida numa única chamada independentemente
de qualquer cadeia, recorra a um veredito por
chamada.
6. RBAC e as rotas por trás do feed
O feed de anomalias e as regras de sequência ficam sob as rotas de gerenciamento de firewall do workspace — seu token de sessão / acesso, nunca uma chave de relay:| Método & path | Papel | Propósito |
|---|---|---|
GET /api/workspace/firewall/anomalies | Member | Lê o feed de anomalias (?window=). |
POST /api/workspace/firewall/anomalies/snooze | Developer+ | Dá snooze no feed ({until}, limitado a 7 dias). |
POST /api/workspace/firewall/rules | Developer+ | Cria uma regra de sequência (ou qualquer) sob uma política. |
POST /api/workspace/firewall/test | Developer+ | Dry-run de uma política contra uma chamada de amostra antes de depender dela. |
Para onde ir a seguir
Schema de regra
O campo
sequence completo — steps, min_count, window_seconds e todos os
outros campos de regra.Log de events
Onde sequências e anomalias correspondidas aterrissam — filtre por run,
superfície e veredito.
Limite de custo
Transforme um sinal
burn_spike em um teto de gasto rígido por run.Controle de egress
Pare o step final de exfiltração de uma cadeia na fronteira de rede.
