fetch, una web_search, un poster di webhook. Il nome del tool potrebbe
essere sulla tua allow-list, gli argomenti potrebbero sembrare puliti, e la
chiamata finisce comunque per fare il POST dei tuoi dati verso un host
controllato da un attaccante o per estrarre credenziali dall’endpoint metadata
169.254.169.254. La destinazione è la parte della chiamata che le tue regole
sul nome del tool non vedono mai.
Il mcp egress control chiude quella lacuna. Una regola egress dà scope a un
verdetto del firewall a dove un tool arriva — un host, un IP, o un range CIDR —
così lo stesso http_fetch che è consentito verso api.openai.com è negato
verso tutto il resto. Gira sulla superficie egress del firewall, sopra la
valutazione per chiamata che ogni tools/call già
attraversa.
Questo è un task di console. Le regole del firewall vivono sulle route
/api/workspace/firewall/*, che si autenticano con il tuo session / access
token — non con una chiave relay sk-orca-…. Scrivere una regola richiede il
ruolo Developer+.1. Cosa controlla una regola egress
Una regola normale matcha sul nome del tool e sui suoi argomenti. Una regola egress aggiunge una terza dimensione: la destinazione a cui la chiamata si risolve. Imposti lostage della regola su egress e alleghi una
lista egress_json di voci allow / deny. Il motore estrae l’host di
destinazione dalla chiamata e fa scattare la regola solo quando quell’host è
in scope.
Le voci sono matchate in tre modi:
Hostname
Match esatto case-insensitive, es.
api.openai.com. Un punto finale viene
rifilato su entrambi i lati.IP letterale
Match esatto contro l’IP di dial risolto, es.
169.254.169.254.Range CIDR
L’IP di destinazione — letterale o DNS-risolto — deve cadere dentro il
blocco, es.
10.0.0.0/8.2. Un esempio concreto
Nega a ogni tool a forma di fetch di raggiungere l’endpoint cloud-metadata e i range RFC-1918. Questo è il taglio canonico della leg di esfiltrazione SSRF: un verdettodeny sullo stage egress, con scope da una denylist egress_json.
tools/call la cui destinazione risolve in uno qualsiasi di quei range
torna al modello come un errore di tool; una chiamata a un host pubblico che la
denylist non copre passa.
3. Mettere in allow-list una sola destinazione
L’inverso dell’esempio sopra: blocca un tool fetch su un singolo host autorizzato e lascia che ildefault_verdict della policy (o un catch-all
successivo) gestisca il resto. Poiché questo è un verdetto allow, la lista
allow è l’insieme in-scope.
4. Come si compone con il resto del firewall
Una regola egress è una regola tra molte in una policy del firewall del workspace. Il motore percorre le regole in ordine di priorità (la più bassa prima) e il primo match vince, quindi metti un egress deny stretto sopra qualsiasi allow ampio.| Verdetto su una regola egress | Effetto |
|---|---|
deny | Blocca la chiamata verso le destinazioni in-scope — registrata sulla superficie egress e restituita al tool come un errore. |
audit | Logga la chiamata matchata come un evento del firewall; fa comunque il dispatch. |
allow | Permette le destinazioni in-scope; si abbina a un floor default-deny. |
pending_approval e cap_cost non sono applicati sulla superficie
egress — egress è un controllo di destinazione, non un’attesa o un tetto di
spesa. Usa quei verdetti sulle superfici mcp o inbound invece. Vedi il
riferimento dei verdetti.Guardia SSRF integrata (nessuna regola richiesta)
Guardia SSRF integrata (nessuna regola richiesta)
Indipendentemente da qualsiasi regola che scrivi, il
gateway MCP valida ogni endpoint di server e il
suo IP di dial risolto contro una policy SSRF — i range intranet e
l’indirizzo cloud-metadata sono rifiutati, e l’IP viene ri-controllato a
ogni hop per sconfiggere il DNS rebinding. La tua regola egress stratifica
una policy di destinazione specifica per workspace sopra quel baseline.
Regole di sequenza per la catena di esfiltrazione
Regole di sequenza per la catena di esfiltrazione
Un singolo egress deny ferma un tool dal raggiungere un host. Una
regola di sequenza ferma la
catena — es. “leggi un file, poi fai egress nella finestra” — segnalando
la leg di egress solo quando segue una lettura sensibile. È il breaker della
trifecta letale; lo scoping dell’egress è il controllo per chiamata.
5. Fai prima lo shadow, poi enforce
Far andare un egress deny direttamente all’enforcement su un workspace trafficato rischia di rompere un’integrazione legittima che hai dimenticato. Due reti di sicurezza:- Shadow mode. Una policy in shadow mode declassa ogni verdetto enforcing a
audit — il tuo egress deny logga
[shadow] would deny …invece di bloccare, così vedi il raggio dell’esplosione prima che morda. - Observe mode. L’impostazione del workspace
firewall_observe_modelogga le chiamate non coperte come Tool Scoperti, presentando le destinazioni reali che i tuoi agent già raggiungono così puoi scrivere un’allow-list accurata dai dati invece che a indovinare.
6. Ruoli e route
Tutte le route della console hanno scope a livello di workspace e si autenticano con il tuo session / access token. Le letture sono aperte a qualsiasi Member; scrivere o modificare una regola richiede Developer+.| Metodo & path | Ruolo | Scopo |
|---|---|---|
GET /api/workspace/firewall/policies/:id | Member | Leggi una policy e le sue regole. |
POST /api/workspace/firewall/rules | Developer+ | Aggiungi una regola (imposta stage: egress). |
PUT /api/workspace/firewall/rules | Developer+ | Aggiorna una regola (id nel body). |
DELETE /api/workspace/firewall/rules/:id | Developer+ | Rimuovi una regola. |
POST /api/workspace/firewall/test | Developer+ | Riesegui una chiamata di esempio contro una bozza di policy. |
Correlati
Riferimento delle regole del firewall
Il DSL completo delle regole — glob dei tool, matching degli argomenti,
liste egress, sequenze.
Connettere un MCP server
Registra un server così le sue chiamate a tool girano dietro il firewall.
Allow-list dei tool MCP
Default-deny sui tool che non hai esplicitamente approvato.
Esfiltrazione dei dati
La minaccia che il controllo di egress è costruito per fermare.
