Connect with us

6 meilleures pratiques pour construire un serveur MCP sécurisé

Cybersécurité

6 meilleures pratiques pour construire un serveur MCP sécurisé

mm

Depuis que Anthropic a publié le Model Context Protocol à la fin de 2024, l’adoption a connu un essor, de nombreuses entreprises lançant leurs propres serveurs MCP pour aider les agents IA à accéder à leurs données. 

Même si cela est bénéfique pour élargir les capacités de l’IA, cela expose également ces entreprises à des vulnérabilités de sécurité importantes.

Sans les précautions appropriées, les serveurs MCP pourraient donner un accès généralisé à des données sensibles dans les e-mails, les CRM, les outils de stockage de fichiers et d’autres applications. Et même lorsque des mesures de sécurité agressives sont prises, les acteurs malveillants peuvent utiliser des tactiques telles que les attaques d’injection de invites pour obtenir des informations d’authentification. 

Nous commençons déjà à voir des incidents de sécurité se produire. GitHub, par exemple, a récemment connu une vulnérabilité MCP qui a exposé des référentiels privés.

Nous avons appris par expérience directe ce qu’il faut pour construire un serveur MCP qui peut résister à toutes les menaces de sécurité.

À cette fin, voici mes conseils pour construire et gérer des serveurs MCP.

Assurer la sécurité avec des blocs rigides et une gestion des autorisations

Le principe de sécurité le plus critique pour les MCP est que les blocs rigides annuleront toujours les invites et les autres contrôles flexibles donnés aux agents. Même si les agents IA ont la flexibilité de décider quand appeler les outils et quels entrées envoyer, les implémentations d’outils – ou une couche codée en dur devant eux – empêchent finalement les problèmes d’autorisation, tant que l’identité de l’utilisateur est correctement authentifiée.

Pour assurer la sécurité, configurez les extensions avec une gestion des autorisations stricte dès le départ.

Cela commence par gérer les autorisations accordées aux clés API. Les outils offrent un avantage ici en enveloppant le code statique et en créant une interface contrôlée qui peut appliquer les politiques de sécurité, indépendamment du comportement de l’agent.

Traiter les clés API comme des mots de passe

Plutôt que de coder en dur les clés, déplacez toutes les informations d’identification en dehors du code et des fichiers de configuration dans des variables d’environnement ou des gestionnaires de secrets dédiés, tels que HashiCorp Vault ou AWS Secrets Manager. 

Les informations d’identification temporaires offrent une couche de sécurité supplémentaire pour les données extrêmement sensibles et les cas d’utilisation où les connexions permanentes ne sont pas nécessaires. Dans ce cas, des outils comme AWS STS peuvent générer des jetons à durée de vie courte qui expirent rapidement, minimisant la fenêtre de mauvaise utilisation potentielle. Cependant, pour la plupart des implémentations, une authentification OAuth correcte avec actualisation de jeton ou une authentification de base bien sécurisée peut traiter efficacement ces préoccupations.

La clé est de mettre en œuvre un contrôle d’accès basé sur les rôles (RBAC) par outil avec des systèmes de gestion des autorisations intégrés. Accordez à chaque intégration MCP son propre rôle à grain fin, limité strictement aux autorisations requises. Une politique de Vault qui n’autorise que l’accès en lecture à kv/data/GitHub est infiniment plus sûre qu’un jeton racine. Les systèmes de gestion des identités et des accès (IAM) de votre fournisseur de cloud peuvent appliquer automatiquement des modèles d’accès à privilèges minimum.

Protéger les données sensibles avec des logiciels de prévention des pertes de données et de détection de PII

Les outils MCP peuvent accéder à de vastes quantités de données sensibles dans toute l’entreprise. Sans les contrôles appropriés, ils pourraient involontairement exposer les informations personnelles des clients, les dossiers financiers ou les informations de propriété sur votre produit.

Pour répondre à cela, déployez des logiciels de prévention des pertes de données (DLP) qui peuvent inspecter le trafic MCP en temps réel. Configurez les règles DLP pour détecter et bloquer la transmission de numéros de carte de crédit, de numéros de sécurité sociale, de clés API et d’autres modèles sensibles avant qu’ils ne quittent votre environnement.

