sk-… lasciata in un campo command, un
SSN di un cliente incollato in un body, un token interno in un header di
richiesta. Il verdetto sanitize del firewall cattura quel materiale negli
argomenti della chiamata a tool, lo sostituisce con un token di redazione tipizzato
e inoltra la chiamata ripulita — così l’azione gira comunque, ma il segreto non
lascia mai il gateway.
Questo è un verdetto nel linguaggio di matching del firewall. Per l’insieme
completo vedi Verdetti e il
riferimento delle regole; questa pagina è la guida
focalizzata alla scrittura e al ragionamento su sanitize.
1. Cosa fa sanitize — e cosa non tocca mai
Una regola converdict: sanitize esegue un motore di redazione sugli
argomenti della chiamata a tool prima che la chiamata venga dispatchata. Ogni
match viene sostituito con un token canonico e la chiamata prosegue con gli
argomenti ripuliti — il tool gira comunque, solo senza il segreto grezzo al suo
interno.
Redige
Gli argomenti JSON di un
tool_call emesso dal modello o di un
tools/call MCP — command, body, headers, qualsiasi campo stringa dove
è atterrato un segreto o una PII.Non redige mai
Il contenuto che un tool restituisce, il prompt, il testo di risposta del
modello. Sanitize è un redactor solo-argomenti. Il filtraggio del testo è una
questione dei Guardrail.
[redacted:<preset>] (es. [redacted:openai_key]), e un match su pattern
custom diventa [redacted:custom]. La forma dell’argomento è preservata — cambia
solo la sottostringa sensibile — così un tool che si aspetta JSON valido riceve
comunque JSON valido.
2. I preset di detector integrati
Una regola sanitize nomina uno o più preset (forme note di segreto/PII) e/o pattern custom regex. I preset integrati:| Preset | Cattura |
|---|---|
aws_access_key | AWS access key id (AKIA… / ASIA… + 16 caratteri) |
aws_secret_key | Un secret AWS di 40 caratteri (consapevole dei confini) |
openai_key | sk- + ≥32 caratteri |
anthropic_key | sk-ant- + ≥40 caratteri |
bearer_token | Bearer + un token di ≥16 caratteri (keyword mantenuta) |
email | Un indirizzo email |
ssn_us | Un SSN US nella forma 3-2-4 |
credit_card | Una sequenza di 13–19 cifre che passa un controllo Luhn |
Una regola sanitize deve dichiarare almeno un preset o pattern custom — un
sanitizer vuoto viene rifiutato quando salvi la regola. Un match
credit_card è
inoltre verificato con Luhn, così un numero della stessa lunghezza che non è una
carta valida viene lasciato intatto anziché redatto in eccesso.3. Un esempio concreto
Scrivi questo nell’editor delle regole della console. L’esempio redige una chiave OpenAI e qualsiasi email dagli argomenti di qualsiasi chiamata a toolhttp.* che
il tuo agent emette, poi inoltra la chiamata ripulita:
key=[redacted:openai_key] user=[redacted:email] — la richiesta gira comunque, il
segreto e l’indirizzo non lasciano mai il gateway.
4. Sulla superficie inbound, sanitize escala a deny
La superficieinbound valuta i tool che un agent
pubblicizza su una richiesta — definizioni di tool, che non portano ancora
alcun argomento al momento della chiamata. Non c’è nulla da redigere lì, quindi
un verdetto sanitize sulla superficie inbound escala a un deny
(fail-closed): la richiesta viene bloccata con firewall_blocked anziché inoltrata
non redatta.
5. Sanitize vs. gli altri modi per gestire un segreto
Tre layer possono agire su un segreto che un agent sta per far trapelare — scegli in base a cosa e dove:Sanitize (firewall) — redige gli argomenti della chiamata a tool
Sanitize (firewall) — redige gli argomenti della chiamata a tool
Rimuove il segreto dagli argomenti di una chiamata a tool e fa girare
comunque la chiamata. Usalo quando l’azione è legittima ma l’agent ha messo
qualcosa di sensibile in un campo. Solo a livello di argomenti.
Deny (firewall) — blocca l'intera chiamata
Deny (firewall) — blocca l'intera chiamata
Ferma del tutto la chiamata. Usalo quando l’azione stessa è pericolosa, non
solo un argomento. È anche ciò che sanitize diventa sulla superficie inbound.
Vedi blocca i tool.
Guardrails — filtra il testo di prompt / risposta
Guardrails — filtra il testo di prompt / risposta
I guardrail Secrets Blocker e PII
filtrano il testo di una richiesta o risposta (incluso, sullo stage di
output, il contenuto generato dal modello). Quello è il layer per “ciò che un
tool o un modello restituisce” — la cosa che sanitize non fa.
6. Dove sanitize compare nella tua traccia
Come ogni verdetto, una valutazione sanitize è registrata come un evento del firewall — filtrabile per verdetto, superficie, tool ed esecuzione nel log degli eventi e aggregata in analytics. In shadow mode un verdetto sanitize (come ogni verdetto applicativo) viene declassato aaudit e la motivazione è prefissata
[shadow] would …, così puoi misurare l’impatto prima che un argomento venga
effettivamente riscritto.
Dove andare dopo
Tutti i verdetti
allow, audit, deny, sanitize, pending_approval, cap_cost.
Valida gli argomenti
Fai match su una chiamata in base a cosa c’è nei suoi argomenti — la grammatica delle clausole JSONPath.
Blocca i tool
Quando l’azione stessa è il problema, nega l’intera chiamata.
Firewall + Guardrails
Filtra il testo che un tool o un modello restituisce — il layer che sanitize non copre.
