1. Pourquoi sécuriser un agent MCP
Pointez un agent directement vers cinq serveurs MCP et vous avez cinq frontières de confiance, cinq stores d’identifiants et zéro piste d’audit partagée. Letools/call qui lit un dossier client et celui qui exécute
une commande shell sont identiques aux yeux du modèle, et un serveur
communautaire peut discrètement demander shell.exec et une portée réseau
externe la première fois qu’il se charge.
La solution est de faire d’OrcaRouter l’unique point d’étranglement que
chaque appel franchit. Pour sécuriser le trafic d’un agent MCP de bout
en bout, vous routez tout le dispatch MCP à travers la
passerelle MCP du Firewall, de sorte que
chaque tools/call soit évalué par la politique avant qu’il n’atteigne
le vrai serveur — avec les skills scorés en risque, l’egress gouverné, et
les identifiants chiffrés au repos.
C’est une recette — elle assemble des fonctionnalités existantes en une
passe de durcissement concrète. Pour la référence complète, suivez les
liens vers Firewall,
Serveurs MCP, et
Skills.
2. Partez du référentiel Secure Agents
Avant de rédiger quoi que ce soit de sur-mesure, définissez une posture. Dans la console, ouvrez Firewall → Posture et appliquez le niveau d’autonomiebalanced
(rôle Developer). En une seule transaction, il audite les appels d’outils
et signale la PII tout en refusant les actions les plus destructrices —
vous observez avant d’appliquer largement, avec annulation en un clic.
Quand les flux Events et Runs
semblent corrects, passez à tight : deny par défaut, shell destructeur
refusé, egress de forme SSRF refusé, plus les guardrails PII Shield et
Secrets Blocker appliqués. Cet unique interrupteur est le plancher sur
lequel cette recette se construit.
3. Routez chaque tools/call à travers une seule passerelle MCP
Enregistrez chaque serveur MCP une fois ; la passerelle agrège leurs outils sous une seule connexion (namespacés<server>.<tool>) et exécute chaque
tools/call à travers le moteur du firewall.
Enregistrez un serveur depuis la console (ou l’API REST, Developer+) :
github.create_issue et shell.exec apparaissent côte à côte
sous une seule connexion, et chaque dispatch est évalué avant de
s’exécuter. Un appel bloqué revient au modèle comme une erreur d’outil
(firewall deny: …), pas un plantage de transport, donc l’agent peut
s’adapter.
Avant de pouvoir écrire des règles contre les outils d’un serveur,
sondez-le pour découvrir leurs noms et schémas :
4. Mettez en quarantaine les skills que l’agent tire
La passerelle MCP gouverne les appels ; la gouvernance de skills gouverne les capacités qu’un agent charge. Chaque skill installable, serveur MCP BYO, ou plugin est scanné dans une bande de risque et un mode d’application qui se superpose à chaque verdict de règle :| Mode | Effet à l’exécution |
|---|---|
allow | Les verdicts de règle décident ; le skill n’ajoute rien. |
quarantine | Tout ce qui est en-deçà d’un deny est mis en attente pour pending_approval. |
block | Les outils du skill sont refusés de force. |
5. Refusez l’egress de forme SSRF
Un outil MCP compromis ou confus qui tend la main vers le cloud-metadata ou un hôte intranet est le chemin d’exfiltration classique. Deux couches le couvrent. D’abord, la passerelle valide chaque endpoint MCP distant et son IP de composition résolue contre une politique SSRF à l’enregistrement et à chaque saut de dispatch — les plages intranet et l’adresse cloud-metadata sont refusées, re-vérifiées pour déjouer le DNS rebinding. C’est intégré ; vous ne le configurez pas. Ensuite, le niveau d’autonomietight livre un preset d’egress SSRF qui
refuse les noms d’outils de forme « fetch » — http_fetch,
web_search, fetch_url, request, et leurs formes namespacées
<server>.* — de sorte qu’un outil dont tout le travail est « va chercher
cette URL » est stoppé avant de composer.
Pour gouverner où les outils peuvent atteindre par destination, rédigez
votre propre règle egress avec une liste de deny host/CIDR — c’est la
surface pour épingler la portée sortante :
Aucun preset ne livre de règles d’egress CIDR — le preset SSRF correspond
aux noms d’outils, pas aux destinations. Rédigez vous-même la denylist
host/CIDR quand vous avez besoin d’un contrôle au niveau de la destination.
Voir listes d’egress
et arrêter l’exfiltration.
6. Gardez les identifiants de serveur chiffrés
Leauth_json de chaque serveur MCP est chiffré au repos et masqué à la
lecture ; la passerelle injecte les identifiants au moment du dispatch, de
sorte qu’ils n’atteignent jamais le modèle ni le client. Valeurs
auth_mode supportées :
bearer
bearer
{ "token": "…" } — un token bearer statique, envoyé comme
Authorization: Bearer.oauth
oauth
{ "client_id": "…", "client_secret": "…", "token_url": "…" } —
OAuth client-credentials ; la passerelle récupère et rafraîchit le
token.basic
basic
{ "username": "…", "password": "…" } — auth HTTP Basic.none
none
"" — un serveur non authentifié. Le défaut.status du serveur (ok /
degraded / down) de la dernière
sonde vous indique
s’il est joignable avant que vous n’en dépendiez.
7. Ajoutez un guardrail de contenu sur la requête
Le Firewall gouverne les actions ; associez-le à un Guardrail pour que le texte qui circule à travers votre agent MCP soit filtré aussi. Le preset Secrets Blocker attrape les identifiants dans une requête avant que le modèle — ou tout outil — ne les voie jamais, et un PII Shield masque les identifiants à l’entrée. Les deux s’activent avec le niveau d’autonomietight, ou attachez un guardrail nommé à la clé de relais de l’agent via
guardrail_id.
8. Vérifiez et surveillez
Confirmez que la politique fait ce que vous attendez avant de lui faire confiance, puis gardez un œil sur les flux :Tester un appel d'outil
Exécutez en dry-run un
tools/call d’échantillon contre votre politique
et voyez le verdict, la règle correspondante et la raison — rien de
dispatché, rien de journalisé.Outils découverts
Chaque outil que l’espace de travail a vu, marqué covered ou gap —
rédigez des règles directement à partir du trafic MCP réel.
Events & Runs
Chaque dispatch, son verdict, et la surface qu’il a touchée, agrégés par
exécution d’agent.
Flux d'anomalies
Pics de débit/coût, boucles de retry, et chemins d’outils inédits contre
une baseline apprise.
9. Où aller ensuite
Empoisonnement d'outil MCP
Le modèle de menace derrière la quarantaine et la passerelle MCP.
Agence excessive
Pourquoi deny par défaut et HITL importent pour l’usage d’outils
autonome.
Recette agent autonome
Durcissez de bout en bout un agent à haute autonomie.
Arrêter l'exfiltration
Verrouillez l’egress sortant en profondeur.
