Blog

Sécuriser MCP avec OpenAI : 5 gestes et pseudonymisation pour RSSI et DPO

Carte titre illustrée sur la sécurité MCP

Le Model Context Protocol connecte vos modèles OpenAI à vos outils métier, mais chaque serveur ajouté élargit votre surface d'attaque. La priorité opérationnelle tient en cinq gestes : liste blanche des serveurs autorisés, principe du moindre privilège, isolation en conteneur, journalisation systématique et validation humaine avant toute action sensible. Une couche de pseudonymisation comme celle de Safe-doc, appliquée avant que les documents n'atteignent un serveur MCP, réduit mécaniquement ce qui peut fuiter en cas d'incident.


En bref:

  • La sécurisation du Model Context Protocol (MCP) repose sur une liste blanche stricte des serveurs, le principe du moindre privilège et une isolation en conteneur.
  • La majorité des vulnérabilités proviennent du poisoning des descriptions d'outils ou de rug pulls, nécessitant une vérification rigoureuse des manifests et du contrôle de version.
  • La communication entre OpenAI et le serveur MCP doit passer par un tunnel sécurisé derrière un périmètre réseau renforcé, sans exposition directe sur Internet.
  • La pseudonymisation des documents en temps réel constitue une couche essentielle pour limiter l’exposition de données sensibles, même en cas de compromission d’un serveur MCP.
  • La gouvernance humaine, avec validation et revalidation systématiques, est primordiale pour éviter la mise en production impulsive de serveurs mal auditée ou compromis.

Table des matières

Qu'est-ce que le Model Context Protocol et pourquoi il change l'intégration des LLM

Le Model Context Protocol fonctionne comme un port universel entre un modèle de langage et vos systèmes d'information : plutôt que de coder un connecteur sur mesure pour chaque outil, chaque base de données ou chaque API métier, vous exposez ces ressources via un langage commun que n'importe quel LLM compatible sait interpréter. C'est un standard ouvert, ce qui signifie que sa sécurité dépend entièrement de la façon dont chaque organisation l'implémente, pas d'une garantie intégrée au protocole lui-même, comme le rappelle la fiche technique de référence sur MCP.

Trois éléments composent l'architecture concrète :

  • Le serveur MCP, qui héberge un ou plusieurs outils et décrit leurs capacités.
  • Le manifest, un fichier qui liste les fonctions disponibles, leurs paramètres et leurs permissions.
  • Les tool descriptions, des textes en langage naturel que le modèle lit pour décider quand et comment appeler chaque outil.

Cette standardisation change la donne pour les DSI, car elle permet d'appliquer des politiques de contrôle d'accès uniformes sur l'ensemble des intégrations, au lieu de sécuriser chaque connecteur métier au cas par cas, comme le souligne DigitalGarden dans son analyse de l'intégration MCP. Concrètement, un même serveur MCP configuré pour votre CRM peut être réutilisé par plusieurs applications IA sans réécrire de code, ce qui réduit la dette technique accumulée par des années d'intégrations ponctuelles. Le revers de cette efficacité : un manifest mal audité ou un serveur non vérifié devient un point d'entrée unique vers plusieurs systèmes à la fois.

Comment MCP s'intègre concrètement avec OpenAI

Le fichier `.mcp.json` fait office de carte d'identité du serveur : il déclare les capacités disponibles et, dans une configuration bien tenue, leur version exacte.

OpenAI prend en charge plusieurs modes de connexion, chacun avec un profil de risque différent :

1. Connexion locale via stdio, où le serveur MCP tourne sur la machine de l'utilisateur, ce qui limite l'exposition réseau mais dépend entièrement de l'hygiène du poste local.

2. Connexion distante en SSE ou HTTP, où le serveur est hébergé à distance, une configuration qui exige un chiffrement en transit et une authentification robuste.

3. Tunnel sécurisé pour serveurs on-premise, recommandé quand l'infrastructure reste derrière votre pare-feu, une solution documentée dans les guides développeurs d'OpenAI sur le traitement des données.

