Imaginez que vous avez entraîné avec acharnement un modèle linguistique de grande taille (LLM) extrêmement intelligent, capable de gérer toutes sortes de tâches complexes. Mais si le « pipeline » menant à ce cerveau brillant – à savoir le protocole de contexte du modèle (MCP) – n'est pas suffisamment sécurisé, cela ne laisserait-il pas la porte ouverte aux pirates ? Ne vous inquiétez pas ! La liste de contrôle de sécurité MCP, créée par les experts de la sécurité blockchain de SlowMist (慢雾科技), est comme un bouclier protecteur pour l'IA. Elle fournit un guide de sécurité complet pour les outils d'IA basés sur le MCP, afin de protéger votre écosystème de plugins LLM contre diverses menaces potentielles.
Depuis sa publication fin 2024, le MCP est largement utilisé dans des applications d'IA populaires comme Claude Desktop et Cursor, et divers marchés de services MCP se développent rapidement. Cependant, comme toute technologie émergente, la popularité rapide du MCP a entraîné de nouveaux défis en matière de sécurité.
La liste de contrôle de sécurité MCP est née de ce contexte. Ce n'est pas un simple outil, mais un expert en sécurité expérimenté qui examine systématiquement les différents points de risque potentiels dans les interactions entre les trois principaux composants de l'architecture MCP : l'hôte (Host), le client (Client) et le serveur (Server). Qu'il s'agisse de transactions de cryptomonnaies sensibles ou de plugins personnalisés intégrés à un LLM, cette liste permet aux développeurs d'identifier et de prévenir proactivement les vulnérabilités de sécurité potentielles.
En adoptant les mesures de sécurité de cette liste, la stabilité et la contrôlabilité globales de votre système MCP seront considérablement améliorées, garantissant que la sécurité et le développement des applications d'IA progressent de pair.
✨ Points forts des fonctionnalités principales
Cette liste de contrôle de sécurité MCP est comme un gestionnaire de sécurité attentif qui examine en profondeur la sécurité du système MCP sous plusieurs angles. Les principaux points forts de ses fonctionnalités peuvent être résumés comme suit :
- Protection complète de la sécurité de l'API :
- Validation stricte des entrées : comme si vous examiniez minutieusement chaque visiteur qui entre chez vous, pour empêcher le code malveillant de pénétrer via l'entrée de l'API.
- Limitation du débit de l'API : définissez une limite de trafic pour l'API afin d'éviter d'être submergé par des requêtes malveillantes, ce qui pourrait entraîner un plantage du service (attaque par déni de service).
- Encodage des sorties : assurez-vous que les données de sortie de l'API sont correctement traitées pour prévenir les risques potentiels tels que les attaques par script intersite.
- Mécanisme robuste d'authentification et d'autorisation du serveur :
- Contrôle d'accès granulaire : comme le système de gestion des autorisations d'une entreprise, différents rôles ne peuvent accéder qu'aux ressources relevant de leurs responsabilités, en suivant le principe des privilèges minimums.
- Gestion sécurisée des identifiants : dites adieu aux clés codées en dur ! Apprenez à stocker et à gérer en toute sécurité les identifiants de service, en utilisant les services de gestion des clés.
- Rotation des clés API : changez régulièrement les clés API, comme vous changeriez régulièrement les serrures, pour réduire les risques liés à une fuite de clés.
- Authentification de l'identité du service : permet aux outils de vérifier l'identité du serveur pour s'assurer que le client se connecte à un service de confiance.
- Contrôle rigoureux de la persistance du backend :
- Gestion du cycle de vie : comme la gestion de l'installation et de la désinstallation de logiciels, gérez strictement le cycle de vie des plugins MCP et coordonnez-le avec le client.
- Nettoyage forcé à la fermeture : lorsque le client se ferme, assurez-vous que tous les processus d'arrière-plan MCP sont complètement nettoyés, sans laisser de traces.
- Mécanisme de contrôle d'intégrité : vérifiez régulièrement l'état des plugins MCP pour détecter rapidement les comportements de persistance anormaux.
- Surveillance et limitation des activités d'arrière-plan : surveillez et enregistrez toutes les activités d'arrière-plan du MCP, et limitez leurs opérations et leur durée.
- Sécurité fiable du déploiement et de l'exécution :
- Environnement isolé : il est fortement recommandé d'exécuter le serveur dans un environnement isolé (comme un conteneur, une machine virtuelle ou un bac à sable) pour empêcher l'évasion et le déplacement latéral de code malveillant.
- Sécurité des conteneurs : si vous utilisez des conteneurs, assurez-vous de les configurer en toute sécurité, en les exécutant avec un utilisateur non root, en utilisant une infrastructure immuable et une protection au moment de l'exécution.
- Limitation des ressources : définissez une limite d'utilisation des ressources pour les plugins MCP afin d'éviter les boucles infinies ou les appels excessifs dus à une défaillance du grand modèle.
- Garantie fiable de l'intégrité du code et des données :
- Mécanisme de vérification de l'intégrité : utilisez des signatures numériques, des sommes de contrôle, etc. pour vous assurer que le code n'a pas été modifié.
- Vérification à distance : prend en charge les mécanismes de vérification à distance de l'intégrité du code, augmentant ainsi la sécurité.
- Obfuscation et renforcement du code : augmente la difficulté de l'ingénierie inverse du code.
- Gestion minutieuse de la sécurité de la chaîne d'approvisionnement :
- Gestion des dépendances : gérez en toute sécurité les dépendances tierces.
- Vérification de l'intégrité et de l'origine des paquets : assurez-vous que les paquets référencés sont complets et fiables.
- Construction sécurisée : assurez-vous que le processus de construction du logiciel est sécurisé.
- Surveillance et journalisation complètes :
- Détection et alerte des anomalies : détectez et signalez rapidement les activités anormales.
- Journalisation détaillée : enregistrez toutes les activités de service et les événements de sécurité, et gérez-les de manière centralisée pour garantir l'intégrité des journaux et fournir des capacités d'audit.
- Isolement strict de l'environnement d'appel :
- Isolement des instances MCP : assurez-vous que les opérations entre plusieurs instances de serveur MCP sont mutuellement isolées.
- Contrôle d'accès aux ressources : définissez clairement les limites d'accès aux ressources pour chaque serveur MCP.
- Séparation des privilèges des outils : définissez différents ensembles de privilèges pour les outils de différents domaines.
- Compatibilité et sécurité multiplateformes :
- Isolement des ressources système : mettez en œuvre des stratégies d'isolement des ressources appropriées en fonction des caractéristiques des différents systèmes d'exploitation.
- Tests de compatibilité multiplateformes : testez si le comportement de sécurité du serveur MCP est cohérent sur différents systèmes d'exploitation et clients.
- Évaluation des risques spécifiques à la plateforme : évaluez les risques de sécurité spécifiques à chaque plateforme et prenez des mesures d'atténuation.
- Importance de la sécurité et de la confidentialité des données :
- Minimisation des données : ne collectez et ne traitez que les données nécessaires.
- Chiffrement et isolement des données : chiffrez le stockage et le transfert des données sensibles, et assurez-vous que les données des différents utilisateurs sont mutuellement isolées.
- Identification et traitement des données sensibles : identifiez automatiquement et traitez de manière spéciale les données sensibles.
- Contrôle précis des ressources et de la sécurité des outils : des exigences de sécurité détaillées sont définies pour l'accès aux ressources, la taille, les paramètres de modèle, ainsi que les pratiques de codage des outils, l'environnement d'exécution, la validation des entrées et sorties, le contrôle des autorisations et les contraintes de comportement.
- Sécurité de l'interaction utilisateur :
- Interface utilisateur claire : l'interface utilisateur doit clairement afficher la portée et les impacts potentiels des opérations de l'IA, et fournir des indicateurs de sécurité intuitifs.
- Confirmation des opérations sensibles : les opérations à haut risque doivent nécessiter une confirmation explicite de l'utilisateur.
- Demandes de permission transparentes : les demandes de permission doivent clairement indiquer leur objectif et leur portée, afin d'éviter une autorisation excessive.
- Visualisation des opérations et transparence de l'information : les appels d'outils et l'accès aux données doivent être visibles et auditable, les utilisateurs pouvant choisir d'afficher ou non les étiquettes cachées, pour garantir la cohérence du contexte.
- Contrôle et surveillance de l'IA : enregistrez les opérations clés de l'IA, détectez les modèles anormaux et limitez la fréquence et le nombre d'appels d'outils.
- Sécurité du stockage local : stockez les identifiants en toute sécurité et isolez les données utilisateur sensibles.
- Sécurité des applications et authentification et autorisation des clients : vérifiez l'intégrité des applications, forcez l'authentification et mettez en œuvre en toute sécurité des protocoles tels que OAuth.
- Gestion des outils et des serveurs MCP : vérifiez l'authenticité et l'intégrité des outils, mettez à jour en toute sécurité, empêchez les conflits de noms et les comportements malveillants, maintenez un répertoire de serveurs de confiance et mettez en œuvre le contrôle des versions.
- Mécanisme de sécurité robuste des invites :
- Défense contre l'injection d'invites : mettez en œuvre des mesures de défense multicouches pour prévenir les attaques par injection d'invites.
- Détection des instructions malveillantes : détectez et bloquez les instructions utilisateur potentiellement malveillantes, y compris les invites malveillantes préchargées et les instructions nuisibles intégrées aux outils fournis par les serveurs MCP tiers.
- Protection des invites système et filtrage des données sensibles : empêchez la falsification des invites système et filtrez les données personnelles sensibles des invites et du contexte.
- Isolement du contexte et modèles d'invites : assurez-vous que les contextes de différentes sources sont mutuellement isolés et utilisez des modèles d'invites sécurisés.
- Vérification de la description des outils et vérification de la cohérence des invites.
- Gestion du contexte historique : définissez clairement le mécanisme de nettoyage du contexte historique pour éviter l'accumulation de données et les fuites d'informations.
🛠️ Méthode de configuration et processus de configuration : intégrer la sécurité à votre application MCP
Plutôt que de « configurer » cette liste de contrôle elle-même, il s'agit plutôt pour les développeurs de se référer aux différents points de sécurité de cette liste pour configurer et renforcer leur application MCP. C'est comme recevoir un compte rendu d'examen médical détaillé, vous devez suivre les indicateurs et les recommandations du rapport pour prendre soin de votre « corps ».
Le « processus de configuration » concret peut être compris comme suit :
- Lecture attentive de la liste : les développeurs doivent lire attentivement et comprendre chaque point de sécurité énuméré et son importance (recommandé, fortement recommandé, obligatoire).
- Évaluation des risques : en fonction du scénario d'application MCP et des opérations sensibles impliquées (par exemple, s'il s'agit de transactions de cryptomonnaie, s'il est nécessaire d'accéder aux données privées des utilisateurs, etc.), évaluez les points de sécurité qui doivent être examinés et mis en œuvre en priorité.
- Élaboration d'une stratégie de sécurité : en fonction des résultats de l'évaluation des risques, établissez une stratégie de sécurité et un plan de mise en œuvre détaillés, en précisant les mesures de sécurité à mettre en œuvre en priorité et celles qui peuvent être mises en œuvre de manière sélective en fonction de la situation.
- Mise en œuvre des mesures de sécurité : en fonction de la stratégie de sécurité définie, mettez en œuvre progressivement les mesures de sécurité pertinentes de la liste au cours du développement, du déploiement et de l'exécution de MCP Server, Client et Host, telles que la validation des entrées, la mise en œuvre du contrôle d'accès, le chiffrement des données sensibles et le filtrage des invites malveillantes.
- Surveillance et mise à jour continues : la sécurité est un processus continu. Les développeurs doivent mettre en place un mécanisme de surveillance complet, examiner et mettre à jour régulièrement la stratégie de sécurité et réagir rapidement aux nouvelles menaces de sécurité. Ils doivent également suivre les mises à jour de la liste de contrôle de sécurité MCP afin d'adopter rapidement les dernières recommandations en matière de sécurité.
🔗 Adresse de l'outil
Vous pouvez trouver cette précieuse liste de contrôle de sécurité MCP sur GitHub :
https://github.com/slowmist/MCP-Security-Checklist