Vous devriez également utiliser des outils qui peuvent identifier et masquer automatiquement les informations personnelles dans les invites, les réponses des outils et les journaux d’audit. Et envisagez d’utiliser des solutions qui peuvent détecter les PII dans divers formats, y compris les champs de base de données structurés, le texte non structuré et le contenu d’image via des techniques avancées telles que l’OCR ou le NLP . 

Sécuriser et gérer vos dépendances

La croissance rapide de l’écosystème MCP a créé un Far West de binaires potentiellement non fiables. Les serveurs publiés par la communauté peuvent être compromis, mal entretenus ou simplement abandonnés. Lorsque vous installez des dépendances sans vérification, vous prenez le risque d’exécuter potentiellement du code malveillant.

Mettez en œuvre une gestion des dépendances stricte avec vérification d’intégrité. Utilisez des signatures numériques et des sommes de contrôle pour vous assurer que le code n’a pas été modifié. Et suivez les meilleures pratiques de sécurité en réutilisant le code de vérification d’autorisation éprouvé, en écrivant des tests complets et en utilisant des outils automatisés, tels que les tests de sécurité d’application statiques (SAST), les tests de sécurité d’application dynamiques (DAST) et l’analyse de composition de logiciels (SCA), pour identifier les vulnérabilités avant qu’elles ne puissent être exploitées.

Tester chaque outil de manière rigoureuse

Les attaques d’injection directes insèrent des commandes malveillantes dans vos invites d’appel d’outils, mais les attaques indirectes sont plus subtiles et potentiellement plus dangereuses. Les attaquants peuvent, par exemple, intégrer des instructions malveillantes dans les descriptions d’outils ou les métadonnées qui sont incluses dans les invites LLM.

Tous les outils doivent passer par un processus d’approbation rigoureux avant leur déploiement, qui combine des tests automatisés avec une revue par des professionnels de la sécurité. Mettez en œuvre des mesures de défense en couches, notamment une vérification manuelle pour les opérations critiques, une séparation claire entre les invites système et les entrées utilisateur, et des systèmes de détection automatisés qui peuvent identifier les instructions malveillantes potentielles dans les invites utilisateur et les métadonnées d’outils.

Surveiller les incidents de sécurité de manière proactive

Au-delà des contrôles fondamentaux, les équipes doivent utiliser un outil de sécurité complet, notamment la surveillance des appels d’outils, des modèles d’activité des utilisateurs et des modèles d’accès aux URL sortantes, pour détecter les incidents de sécurité potentiels avant qu’ils ne s’aggravent.

En déployant des systèmes de détection automatisés, vous pouvez identifier des modèles inhabituels dans l’utilisation des outils, des tentatives d’accès aux données inattendues ou des trafics réseau anormaux qui pourraient indiquer un système compromis. De plus, maintenir des journaux cohérents pour surveiller le raisonnement et les sorties d’un modèle de langage est crucial pour suivre toute action involontaire.

Tirer le meilleur parti des MCP

Le pouvoir des MCP réside dans leur capacité à transformer les assistants IA en agents entièrement programmables. Mais ce même pouvoir exige des contrôles de sécurité également sophistiqués.

Les solutions ne sont pas exotiques ; ce sont des extensions de pratiques de sécurité éprouvées appliquées à ce nouveau modèle architectural. Les logiciels de prévention des pertes de données, les réducteurs de PII et les systèmes de gestion des autorisations intégrés que vous utilisez probablement déjà peuvent être adaptés pour sécuriser les serveurs MCP. 

Les organisations qui traitent ces vulnérabilités maintenant débloqueront en toute sécurité le plein potentiel des MCP.

Gil Feig est le co-fondateur et le directeur technique de Merge, la principale plate-forme d'API unifiée. Auparavant, Gil était le responsable de l'ingénierie chez Untapped et a travaillé en tant qu'ingénieur logiciel chez Wealthfront et LinkedIn. Diplômé de l'Université Columbia, il vit et travaille à New York.