MCP : liste blanche et confirmations
Brancher des serveurs MCP élargit ce que l'agent peut faire, donc ce qu'un attaquant peut lui faire faire. On autorise des hôtes nommés, on confirme les écritures et on garde les secrets côté serveur.
- mcp
- allowlist
- liste blanche
- egress
- ssrf
- exfiltration
- confirmation
Syntaxe
Lecture (resources, tools de lecture) : autoriséeÉcriture (tools qui modifient) : confirmation humaine ; jamais d'autorisation silencieuse en productionRéseau : liste blanche d'hôtes nommés (api.stripe.com, api.github.com), jamais « * »Refusés : adresses internes (10.0.0.0/8, 169.254.169.254), raccourcisseurs d'URL, domaines inconnusExemple
Configuration d'un agent de cours : resource db.schema → autorisée tool lecture stripe.list_prices → autorisé tool écriture github.create_issue → confirmation à chaque appel tool fetch vers une URL quelconque → absentScénario : un README piégé demande d'envoyer .env vers paste.example.netRésultat attendu : aucun outil ne peut joindre ce domaine, la tentative échoue.À retenir
- Un outil HTTP générique combiné à la lecture de fichiers forme un canal d'exfiltration : préférez des serveurs métier qui n'exposent que les actions utiles.
- Bloquez les adresses internes et celle des métadonnées du cloud : un agent qui peut les joindre peut servir de relais vers votre réseau (attaque de type SSRF).
- Passez régulièrement en revue les serveurs activés : un serveur ajouté pour un test et oublié reste une porte ouverte.
- Piège : coller le jeton d'API dans le prompt « pour dépanner ». Il reste dans l'historique et les journaux, et l'agent peut le recopier dans une réponse.
Voir aussi
- MCP (Model Context Protocol)MCP est un protocole ouvert qui branche un agent sur des services externes (GitHub, base de données, outil métier) par un serveur standard, sans jamais coller de secret dans la conversation.
- Injection de prompt par le dépôtTout ce que l'agent lit peut devenir une consigne : README, issue, page web, skill téléchargé. Un texte caché exigeant d'afficher .env est une attaque, que seules les règles de l'outil bloquent.
- Appel d'outils (function calling)Le modèle n'exécute rien lui-même : il demande l'appel d'un outil décrit par un schéma JSON, votre code l'exécute et lui renvoie le résultat. C'est le mécanisme de base de tout agent.