http_fetch, web_search, ou tout outil qui ouvre
une connexion sortante, la destination est la partie que vous avez le plus
besoin de gouverner. Un agent confus ou détourné qui peut atteindre
169.254.169.254 lit vos identifiants cloud ; un qui peut POSTer vers un
hôte attaquant exfiltre vos données. Le contrôle d’egress des agents
gouverne cette destination — vous rédigez une règle d’autorisation/refus
host/CIDR sur la surface egress du firewall, l’attachez à une clé, et la
passerelle vérifie chaque destination sortante que l’outil d’un agent
rapporte avant que l’appel ne sorte.
C’est une page de cas d’usage ciblée. Pour la grammaire complète des règles
et la sémantique des verdicts, voir
Schéma de règle et
Verdicts ; pour la façon dont l’egress se
place parmi les autres points d’application, voir
Stages.
1. Le contrôle d’egress des agents sur la surface egress
Des quatre surfaces du firewall,egress est
celle qui voit la destination réseau sortante qu’un outil rapporte — un
host, un littéral d’IP, ou un CIDR. Une règle épinglée à stage: egress
correspond sur cette destination, pas sur le nom d’outil ni ses arguments, ce
qui en fait le contrôle de SSRF et d’exfiltration de données : elle répond à
où cet agent peut atteindre, indépendamment de quel outil a effectué
l’atteinte.
L’egress est du scoping de destination, pas du blocage d’outil. Pour
empêcher un outil d’exister du tout, refusez-le par son nom sur la surface
inbound (Bloquer des outils). Le contrôle
d’egress suppose que l’outil peut légitimement récupérer — il contraint juste
vers où.
2. Un exemple : refuser les destinations SSRF
La règle d’egress canonique refuse l’endpoint cloud metadata et les plages privées RFC-1918 — les destinations qu’un outil de forme fetch ne devrait jamais atteindre. Dans la console de votre espace de travail, ouvrez une politique et ajoutez une règle avecstage egress, le verdict deny, et une liste d’egress :
egress_json est une chaîne encodée en JSON portant les listes
host/CIDR — décodée, c’est {"deny": [...], "allow": [...]}. Chaque entrée
correspond comme un CIDR, un littéral d’IP, ou un nom d’hôte
insensible à la casse. Pour un verdict deny, la liste deny est
l’ensemble en portée (les destinations que la règle bloque) et la liste
allow y taille des exceptions — de sorte que la règle ci-dessus bloque les
quatre plages mais laisse passer api.openai.com même s’il se résolvait un
jour dans l’une d’elles. Quand une destination est un nom d’hôte plutôt qu’un
littéral d’IP et que votre liste porte des entrées IP/CIDR, le nom est résolu
en best-effort et ses adresses re-vérifiées, de sorte que metadata.internal
correspond quand même à un deny 169.254.0.0/16 même s’il n’est pas listé par
son nom.
3. Vous rédigez les règles CIDR — aucun preset ne les embarque
Ce que le niveau d’autonomietight et son
preset block_ssrf_egress embarquent est un ensemble de refus sur les
noms d’outils de forme fetch — http_fetch, web_search, fetch_url,
request, plus leurs variantes MCP <server>.<tool>. C’est une posture
brutale : elle refuse les outils de forme egress purement et simplement
plutôt que de scoper où ils peuvent atteindre. Recourez-y quand un agent n’a
rien à faire à faire des appels réseau ; recourez à une règle de destination
(§2) quand il récupère mais seulement depuis un ensemble approuvé d’hôtes.
| Approche | Ce qu’elle contraint | Auteur |
|---|---|---|
Preset SSRF tight | Les noms d’outils de forme fetch (les refuse) | Intégré |
| Règle CIDR/host d’egress | La destination qu’un fetch peut atteindre | Vous |
4. À quoi ressemble un egress bloqué
Quand une destination correspond à une règle d’egress appliquante, l’appel est refusé avant de quitter la passerelle et l’évaluation est enregistrée comme un événement firewall avec la surfaceegress et le verdict deny. En
mode shadow, le deny est rétrogradé en
audit avec la raison préfixée [shadow] would …, de sorte que vous pouvez
mesurer exactement quelles destinations une règle bloquerait contre le
trafic réel avant de l’appliquer.
Une liste d’egress malformée ou sans entrées est traitée de façon
conservatrice : une règle
deny appliquante filtre quand même (une faute de
frappe ne peut pas l’empêcher silencieusement de bloquer), mais une règle
allow avec une liste cassée ne se déclenchera pas — sinon une liste
blanche mal saisie deviendrait allow-all et masquerait un deny par défaut.
Les nouvelles règles sont validées à l’enregistrement (la liste doit déclarer
au moins une entrée allow ou deny), donc cela ne protège jamais que les
anciennes lignes.5. Rédiger à partir du trafic réel, puis déployer
Voir les destinations que vous atteignez réellement
Voir les destinations que vous atteignez réellement
Le journal d’événements enregistre le
host de destination sur chaque événement de surface
egress
(egress_host/egress_url), donc filtrez-le sur la surface egress et
rédigez votre liste de refus à partir des destinations qui sont réellement
apparues plutôt que de deviner. L’onglet Discovered Tools est un
récapitulatif par nom d’outil (les noms d’outils et les surfaces sur
lesquelles ils se sont déclenchés) — il vous dit quels outils de forme
fetch se sont exécutés, pas les hôtes qu’ils ont atteints. Voir
Analytics.Dry-run d'un verdict avant de vous y fier
Dry-run d'un verdict avant de vous y fier
L’onglet Test de la console exécute une politique en dry-run contre un
tool_name + surface (+ args optionnels) d’échantillon et renvoie le
verdict, la règle correspondante et la raison — rien n’est dispatché. Il
confirme à quelle règle un appel se résout ; pour confirmer votre calcul
CIDR/host contre des destinations réelles, utilisez le mode shadow
ci-dessous (le payload Test ne porte pas de destination, donc la
correspondance de liste d’egress est exercée sur le trafic egress réel).
Voir Tester les règles.Mesurer en live avec le mode shadow
Mesurer en live avec le mode shadow
Activez le mode shadow et le deny
d’egress est journalisé comme il se déclencherait sans bloquer. Surveillez
le journal d’événements filtré sur la
surface
egress, confirmez qu’il attrape les destinations que vous
attendez, puis désactivez le shadow.6. Attacher la politique et qui peut l’éditer
Une politique ne fait rien jusqu’à ce qu’une clé s’y résolve. Attachez dans la console en définissantfirewall_policy_id sur la
clé, ou faites de la politique le défaut
de l’espace de travail. La résolution est : la politique attachée de la clé
(lorsqu’elle existe et est activée), sinon le défaut de l’espace de travail.
Toute la configuration des règles d’egress s’exécute dans la console sous
votre session (/api/workspace/firewall/*) :
| Action | Rôle |
|---|---|
| Lire les politiques, presets, outils découverts, Simulate d’autonomie | Member |
| Créer / éditer / supprimer des règles d’egress et des politiques | Developer+ |
Endpoint Test de dry-run (POST /test) | Developer+ |
| Lire le journal d’événements et les agrégations d’exécutions | Developer+ |
Connexe
Exfiltration de données
La menace que le contrôle d’egress traite.
Stages
Les quatre surfaces, et où l’egress se place.
Verdicts
Ce que font deny, audit et allow sur le fil.
Bloquer des outils
Refuser un outil de fetch par son nom plutôt que par destination.
Appels d'outils dangereux
La classe de risque plus large.
Référence du Firewall
La référence complète des règles + correspondance, y compris les listes
d’egress.