Une fois la donnée transférée vers un serveur distant, elle obéit aux politiques de sécurité de ce tiers, pas aux vôtres. C'est précisément pour cette raison qu'OpenAI insiste sur des garde-fous côté client : le mode développeur permet de tester une intégration MCP en environnement restreint avant toute activation en production, avec des confirmations explicites demandées à l'utilisateur pour les actions jugées sensibles. Les organisations utilisant ChatGPT Enterprise ou Edu bénéficient en plus d'un contrôle d'accès par rôles (RBAC), qui détermine qui peut activer, configurer ou désactiver une application MCP, comme le précise le centre d'aide OpenAI sur le mode développeur et les applications MCP. Sans cette gouvernance, n'importe quel utilisateur disposant d'un accès pourrait connecter un serveur non vérifié à des données de production.

Principales vulnérabilités et vecteurs d'attaque spécifiques au MCP

La vulnérabilité la plus documentée s'appelle le tool description poisoning. Un serveur MCP malveillant ou compromis rédige sa description d'outil de façon à manipuler le raisonnement du modèle, une forme d'injection indirecte de prompt qui se cache dans du texte que l'utilisateur ne voit jamais. Le modèle lit cette description comme une instruction légitime et agit en conséquence, parfois en exfiltrant des données vers un canal contrôlé par l'attaquant.

Schéma d’attaque basé sur la description de l’outil compromis

Second vecteur : le rug pull, ou redéfinition silencieuse d'un outil après son approbation initiale. Un serveur peut se comporter de façon anodine pendant l'audit de sécurité, puis modifier ses tool descriptions ou son comportement une fois déployé, sans que rien n'alerte l'équipe qui l'a validé la première fois. C'est un des arguments les plus solides en faveur d'un contrôle de version strict des manifests plutôt que d'une validation ponctuelle.

Les analystes de sécurité documentent également des risques structurels :

  • Permissions OS excessives : de nombreux serveurs MCP locaux réclament par défaut un accès étendu au système de fichiers ou au shell, bien au-delà de ce que leur fonction requiert réellement.
  • Évasion de sandbox : un serveur mal isolé peut exploiter ces permissions pour sortir de son périmètre prévu et atteindre d'autres ressources de la machine hôte.
  • Attaques cross-server, aussi appelées tool shadowing, où un serveur compromis intercepte ou usurpe des appels destinés à un serveur de confiance dans un environnement où plusieurs serveurs MCP coexistent.
  • Absence de signature standard : la spécification MCP n'impose aucun mécanisme de vérification cryptographique des manifests, ce qui rend l'intégrité du code une responsabilité entièrement portée par l'entreprise qui déploie le serveur.

Les chercheurs en sécurité de Zeroday Cyber Academy ont documenté ces patterns de façon reproductible, et des synthèses techniques récentes montrent des preuves de concept exploitant des serveurs MCP non audités pour démontrer le tool poisoning et les rug pulls en conditions réelles, comme le détaille cette analyse des risques du Model Context Protocol. Dans une architecture multi-serveurs, cette gouvernance devient d'autant plus critique qu'un seul serveur mal contrôlé suffit à compromettre l'ensemble de la chaîne d'appels.

Bonnes pratiques et contrôles techniques pour sécuriser MCP en production

Il n'existe pas de contrôle unique qui règle tout. La sécurité MCP repose sur une superposition de mesures, chacune couvrant un angle mort différent des autres.

1. Constituez une allowlist versionnée des serveurs autorisés. Cataloguez chaque serveur avec son hash et son numéro de version, et refusez automatiquement tout serveur inconnu ou modifié. Cette pratique seule bloque la majorité des attaques de la chaîne d'approvisionnement logicielle.

2. Appliquez le moindre privilège au niveau du système d'exploitation. Un serveur MCP qui n'a besoin que de lire un dossier ne doit jamais recevoir d'accès en écriture ni de droits shell étendus.

