Alors que les outils d’intelligence artificielle (IA) se généralisent rapidement, il devient essentiel de garantir leur sécurité. Cette checklist de sécurité vise à aider les développeurs à identifier et à atténuer les risques potentiels liés au Protocole de Contexte de Modèle (MCP), qui est devenu une passerelle essentielle reliant les grands modèles de langage (LLM) aux outils externes et aux sources de données.
Contexte
Cette checklist de sécurité est rédigée et maintenue par @SlowMist_Team, dans le but d’améliorer la sécurité des écosystèmes de la blockchain et de l’intelligence artificielle. Nous remercions FENZ.AI pour sa précieuse contribution à cette liste.
Aperçu
Depuis sa publication fin 2024, le MCP a été largement utilisé dans les principales applications d’IA telles que Claude Desktop, Cursor, etc. Cependant, la popularité croissante du MCP a également créé de nouveaux défis en matière de sécurité. L’architecture MCP actuelle comprend trois parties : l’hôte (l’environnement d’application d’IA exécuté localement), le client (le composant responsable de la communication avec le serveur et des appels d’outils) et le serveur (le serveur correspondant au plugin MCP). Les utilisateurs interagissent avec l’IA via l’hôte, le client analyse les requêtes des utilisateurs et les transmet au serveur MCP, en exécutant des appels d’outils ou des accès aux ressources. Dans les scénarios où plusieurs instances et plusieurs composants fonctionnent en collaboration, cette architecture expose une série de risques de sécurité, en particulier dans les scénarios sensibles impliquant des transactions de crypto-monnaies ou l’adaptation de plugins personnalisés LLM, où les risques sont plus importants et nécessitent des mesures de sécurité appropriées.
Par conséquent, il est essentiel d’établir et de suivre une checklist de sécurité MCP complète. Cette checklist couvre les points clés de sécurité de l’interface d’interaction utilisateur, des composants clients, des plugins de service, des mécanismes de collaboration multi-MCP et des domaines spécifiques (tels que les scénarios de crypto-monnaies), dans le but d’aider les développeurs à identifier systématiquement les risques potentiels et à les prévenir en temps opportun. En mettant en œuvre ces mesures de sécurité, la stabilité et la contrôlabilité globales du système MCP peuvent être efficacement améliorées, garantissant que la sécurité des applications d’IA est synchronisée avec leur développement rapide.
Comment utiliser
Cette checklist est basée sur les points de risque potentiels rencontrés lors de l’audit des projets MCP et vise à aider les développeurs à assurer la sécurité des implémentations MCP. Nous utilisons 3 niveaux de priorité pour identifier l’importance des éléments :
- 🟢️ Indique un élément recommandé, mais qui peut être omis dans des circonstances spécifiques.
- 🔶 Indique un élément fortement recommandé, mais qui peut être omis dans des cas particuliers, l’omission pouvant avoir un impact négatif sur la sécurité.
- 🟥️ Indique un élément qui ne peut être omis en aucun cas, la suppression de ces éléments pouvant entraîner une défaillance du système ou des vulnérabilités de sécurité.
Sécurité du serveur MCP (plugin MCP)
Le service MCP est un service externe qui fournit des outils, des ressources et des fonctions à appeler par l’IA. Il contient généralement des ressources, des outils et des invites. Voici les éléments à prendre en compte pour assurer la sécurité du serveur MCP :
Sécurité de l’API
- Validation des entrées : 🟥️ Validez rigoureusement toutes les entrées de l’API, en empêchant les attaques par injection et les paramètres illégaux. Cela comprend la validation du type de données, de la longueur et du format, ainsi que le nettoyage et l’échappement des entrées.
- Limitation du débit de l’API : 🔶 Mettez en œuvre des limitations du débit des appels d’API pour empêcher les abus et les attaques. Cela peut empêcher les utilisateurs malveillants de surcharger le serveur en envoyant un grand nombre de requêtes.
- Encodage des sorties : 🔶 Encodez correctement les sorties de l’API pour empêcher les attaques de type Cross-Site Scripting (XSS). Cela inclut l’encodage des sorties HTML, JavaScript et URL, entre autres.
Authentification et autorisation du serveur
- Contrôle d’accès : 🟥️ Mettez en œuvre un contrôle d’accès basé sur les rôles, en limitant l’accès aux ressources et en appliquant le principe du moindre privilège. Seuls les utilisateurs autorisés doivent pouvoir accéder à des ressources spécifiques.
- Gestion des informations d’identification : 🟥️ Gérez et stockez en toute sécurité les informations d’identification du service, en évitant le codage en dur et en utilisant des services de gestion des clés. Cela inclut l’utilisation du chiffrement pour stocker les informations d’identification et la rotation régulière des informations d’identification.
- Authentification des services externes : 🟥️ Authentifiez-vous auprès des services tiers à l’aide de méthodes sécurisées. Cela inclut l’utilisation de protocoles sécurisés tels qu’OAuth 2.0 ou SAML.
- Moindre privilège : 🔶 Les processus de service s’exécutent avec les privilèges minimum nécessaires, réduisant ainsi la surface d’attaque potentielle et les risques d’escalade de privilèges. Cela signifie que le service ne doit avoir que les autorisations nécessaires pour exécuter sa fonction.
- Rotation des clés API : 🔶 Faites pivoter automatiquement et régulièrement les clés API et les informations d’identification du service, en limitant la validité des clés. Cela peut réduire le risque de fuite de clés.
- Authentification du service : 🔶 Fournissez un mécanisme permettant aux outils de valider l’identité du service, facilitant ainsi la validation et l’utilisation sécurisée par le client. Cela peut aider le client à vérifier qu’il communique avec un service de confiance.
Contrôle de la persistance en arrière-plan
- Gestion du cycle de vie : 🟥️ Mettez en œuvre une gestion stricte du cycle de vie du plugin MCP, synchronisée avec le client. Le plugin doit être correctement démarré et arrêté lorsqu’il n’est plus nécessaire.
- Nettoyage à la fermeture : 🟥️ Forcez le nettoyage de tous les processus d’arrière-plan MCP lorsque le client est fermé. Cela peut empêcher les plugins malveillants de continuer à s’exécuter une fois le client fermé.
- Mécanisme de contrôle de l’état : 🔶 Vérifiez régulièrement l’état du plugin MCP afin d’identifier toute persistance anormale. Cela peut aider à identifier les plugins qui ne fonctionnent pas correctement.
- Surveillance de l’activité en arrière-plan : 🔶 Surveillez et enregistrez toute l’activité en arrière-plan du MCP. Cela peut aider à identifier une activité malveillante.
- Limitation des activités : 🔶 Limitez le type et la durée des opérations que le plugin MCP peut effectuer en arrière-plan. Cela peut réduire les dommages causés par un plugin malveillant.
Sécurité du déploiement et de l’exécution
- Environnement isolé : 🟥️ Le service s’exécute dans un environnement isolé (conteneur, VM, bac à sable) pour empêcher l’évasion et les attaques de mouvement est-ouest. Cela peut empêcher les services malveillants d’affecter d’autres services ou le système.
- Sécurité des conteneurs : 🟥️ Utilisez une configuration de sécurité des conteneurs renforcée et exécutez-la avec un utilisateur non root, mettez en œuvre une infrastructure immuable et une protection d’exécution. Cela peut améliorer la sécurité des conteneurs.
- Démarrage sécurisé : 🔶 Vérifiez l’intégrité du processus de démarrage du service, mettez en œuvre une chaîne de démarrage sécurisée et un contrôle d’intégrité. Cela peut empêcher un service malveillant d’être injecté au démarrage.
- Sécurité des variables d’environnement : 🔶 Les variables d’environnement sensibles sont protégées et ne sont pas divulguées dans les journaux. Cela peut empêcher les utilisateurs malveillants d’accéder à des informations sensibles.
- Limitation des ressources : 🔶 Mettez en œuvre des limitations d’utilisation des ressources pour empêcher les appels répétitifs massifs en boucle en cas d’erreur du grand modèle. Cela peut empêcher un service malveillant de consommer les ressources du système.
Intégrité du code et des données
- Mécanisme de vérification de l’intégrité : 🟥️ Utilisez des mécanismes tels que les signatures numériques et la vérification du hachage pour vous assurer que le code n’a pas été falsifié. Cela peut empêcher les utilisateurs malveillants de modifier le code.
- Vérification à distance : 🔶 Prend en charge un mécanisme de vérification à distance de l’intégrité du code. Cela permet aux utilisateurs distants de vérifier que le code n’a pas été falsifié.
- Obfuscation et renforcement du code : 🟢️ Appliquez des techniques d’obfuscation et de renforcement du code pour augmenter la difficulté de la rétro-ingénierie. Cela peut rendre plus difficile la compréhension et la modification du code par les utilisateurs malveillants.
Sécurité de la chaîne d’approvisionnement
- Gestion des dépendances : 🟥️ Gérez en toute sécurité les dépendances tierces. Cela comprend le suivi des dépendances, la vérification de leur mise à jour et la recherche de vulnérabilités.
- Intégrité des paquets : 🟥️ Vérifiez l’intégrité et l’authenticité des paquets. Cela peut empêcher les utilisateurs malveillants d’injecter des paquets malveillants.
- Vérification de l’origine : 🔶 Vérifiez l’origine de tout le code et de toutes les dépendances. Cela peut aider à s’assurer que le code provient d’une source de confiance.
- Sécurité de la construction : 🔶 Assurez-vous que le processus de construction est sécurisé. Cela inclut l’utilisation d’outils de construction sécurisés et la garantie que l’environnement de construction est sécurisé.
Surveillance et enregistrement des journaux
- Détection des anomalies : 🟥️ Détectez et signalez les schémas d’activité anormaux. Cela peut aider à identifier une activité malveillante.
- Journalisation détaillée : 🟥️ Enregistrez toutes les activités de service et les événements de sécurité. Cela peut aider à enquêter sur les incidents de sécurité.
- Alertes en cas d’événements de sécurité : 🟥️ Configurez des alertes en temps réel pour les événements de sécurité critiques. Cela peut aider à répondre rapidement aux incidents de sécurité.
- Gestion centralisée des journaux : 🔶 Collectez et analysez les journaux de manière centralisée. Cela peut fournir une vue plus complète des incidents de sécurité.
- Intégrité des journaux : 🔶 Assurez l’intégrité des journaux afin d’empêcher toute falsification. Cela peut empêcher les utilisateurs malveillants de supprimer ou de modifier les journaux.
- Capacité d’audit : 🔶 Prend en charge un audit détaillé et une enquête sur les incidents. Cela peut aider à déterminer la cause des incidents de sécurité.
Isolation de l’environnement d’appel
- Isolation entre les MCP : 🟥️ Assurez l’isolation opérationnelle entre plusieurs services MCP. Cela peut empêcher un service MCP malveillant d’affecter d’autres services MCP.
- Contrôle d’accès aux ressources : 🟥️ Attribuez des limites d’autorisation d’accès aux ressources claires à chaque service MCP. Cela peut limiter les ressources auxquelles un service MCP malveillant peut accéder.
- Séparation des autorisations des outils : 🔶 Les outils de différents domaines utilisent différents ensembles d’autorisations. Cela peut réduire les dommages causés par les outils malveillants.
Compatibilité et sécurité de la plateforme
- Isolation des ressources du système : 🟥️ Mettez en œuvre des stratégies d’isolation des ressources appropriées en fonction des caractéristiques des différents systèmes d’exploitation. Cela peut empêcher les services malveillants d’affecter d’autres services ou le système.
- Tests de compatibilité multiplateforme : 🔶 Testez la cohérence du comportement de sécurité du service MCP sur différents systèmes d’exploitation et clients. Cela peut garantir que le service est sécurisé sur toutes les plateformes.
- Évaluation des risques spécifiques à la plateforme : 🔶 Évaluez les risques de sécurité uniques et les mesures d’atténuation spécifiques à chaque plateforme. Cela peut aider à identifier et à atténuer les risques de sécurité spécifiques à la plateforme.
- Gestion des différences des clients : 🔶 Assurez-vous que les contrôles de sécurité peuvent s’adapter aux différences des différentes implémentations des clients. Cela peut garantir que le service est sécurisé avec tous les clients.
Sécurité et confidentialité des données
- Minimisation des données : 🟥️ Ne collectez et ne traitez que les données nécessaires. Cela peut réduire le risque de fuite de données.
- Chiffrement des données : 🟥️ Les données sensibles sont chiffrées pendant le stockage et la transmission. Cela peut empêcher les utilisateurs malveillants d’accéder à des informations sensibles.
- Isolation des données : 🟥️ Les données des différents utilisateurs sont efficacement isolées. Cela peut empêcher les utilisateurs malveillants d’accéder aux données d’autres utilisateurs.
- Contrôle d’accès aux données : 🟥️ Mettez en œuvre un contrôle d’accès aux données strict. Cela peut limiter l’accès aux données.
- Identification des données sensibles : 🟥️ Identifiez et traitez automatiquement les données sensibles de manière spéciale. Cela peut aider à prévenir la fuite de données sensibles.
Sécurité des ressources
- Contrôle d’accès aux ressources : 🟥️ Mettez en œuvre un contrôle d’accès aux ressources granulaire. Cela peut limiter l’accès à des ressources spécifiques.
- Limitation des ressources : 🔶 Limitez la taille et la quantité des ressources individuelles. Cela peut empêcher les utilisateurs malveillants de consommer les ressources du système.
- Sécurité des modèles de ressources : 🔶 Assurez-vous que les paramètres des modèles de ressources sont validés et nettoyés. Cela peut empêcher les utilisateurs malveillants d’injecter du code malveillant.
- Marquage des ressources sensibles : 🔶 Marquez et traitez de manière spéciale les ressources sensibles. Cela peut aider à prévenir la fuite de ressources sensibles.
Sécurité de l’implémentation des outils
- Pratiques de codage sécurisées : 🟥️ Suivez les normes de codage sécurisées et les meilleures pratiques. Cela peut réduire le nombre de vulnérabilités dans le code.
- Isolation des outils : 🟥️ L’exécution des outils se fait dans un environnement contrôlé pour empêcher les effets au niveau du système. Cela peut empêcher les outils malveillants d’affecter d’autres services ou le système.
- Validation des entrées : 🟥️ Validez rigoureusement toutes les entrées provenant du client. Cela peut empêcher les utilisateurs malveillants d’injecter du code malveillant.
- Contrôle des autorisations des outils : 🟥️ Chaque outil ne dispose que des autorisations minimales nécessaires pour effectuer sa tâche. Cela peut réduire les dommages causés par les outils malveillants.
- Validation des données : 🟥️ Validez les données traitées par les outils pour empêcher l’injection et la falsification. Cela peut empêcher les utilisateurs malveillants d’injecter des données malveillantes.
- Contraintes de comportement des outils : 🟥️ Limitez la portée et le type des opérations que les outils peuvent effectuer. Cela peut réduire les dommages causés par les outils malveillants.
- Sécurité des informations renvoyées par les interfaces tierces : 🟥️ Vérifiez si les informations renvoyées par les interfaces correspondent aux attentes, et n’insérez pas directement les informations renvoyées dans le contexte. Cela peut empêcher les outils malveillants d’exploiter les interfaces tierces.
- Gestion des erreurs : 🔶 Gérez les erreurs en toute sécurité, sans divulguer d’informations sensibles. Cela peut empêcher les utilisateurs malveillants d’exploiter les informations d’erreur.
- Isolation de l’espace de noms : 🔶 Mettez en œuvre une isolation stricte de l’espace de noms pour les différents outils. Cela peut empêcher les conflits entre les outils.
Sécurité du client MCP / Sécurité de l’hôte MCP
L’hôte est l’environnement dans lequel s’exécutent les applications d’IA et le client MCP, et c’est le point d’entrée pour l’interaction de l’utilisateur final avec le système d’IA. Le client est le composant interne de l’application d’IA, responsable de la communication avec le service MCP, du traitement du contexte, des appels d’outils et de l’affichage des résultats. Voici les éléments à prendre en compte pour protéger le client et l’hôte MCP :
Sécurité de l’interaction utilisateur
- Sécurité de l’interface utilisateur : 🟥️ L’interface utilisateur affiche clairement l’étendue des autorisations et l’impact potentiel des opérations de l’IA, et fournit des indicateurs de sécurité intuitifs. Cela peut aider les utilisateurs à comprendre les autorisations qu’ils accordent à l’IA.
- Confirmation des opérations sensibles : 🟥️ Les opérations à haut risque (telles que la suppression de fichiers, les transferts de fonds) nécessitent une confirmation explicite de l’utilisateur. Cela peut empêcher les utilisateurs d’effectuer accidentellement des opérations à haut risque.
- Transparence des demandes d’autorisations : 🟥️ Les demandes d’autorisations indiquent clairement l’objectif et la portée, aidant ainsi les utilisateurs à prendre des décisions éclairées et à éviter les autorisations excessives. Cela peut aider les utilisateurs à comprendre les autorisations qu’ils accordent à l’IA.
- Visualisation des opérations : 🔶 Les appels d’outils et l’accès aux données sont visibles et vérifiables pour l’utilisateur, fournissant des journaux d’opérations détaillés. Cela peut aider les utilisateurs à comprendre les opérations que l’IA exécute.
- Transparence des informations : 🔶 L’outil doit permettre à l’utilisateur d’afficher ou non les balises cachées par défaut, afin de garantir que le contexte que l’utilisateur voit est complet et cohérent avec le contexte réellement généré et appelé, et d’empêcher la présence d’une logique malveillante dans les balises cachées.
- Retour d’état : 🔶 L’utilisateur peut clairement comprendre l’opération MCP actuellement en cours d’exécution.
Contrôle et surveillance de l’IA
- Enregistrement des opérations : 🟥️ Enregistrez toutes les opérations importantes de l’IA et leurs résultats. Cela peut aider à enquêter sur les incidents de sécurité.
- Détection des anomalies : 🔶 Détectez les schémas d’appel d’outils ou les séquences de requêtes anormaux. Cela peut aider à identifier une activité malveillante.
- Limitation des appels d’outils : 🔶 Mettez en œuvre des limitations de la fréquence et du nombre d’appels d’outils. Cela peut empêcher les utilisateurs malveillants d’abuser des outils.
Sécurité du stockage local
- Stockage sécurisé des informations d’identification : 🟥️ Utilisez un trousseau de clés système ou un stockage chiffré dédié pour protéger les informations d’identification d’authentification importantes, en empêchant l’accès non autorisé. Cela peut empêcher les utilisateurs malveillants d’accéder aux informations d’identification.
- Isolation des données sensibles : 🔶 Mettez en œuvre un mécanisme d’isolation des données pour stocker et traiter les données utilisateur sensibles séparément des données ordinaires. Cela peut empêcher les utilisateurs malveillants d’accéder aux données sensibles.
Sécurité des applications
- Intégrité de l’application : 🟥️ Vérifiez l’intégrité de l’application et des plugins MCP, en empêchant toute falsification. Cela peut empêcher les utilisateurs malveillants de modifier l’application.
- Vérification des mises à jour : 🔶 Les mises à jour de l’application hôte sont vérifiées par signature numérique. Cela peut garantir que les mises à jour proviennent d’une source de confiance.
- Bac à sable de l’application : 🟢️ Dans la mesure du possible, exécutez l’application dans un environnement de bac à sable, en limitant l’accès au système. Cela peut réduire les dommages causés par les applications malveillantes.
Authentification et autorisation du client
- Authentification obligatoire : 🟥️ Appliquez l’authentification avant de communiquer avec tout service MCP important, en empêchant l’accès anonyme. Cela peut empêcher les utilisateurs non autorisés d’accéder aux services.
- Implémentation d’OAuth : 🔶 Implémentez correctement le flux OAuth 2.1 ou version ultérieure, en suivant les meilleures pratiques et les normes de sécurité. Cela peut garantir que l’authentification est sécurisée.
- Paramètre d’état : 🔶 Pour certains clients Web, mettez en œuvre un paramètre d’état pour empêcher les attaques CSRF, en utilisant une valeur aléatoire unique pour chaque requête. Cela peut empêcher les attaques de type Cross-Site Request Forgery (CSRF).
Gestion des outils et des serveurs MCP
- Vérification des outils MCP : 🟥️ Vérifiez l’authenticité et l’intégrité des outils enregistrés. Cela peut empêcher l’enregistrement d’outils malveillants.
- Mises à jour de sécurité : 🟥️ Le client MCP vérifie et applique régulièrement les mises à jour de sécurité, en vérifiant si les outils mis à jour contiennent des descriptions malveillantes. Cela peut garantir que les outils sont à jour et ne contiennent pas de code malveillant.
- Validation du nom de la fonction : 🟥️ Vérifiez les conflits de noms et les recouvrements malveillants potentiels avant d’enregistrer un outil. Cela peut empêcher un outil malveillant de recouvrir un outil existant.
- Détection de MCP malveillant : 🟥️ Surveillez et identifiez les schémas de comportement de MCP potentiellement malveillants. Cela peut aider à identifier un MCP malveillant.
- Contrôle des noms des outils MCP : 🔶 Adoptez un espace de noms ou un identifiant unique pour empêcher les conflits de noms. Cela peut empêcher les conflits entre les outils.
- Répertoire de services : 🔶 Maintenez un répertoire autorisé des services et outils MCP de confiance. Cela peut aider les utilisateurs à trouver des services de confiance.
- Résolution des conflits : 🔶 Il existe des règles claires pour résoudre les conflits d’outils portant le même nom.
- Isolation du domaine : 🔶 Les outils de différents domaines sont isolés les uns des autres, empêchant ainsi toute influence croisée.
- Mécanisme de priorité : 🔶 Établissez des règles de priorité de fonction claires pour éviter les recouvrements malveillants.
- Contrôle de version : 🔶 Mettez en œuvre un contrôle de version pour les fonctions et les outils, en détectant les modifications.
- Mécanisme d’enregistrement et de désenregistrement des outils : 🔶 Définissez clairement le processus d’enregistrement et de désenregistrement des outils, en empêchant les risques de sécurité liés aux outils obsolètes.
- Mécanisme de détection des conflits : 🔶 Détectez et résolvez les conflits de fonctions et de ressources dans un environnement multi-MCP.
- Classification des outils : 🟢️ Classez les outils en fonction de leur sensibilité et de leur niveau de risque.
Sécurité des invites
- Défense contre l’injection d’invite : 🟥️ Mettez en œuvre des mesures de défense multicouches pour prévenir les attaques par injection d’invite, y compris la vérification manuelle des exécutions critiques.
- Détection des instructions malveillantes : 🟥️ Établissez un mécanisme pour détecter et bloquer les instructions utilisateur potentiellement malveillantes, en évitant que le système ne soit manipulé, comme la détection et le blocage des instructions malveillantes préchargées lors de l’initialisation locale, et les outils malveillants provenant de serveurs MCP tiers contenant des instructions nuisibles cachées.
- Protection des invites système : 🟥️ Les invites système sont clairement séparées des entrées utilisateur, empêchant ainsi toute falsification.
- Filtrage des données sensibles : 🟥️ Filtrez les données personnelles sensibles des invites et du contexte.
- Isolation du contexte : 🔶 Assurez-vous que le contenu contextuel provenant de différentes sources est isolé les uns des autres, empêchant ainsi la pollution du contexte et la fuite d’informations.
- Modèles d’invite : 🔶 Utilisez des modèles d’invite sécurisés, en réduisant les risques d’injection.
- Validation de la description de l’outil : 🔶 Vérifiez la présence d’instructions malveillantes potentielles dans la description de l’outil.
- Validation de la cohérence des invites : 🔶 Assurez-vous que les mêmes invites produisent des résultats cohérents et prévisibles dans différents environnements.
- Gestion de l’historique du contexte : 🔶 Définissez clairement le mécanisme de nettoyage sécurisé de l’historique du contexte, en empêchant les risques de fuite d’informations causés par l’accumulation d’anciennes données.
Journalisation et audit
- Journalisation du client : 🟥️ Enregistrez toutes les interactions avec les services MCP, les appels d’outils et les activités d’autorisation.
- Enregistrement des événements de sécurité : 🟥️ Enregistrez tous les événements liés à la sécurité, y compris les échecs d’autorisation.
- Alertes d’anomalies : 🔶 Détectez et alertez sur les schémas d’activité anormaux.
Validation du serveur et sécurité des communications
- Authentification du serveur : 🟥️ Validez l’identité du serveur MCP, en empêchant la connexion à un serveur malveillant, et mettez en œuvre l’épinglage de certificat.
- Validation du certificat : 🟥️ Validez rigoureusement le certificat TLS du serveur distant, en empêchant les attaques de l’homme du milieu et en vérifiant l’intégrité de la chaîne de certificats.
- Chiffrement des communications : 🟥️ Toutes les communications client-serveur utilisent le chiffrement TLS 1.2+, en désactivant les suites de chiffrement faibles.
- Configuration du protocole sécurisé : 🔶 Configurez des paramètres TLS sécurisés, auditez et mettez à jour régulièrement les algorithmes de chiffrement et les protocoles.
Stockage et gestion des jetons d’autorisation
- Limitation de la portée des autorisations : 🟥️ Limitez strictement la portée des autorisations du jeton, en appliquant le principe du moindre privilège.
Contrôle de l’approbation automatique
- Limitation de l’approbation automatique : 🟥️ Contrôlez strictement la portée des outils et des opérations pouvant être approuvés automatiquement.
- Gestion de la liste blanche : 🔶 Définissez clairement le mécanisme de liste blanche des outils pouvant être approuvés automatiquement.
- Évaluation dynamique des risques : 🔶 Ajustez dynamiquement la stratégie d’approbation automatique en fonction du contexte.
- Audit du processus d’approbation : 🔶 Enregistrez et auditez toutes les décisions d’approbation automatique.
Sécurité de l’échantillonnage
- Contrôle de l’inclusion du contexte : 🟥️ Contrôlez strictement la portée du contexte inclus dans la demande d’échantillonnage.
- Filtrage des données sensibles : 🟥️ Filtrez les données sensibles des demandes et réponses d’échantillonnage.
- Validation de la demande d’échantillonnage : 🔶 Validez tous les paramètres et le contenu de la demande d’échantillonnage.
- Contrôle utilisateur : 🔶 Assurez-vous que l’utilisateur a un contrôle clair sur les demandes et les résultats d’échantillonnage.
- Sécurité des préférences du modèle : 🔶 Gérez en toute sécurité les informations de préférence du modèle, en empêchant tout abus.
- Validation des résultats : 🔶 Validez si les résultats de l’échantillonnage sont conformes aux normes de sécurité.
Adaptation et sécurité des appels du MCP sur différents LLM
Différents backends LLM peuvent avoir des priorités d’appel et une logique d’exécution différentes pour le MCP, il est donc nécessaire de se concentrer sur la sécurité de la combinaison LLM et MCP.
Exécution sécurisée du LLM
- Exécution prioritaire des fonctions : 🟥️ Assurez-vous que le LLM peut exécuter en priorité la fonction du plugin approprié.
- Protection contre les invites malveillantes : 🟥️ Le LLM peut identifier et protéger contre les comportements requis par les mnémoniques injectés dans des scénarios d’invites malveillantes.
- Appel sécurisé : 🟥️ Le LLM peut appeler correctement et en toute sécurité les fonctions MCP associées.
- Protection des informations sensibles : 🟥️ Empêchez la fuite d’informations sensibles.
Sécurité multimodale
- Filtrage du contenu multimodal : 🟥️ Filtrez les informations nuisibles ou sensibles dans le contenu multimodal (par exemple, les invites malveillantes dans les images).
Sécurité des scénarios multi-MCP
Lorsque plusieurs serveurs MCP sont activés simultanément, en raison du manque d’audit officiel, les utilisateurs peuvent installer un MCP malveillant, ce quiconstitue unemenace pour la sécurité globale.
- Sécurité de l’environnement multi-MCP : 🟥️ Assurez la sécurité globale de l’environnement multi-MCP et effectuez régulièrement des analyses et des contrôles des MCP installés.
- Protection contre le détournement de la priorité des fonctions : 🟥️ Vérifiez les préréglages d’invites potentiellement malveillants pour empêcher le détournement malveillant de la priorité des fonctions.
- Contrôle des appels de fonctions inter-MCP : 🟥️ Contrôlez en toute sécurité les appels de fonctions inter-MCP, en empêchant le MCP malveillant de renvoyer des invites malveillantes pour appeler d’autres MCP pour effectuer des opérations sensibles.
Points de sécurité spécifiques aux MCP liés aux cryptomonnaies
Les MCP liés aux cryptomonnaies ont généralement la capacité de gérer les portefeuilles de cryptomonnaies, ce qui présente un risque élevé.
- Protection des clés privées : 🟥️ Renforcez les mesures de protection de la sécurité des clés privées, telles que Scrypt.
- Sécurité de la génération de portefeuilles : 🟥️ Assurez la sécurité du processus de génération des mnémoniques ou des portefeuilles.
- Confidentialité des informations du portefeuille : 🟥️ Protégez la confidentialité des informations du portefeuille et filtrez les informations du portefeuille lors de la demande d’interface tierce.
- Confirmation des informations de transfert : 🟥️ Les informations de signature de transfert sur la chaîne ou l’échange doivent être entièrement affichées et confirmées.
- Vérification des opérations financières : 🟥️ Vérifiez à nouveau les opérations financières importantes, telles que Google Authenticator.
- Protection de la confidentialité du modèle local : 🔶 Utilisez un modèle local pour protéger les données privées, en empêchant les fabricants de grands modèles tiers d’obtenir vos informations de portefeuille et autres informations sensibles.
- Compatibilité avec les portefeuilles traditionnels : 🔶 Compatibilité de sécurité avec les portefeuilles traditionnels, telle que la prise en charge des opérations de signature avec des portefeuilles traditionnels, etc.