inbound non ha alcuna destinazione da controllare; una clausola sugli
argomenti su inbound non ha ancora argomenti al momento della chiamata.
Questa pagina è la guida focalizzata ai quattro stage dell’agent firewall: cosa
osserva ciascuna superficie, quando una regola dovrebbe puntarvi, e l’unico modo
concreto in cui lo stesso intento viene espresso a stage diversi. Per il vocabolario
completo delle regole, vedi Regole del Firewall; per
il modello di policy che lo circonda, Firewall.
1. I quattro stage in breve
Ogni valutazione è marcata con esattamente uno stage. Una regola senza stage ("") si applica a tutti; una regola fissata a uno stage scatta solo lì.
| Stage | Cosa vede la superficie |
|---|---|
inbound | I tool che l’agent pubblicizza sulla richiesta |
response | I tool_calls che il modello emette nella sua risposta |
mcp | Un tools/call dispatchato attraverso il gateway MCP |
egress | Un host / IP / CIDR in uscita che un tool raggiunge |
stage quando scrivi tramite l’API.
Lo stage governa quali dati sono nello scope, non quanto è severo il verdetto.
Un
deny è un deny su qualsiasi stage; ciò che cambia è se la regola ha gli
argomenti, il nome del tool o la destinazione su cui deve fare matching.2. inbound — i tool che un agent pubblicizza
La superficie più precoce. Prima ancora che il modello giri, il tuo agent invia un
elenco di definizioni di tool che è disposto a far chiamare al modello. Lo stage
inbound vede quell’insieme di tool pubblicizzato e può bloccare un tool pericoloso
prima ancora che il modello possa sceglierlo.
Non ci sono argomenti al momento della chiamata a questo stage — il modello non ha
ancora deciso come chiamare nulla — quindi le regole inbound fanno matching sul
nome del tool (e opzionalmente sulla skill proprietaria), non su args_match_json.
Una chiamata negata qui restituisce HTTP 400 con codice firewall_blocked,
nominata in base al tool e alla motivazione, e marcata skip-retry.
3. response — le chiamate a tool che il modello emette
Una volta che il modello risponde, può emettere uno o più tool_calls —
invocazioni concrete con argomenti reali. Lo stage response li vede, quindi è qui
che appartengono le regole a livello di argomento: non “blocca shell.exec” ma
“blocca shell.exec solo quando il comando è rm -rf.”
sanitize funziona qui —
redige le sottostringhe corrispondenti dagli argomenti della chiamata e inoltra la
chiamata ripulita. (Sanitize redige solo gli argomenti della chiamata a tool;
non tocca mai il contenuto che un tool restituisce.)
4. mcp — chiamate dispatchate attraverso il gateway
Quando un agent raggiunge un tool attraverso il
gateway MCP di OrcaRouter, ogni tools/call viene
valutato sullo stage mcp prima di essere dispatchato al server registrato. Questa
è la superficie che governa il traffico Model Context Protocol — lo stesso
vocabolario di glob / argomenti / verdetto di response, applicato al dispatch
MCP.
Un block qui compare come un errore di tool (firewall deny: <reason>)
anziché un fallimento di trasporto, così il modello vede il rifiuto e può
reagire — scegliere un altro tool, chiedere all’utente o fermarsi.
5. egress — la destinazione in uscita che un tool raggiunge
L’ultima superficie. Quando un tool riporta una destinazione di rete in uscita, lo
stage egress vi fa matching — la superficie di SSRF ed esfiltrazione di dati. Le
regole egress non fanno matching solo su un pattern del nome di un tool; fanno
matching su un elenco di host / IP / CIDR:
169.254.169.254) e i range RFC-1918 sono le cose canoniche da negare.
Vedi Regole del Firewall §6
per la polarità allow/deny.
Nessun preset include regole CIDR. La postura SSRF del livello di autonomia
tight
livello di autonomia
nega nomi di tool a forma di fetch (es. http_fetch,
web_search, fetch_url); un deny di egress basato sulla destinazione è qualcosa
che scrivi tu per gli host e i range che i tuoi agent non devono mai raggiungere.6. Scegliere lo stage giusto
Lo stesso obiettivo di sicurezza ha spesso uno stage migliore. Abbina l’intento alla superficie che porta effettivamente i dati che ti servono:Impedire del tutto che un tool venga offerto → inbound
Impedire del tutto che un tool venga offerto → inbound
Se il modello non dovrebbe nemmeno vedere un tool, negalo su
inbound. Il
block atterra prima della chiamata al modello, quindi non costa token del modello.Consentire un tool ma vincolarne gli argomenti → response (o mcp)
Consentire un tool ma vincolarne gli argomenti → response (o mcp)
Le clausole sugli argomenti hanno bisogno degli argomenti scelti dal modello, che
esistono solo su
response e mcp. Nega su un argomento pericoloso, o sanitize
per rimuovere un segreto o un valore PII che l’agent ha messo in un argomento.Governare il traffico Model Context Protocol → mcp
Governare il traffico Model Context Protocol → mcp
Le chiamate instradate attraverso il gateway MCP vengono valutate su
mcp prima
del dispatch — il punto di strozzatura per i tool di ogni server registrato.Bloccare dove un agent può connettersi → egress
Bloccare dove un agent può connettersi → egress
Le regole basate sulla destinazione — blocca l’IP cloud-metadata, nega un CIDR,
metti in allowlist i tuoi host approvati — hanno senso solo su
egress.Applicare a ogni superficie → lascia lo stage vuoto
Applicare a ogni superficie → lascia lo stage vuoto
Una regola senza stage gira su tutte e quattro. Usala per una regola in stile
default_verdict su tutto, o per un tool che neghi ovunque compaia.7. Stage e shadow mode
Il flagshadow_mode di una policy è indipendente dallo stage. Attivalo e ogni
verdetto applicativo — su qualsiasi stage — viene declassato a audit e la
motivazione è prefissata [shadow] would …, così puoi confermare che una regola
scatti sulla superficie giusta prima che modifichi il traffico live. Vedi
Shadow mode e
Modalità di applicazione.
8. Dove gli stage si inseriscono nel quadro più ampio
I quattro stage sono il dove dell’applicazione; il resto del modello è il cosa e il chi.Verdetti
Cosa può fare ogni stage una volta che corrisponde — allow, audit, deny,
sanitize, mettere in attesa di approvazione, limitare il costo.
Allow-listing dei tool
Usa
inbound per vincolare l’insieme di tool che un agent pubblicizza.Valida gli argomenti
Scrivi clausole sugli argomenti
response / mcp che governano un tool in base
a come viene chiamato.Controllo dell'egress
Blocca le destinazioni in uscita sulla superficie
egress — il
confine di esfiltrazione.