3. Isolez chaque serveur dans un conteneur dédié, avec un système de fichiers en lecture seule quand c'est possible. Évitez d'exécuter un serveur tiers non audité sur une machine qui héberge par ailleurs des données sensibles.

4. Signez et vérifiez les manifests. En l'absence d'exigence de signature dans la spécification MCP elle-même, adoptez un schéma interne, par exemple un système HMAC ou une infrastructure à clé publique interne, pour garantir l'intégrité et la provenance de chaque manifest avant déploiement.

5. Journalisez chaque appel d'outil de façon structurée. Un pipeline OpenTelemetry alimentant votre SIEM permet de détecter en quasi temps réel un comportement anormal, comme un serveur qui commence soudain à demander des permissions qu'il n'utilisait pas auparavant.

6. Limitez la durée de vie des sessions et des tokens. Des jetons à portée restreinte, révocables immédiatement en cas de doute, réduisent la fenêtre d'exploitation d'un serveur compromis.

7. Faites passer les sorties critiques par une revue humaine. Une action irréversible, comme l'envoi d'un e-mail ou une écriture en base de données, doit toujours attendre une confirmation explicite plutôt qu'une exécution automatique.

Conseil de pro : Ne validez jamais un serveur MCP uniquement sur la base de sa documentation publique. Testez-le d'abord dans un environnement cloisonné avec des données factices, et observez exactement quelles permissions système il demande au démarrage, pas seulement celles qu'il déclare dans son manifest.

Ces contrôles se combinent : une allowlist sans sandboxing laisse un serveur légitime mais mal codé endommager votre infrastructure, tandis qu'un sandboxing sans logging vous empêche de comprendre ce qui s'est passé après un incident.

Déploiement réseau et architecture recommandés pour un serveur MCP

La règle la plus simple à retenir : n'exposez jamais un serveur MCP directement sur l'Internet public. Un serveur MCP accessible sans intermédiaire devient une cible immédiatement scannable, et la moindre faille de configuration se transforme en porte d'entrée vers vos systèmes internes.

L'architecture recommandée place le serveur MCP en local, derrière votre périmètre réseau, connecté à l'API OpenAI via un tunnel sécurisé plutôt que par une exposition directe. Ce pattern, désigné comme Secure MCP Tunnel dans la documentation développeur d'OpenAI, permet à un serveur hébergé sur site de communiquer avec le modèle sans jamais ouvrir de port entrant accessible depuis l'extérieur, une recommandation détaillée dans les guides OpenAI sur le traitement des données.

Trois principes structurent cette architecture :

  • Une segmentation réseau claire, qui isole les serveurs MCP dans une zone dédiée, séparée des bases de données de production et des postes utilisateurs.
  • Des règles de pare-feu et de NAT restrictives, qui n'autorisent que les flux strictement nécessaires entre le serveur MCP et l'API du modèle.
  • Une zone démilitarisée pour tout composant qui doit malgré tout rester joignable depuis l'extérieur, avec une surveillance renforcée sur ce segment précis.

Cette approche coûte un peu plus de temps de configuration qu'une exposition directe, mais elle transforme un incident potentiellement catastrophique en un problème contenu à un segment réseau isolé.

Workflow développeur et gouvernance administrative avant mise en production

Un serveur MCP ne devrait jamais passer directement du poste d'un développeur à l'environnement de production de toute l'entreprise. La gouvernance qui fonctionne suit un processus en trois temps, chacun avec ses propres responsables.

1. Test en mode développeur. Le développeur active le serveur dans un environnement restreint, où OpenAI demande des confirmations explicites pour toute action sensible et limite l'exposition aux données réelles. Cette phase sert à observer le comportement du serveur avant de lui faire confiance.

2. Revue de sécurité et publication contrôlée. Une fois le test concluant, un administrateur habilité valide le serveur pour une diffusion plus large. Le contrôle d'accès par rôles détermine précisément qui détient ce pouvoir de publication, une fonctionnalité disponible sur les offres ChatGPT Enterprise et Edu selon le centre d'aide OpenAI.

3. Revalidation systématique après mise à jour. Chaque modification d'un manifest ou d'une tool description déclenche automatiquement un nouveau cycle de revue, sans exception, même pour un changement qui paraît mineur. C'est la meilleure défense contre le rug pull décrit plus haut.

Séparer ces trois rôles, entre celui qui code, celui qui valide et celui qui surveille en continu, évite qu'une seule personne mal informée ou pressée par un délai ne mette en production un serveur mal audité.

Réduire l'exposition des données sensibles grâce à la pseudonymisation

Aucun des contrôles précédents n'empêche qu'un document contenant des données personnelles ou confidentielles transite, à un moment donné, par un outil connecté via MCP. Le principe de la pseudonymisation consiste à retirer ces éléments identifiants avant même que le document n'atteigne le serveur, plutôt que de compter uniquement sur la sécurité périmétrique.

Données sensibles anonymisées avant transmission

Cette couche de pseudonymisation consiste à traiter les documents en temps réel, sans stockage, et à générer un mapping exportable permettant de restaurer les données originales après traitement IA. Cette approche s'intègre aux flux existants via API REST ou MCP, ce qui la rend complémentaire des contrôles d'allowlisting, de sandboxing et de logging détaillés plus haut : même si un serveur MCP venait à être compromis, les données qu'il intercepterait resteraient pseudonymisées.

Ce que priorise Jacques face à la gouvernance MCP en entreprise

La tentation, dans beaucoup de DSI, consiste à traiter MCP comme un problème purement technique qu'on règle avec un bon pare-feu. C'est une erreur. Les vulnérabilités les plus sérieuses, tool poisoning, rug pulls, permissions excessives, naissent d'une mauvaise gouvernance humaine, pas d'une faille cryptographique. Je place l'allowlist, le sandboxing et le logging avant tout le reste, parce que ces trois contrôles couvrent l'essentiel des scénarios documentés à ce jour.

Mais la technique ne suffit pas sans un processus clair et des développeurs formés à reconnaître un manifest suspect. Gardez systématiquement un humain dans la boucle pour toute action à fort impact. C'est la friction qui coûte le moins cher comparée à un incident de sécurité.

- Jacques

Safe-doc, une couche de protection complémentaire à vos contrôles MCP

Les mesures de gouvernance MCP réduisent le risque qu'un serveur compromis agisse à votre place. Elles ne réduisent pas ce qu'il y a à perdre si un incident survient malgré tout. La plateforme pseudonymise les documents en temps réel, sans stockage, avant qu'ils n'atteignent un outil IA connecté, qu'il s'agisse de ChatGPT, de Claude ou d'un serveur MCP interne.

Safe-doc

Concrètement, un cabinet d'avocats qui traite de la documentation de due diligence, une équipe RH qui manipule des dossiers de collaborateurs ou un DPO qui doit démontrer sa conformité au RGPD peuvent continuer à utiliser leurs outils IA habituels sans exposer les données brutes. Le mapping exportable permet de restaurer les informations originales une fois le traitement terminé, et l'intégration s'effectue via API REST ou directement en MCP, sans changer vos habitudes de travail.

Pour une direction juridique ou une équipe sécurité qui souhaite évaluer concrètement cette couche de protection, la page pseudonymisation et conformité pour DPO détaille le fonctionnement technique et les garanties associées. Le meilleur point de départ reste une démonstration sur vos propres cas d'usage, pour vérifier comment Safe-doc s'articule avec l'architecture MCP déjà en place chez vous.

Sources

Pour approfondir la mise en œuvre, consultez le centre d'aide OpenAI sur le mode développeur MCP, le registre Cloud Security Alliance pour OpenAI, et la page sécurité et architecture zéro stockage de Safe-doc.

Recommandations