Les défis de la sécurité du système MCP et les moyens d'y faire face
Avec le développement rapide de la technologie de l'intelligence artificielle, le protocole Model Context Protocol (MCP) fait face à des défis de sécurité de plus en plus sévères tout en améliorant les capacités des grands modèles. Actuellement, le système MCP est encore à un stade de développement précoce, l'environnement global étant assez chaotique, avec une multitude de méthodes d'attaque potentielles qui émergent. Les protocoles et outils existants sont difficilement capables d'offrir une défense efficace. Pour aider la communauté à mieux comprendre et améliorer la sécurité du MCP, un outil open source nommé MasterMCP a été créé, visant à aider les développeurs à découvrir rapidement les vulnérabilités de sécurité dans la conception des produits grâce à des exercices d'attaque pratiques, afin de renforcer progressivement le projet MCP.
Cet article guidera les lecteurs à travers des exercices pratiques, démontrant des méthodes d'attaque courantes dans le système MCP, telles que l'empoisonnement d'informations et l'injection de commandes malveillantes à travers de véritables cas. Tous les scripts de démonstration seront également open source sur GitHub, permettant à chacun de reproduire l'ensemble du processus dans un environnement sécurisé, voire de développer ses propres plugins de test d'attaque basés sur ces scripts.
Vue d'ensemble de l'architecture globale
cible d'attaque de démonstration MCP:Toolbox
L'outil de gestion MCP officiel sur un site de plugins MCP bien connu a été sélectionné comme cible de test, principalement pour les raisons suivantes :
Une vaste base d'utilisateurs, représentative
Support pour l'installation automatique d'autres plugins, complétant certaines fonctionnalités du client.
Contient des configurations sensibles ( telles que la clé API ), facilitant la démonstration.
démonstration de l'utilisation du MCP malveillant : MasterMCP
MasterMCP est un outil de simulation de MCP malveillant spécialement conçu pour les tests de sécurité, utilisant une architecture modulaire et comprenant les modules clés suivants :
Simulation de service de site Web local:
Pour reproduire de manière plus réaliste le scénario d'attaque, MasterMCP intègre un module de simulation de service web local. Il construit rapidement un serveur HTTP simple à l'aide du framework FastAPI, simulant un environnement web courant. Ces pages semblent normales en surface, comme afficher des informations sur une pâtisserie ou renvoyer des données JSON standard, mais en réalité, elles cachent dans le code source de la page ou les réponses des interfaces des charges utiles malveillantes soigneusement conçues.
De cette manière, nous pouvons démontrer de manière complète des techniques d'attaque telles que l'empoisonnement d'informations et la dissimulation de commandes dans un environnement local sécurisé et contrôlé, aidant chacun à comprendre plus intuitivement : même une page web apparemment ordinaire peut devenir une source de risque conduisant à des opérations anormales exécutées par un grand modèle.
Architecture MCP plugin localisée
MasterMCP utilise une approche modulaire pour l'extension, facilitant l'ajout rapide de nouvelles méthodes d'attaque. Une fois en cours d'exécution, MasterMCP exécutera le service FastAPI du module précédent dans un sous-processus. ( Si vous faites attention, vous remarquerez qu'il existe déjà des vulnérabilités de sécurité ici - des plugins locaux peuvent démarrer n'importe quel sous-processus non prévu par l'MCP ).
Client de démonstration
Cursor : l'un des IDE de programmation assistée par IA les plus populaires au monde
Claude Desktop : Client officiel de la société AI (, partie personnalisée du protocole MCP ).
modèle de grande taille utilisé pour la démonstration
Claude 3.7
Choisissez la version Claude 3.7, car elle a déjà apporté certaines améliorations dans la reconnaissance des opérations sensibles, tout en représentant une capacité opérationnelle relativement forte dans l'écosystème MCP actuel.
Appel malveillant Cross-MCP
attaque de pollution de contenu web
Injection de commentaire
En accédant à un site de test local, nous avons simulé les effets de l'accès d'un client à un site malveillant. Les résultats montrent que le client non seulement a lu le contenu de la page web, mais a également renvoyé des données de configuration sensibles locales au serveur de test. Dans le code source, des mots d'invite malveillants sont intégrés sous forme de commentaires HTML. Bien que cette méthode de commentaire soit relativement évidente et facile à identifier, elle peut déjà déclencher des opérations malveillantes.
Poisonnement par des commentaires codés
Accédez à la page /encode, c'est une page web qui ressemble à l'exemple ci-dessus, mais les mots d'invite malveillants ont été encodés, ce qui rend l'exp de contamination plus discret, même en accédant au code source de la page, il est difficile de le détecter directement. Même si le code source ne contient pas de mots d'invite en clair, l'attaque s'exécute toujours avec succès.
attaque de pollution d'interface tierce
Cette démonstration vise principalement à rappeler à tous que, qu'il s'agisse de MCP malveillants ou non malveillants, lors de l'appel d'une API tierce, le fait de renvoyer directement les données tierces au contexte peut avoir des conséquences graves.
Technique de poisonnage lors de l'étape d'initialisation du MC
attaque par recouvrement de fonction malveillante
MasterMCP a écrit un outil avec le même nom de fonction remove_server que Toolbox, et a codé des mots d'alerte malveillants en cache. En soulignant que "la méthode d'origine a été abandonnée", il a priorisé l'incitation du grand modèle à appeler la fonction malveillante recouverte.
Ajouter une logique de vérification globale malveillante
MasterMCP a écrit un outil nommé banana, dont la fonction principale est d'exiger que tous les outils exécutés avant de fonctionner passent par cet outil pour un contrôle de sécurité. Cela est réalisé par une injection logique globale dans le code en insistant à plusieurs reprises sur "doit exécuter la détection banana".
Techniques avancées pour masquer les mots d'alerte malveillants
méthode de codage adaptée aux grands modèles
En raison de la capacité d'analyse extrêmement forte des grands modèles de langage (LLM) concernant les formats multilingues, cela est plutôt utilisé pour cacher des informations malveillantes, les méthodes couramment utilisées incluent :
En environnement chinois : utiliser l'encodage NCR ou l'encodage JavaScript
Mécanisme de retour de charge malveillante aléatoire
Lorsque la demande /random est effectuée, un page avec une charge utile malveillante est renvoyée de manière aléatoire à chaque fois, ce qui augmente considérablement la difficulté de détection et de traçage.
Résumé
Grâce à la démonstration pratique de MasterMCP, nous avons pu voir de manière intuitive les diverses vulnérabilités cachées dans le système Model Context Protocol (MCP). Des injections de mots-clés simples, des appels croisés de MCP, jusqu'aux attaques plus discrètes lors de la phase d'initialisation et du camouflage de commandes malveillantes, chaque étape nous rappelle : bien que l'écosystème MCP soit puissant, il est également vulnérable.
Surtout aujourd'hui, où les grands modèles interagissent de plus en plus fréquemment avec des plugins externes et des API, une petite contamination des entrées peut entraîner des risques de sécurité au niveau du système entier. La diversité des méthodes des attaquants, comme le codage caché (, la contamination aléatoire et le recouvrement de fonctions ), signifie également que les approches de protection traditionnelles doivent être entièrement mises à jour.
La sécurité n'est jamais acquise du jour au lendemain. J'espère que cette démonstration pourra servir de signal d'alarme à tous : que ce soit pour les développeurs ou les utilisateurs, il est essentiel de rester vigilant envers le système MCP, en surveillant chaque interaction, chaque ligne de code, chaque valeur de retour. Ce n'est qu'en traitant chaque détail avec rigueur que l'on pourra réellement établir un environnement MCP solide et sécurisé.
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
19 J'aime
Récompense
19
6
Partager
Commentaire
0/400
GateUser-00be86fc
· Il y a 23h
Attendez encore un peu, ce n'est pas encore assez stable.
Voir l'originalRépondre0
NullWhisperer
· Il y a 23h
mcp semble être une bombe à retardement pour être honnête... un autre jour, un autre exploit en attente d'arriver
Voir l'originalRépondre0
StablecoinGuardian
· Il y a 23h
Encore un tour de brouhaha incompréhensible~
Voir l'originalRépondre0
NFTRegretful
· Il y a 23h
Il faut regarder les experts pour creuser des trous.
Voir l'originalRépondre0
StableGenius
· Il y a 23h
prévisible... je dis cela à propos des failles de sécurité de mcp depuis le deuxième trimestre
Voir l'originalRépondre0
GateUser-1a2ed0b9
· Il y a 23h
C'est épuisant, je ne peux plus supporter les accidents de sécurité.
Analyse complète des risques de sécurité de MCP : des exercices pratiques de l'empoisonnement aux attaques cachées.
Les défis de la sécurité du système MCP et les moyens d'y faire face
Avec le développement rapide de la technologie de l'intelligence artificielle, le protocole Model Context Protocol (MCP) fait face à des défis de sécurité de plus en plus sévères tout en améliorant les capacités des grands modèles. Actuellement, le système MCP est encore à un stade de développement précoce, l'environnement global étant assez chaotique, avec une multitude de méthodes d'attaque potentielles qui émergent. Les protocoles et outils existants sont difficilement capables d'offrir une défense efficace. Pour aider la communauté à mieux comprendre et améliorer la sécurité du MCP, un outil open source nommé MasterMCP a été créé, visant à aider les développeurs à découvrir rapidement les vulnérabilités de sécurité dans la conception des produits grâce à des exercices d'attaque pratiques, afin de renforcer progressivement le projet MCP.
Cet article guidera les lecteurs à travers des exercices pratiques, démontrant des méthodes d'attaque courantes dans le système MCP, telles que l'empoisonnement d'informations et l'injection de commandes malveillantes à travers de véritables cas. Tous les scripts de démonstration seront également open source sur GitHub, permettant à chacun de reproduire l'ensemble du processus dans un environnement sécurisé, voire de développer ses propres plugins de test d'attaque basés sur ces scripts.
Vue d'ensemble de l'architecture globale
cible d'attaque de démonstration MCP:Toolbox
L'outil de gestion MCP officiel sur un site de plugins MCP bien connu a été sélectionné comme cible de test, principalement pour les raisons suivantes :
démonstration de l'utilisation du MCP malveillant : MasterMCP
MasterMCP est un outil de simulation de MCP malveillant spécialement conçu pour les tests de sécurité, utilisant une architecture modulaire et comprenant les modules clés suivants :
Pour reproduire de manière plus réaliste le scénario d'attaque, MasterMCP intègre un module de simulation de service web local. Il construit rapidement un serveur HTTP simple à l'aide du framework FastAPI, simulant un environnement web courant. Ces pages semblent normales en surface, comme afficher des informations sur une pâtisserie ou renvoyer des données JSON standard, mais en réalité, elles cachent dans le code source de la page ou les réponses des interfaces des charges utiles malveillantes soigneusement conçues.
De cette manière, nous pouvons démontrer de manière complète des techniques d'attaque telles que l'empoisonnement d'informations et la dissimulation de commandes dans un environnement local sécurisé et contrôlé, aidant chacun à comprendre plus intuitivement : même une page web apparemment ordinaire peut devenir une source de risque conduisant à des opérations anormales exécutées par un grand modèle.
MasterMCP utilise une approche modulaire pour l'extension, facilitant l'ajout rapide de nouvelles méthodes d'attaque. Une fois en cours d'exécution, MasterMCP exécutera le service FastAPI du module précédent dans un sous-processus. ( Si vous faites attention, vous remarquerez qu'il existe déjà des vulnérabilités de sécurité ici - des plugins locaux peuvent démarrer n'importe quel sous-processus non prévu par l'MCP ).
Client de démonstration
modèle de grande taille utilisé pour la démonstration
Choisissez la version Claude 3.7, car elle a déjà apporté certaines améliorations dans la reconnaissance des opérations sensibles, tout en représentant une capacité opérationnelle relativement forte dans l'écosystème MCP actuel.
Appel malveillant Cross-MCP
attaque de pollution de contenu web
En accédant à un site de test local, nous avons simulé les effets de l'accès d'un client à un site malveillant. Les résultats montrent que le client non seulement a lu le contenu de la page web, mais a également renvoyé des données de configuration sensibles locales au serveur de test. Dans le code source, des mots d'invite malveillants sont intégrés sous forme de commentaires HTML. Bien que cette méthode de commentaire soit relativement évidente et facile à identifier, elle peut déjà déclencher des opérations malveillantes.
Accédez à la page /encode, c'est une page web qui ressemble à l'exemple ci-dessus, mais les mots d'invite malveillants ont été encodés, ce qui rend l'exp de contamination plus discret, même en accédant au code source de la page, il est difficile de le détecter directement. Même si le code source ne contient pas de mots d'invite en clair, l'attaque s'exécute toujours avec succès.
attaque de pollution d'interface tierce
Cette démonstration vise principalement à rappeler à tous que, qu'il s'agisse de MCP malveillants ou non malveillants, lors de l'appel d'une API tierce, le fait de renvoyer directement les données tierces au contexte peut avoir des conséquences graves.
Technique de poisonnage lors de l'étape d'initialisation du MC
attaque par recouvrement de fonction malveillante
MasterMCP a écrit un outil avec le même nom de fonction remove_server que Toolbox, et a codé des mots d'alerte malveillants en cache. En soulignant que "la méthode d'origine a été abandonnée", il a priorisé l'incitation du grand modèle à appeler la fonction malveillante recouverte.
Ajouter une logique de vérification globale malveillante
MasterMCP a écrit un outil nommé banana, dont la fonction principale est d'exiger que tous les outils exécutés avant de fonctionner passent par cet outil pour un contrôle de sécurité. Cela est réalisé par une injection logique globale dans le code en insistant à plusieurs reprises sur "doit exécuter la détection banana".
Techniques avancées pour masquer les mots d'alerte malveillants
méthode de codage adaptée aux grands modèles
En raison de la capacité d'analyse extrêmement forte des grands modèles de langage (LLM) concernant les formats multilingues, cela est plutôt utilisé pour cacher des informations malveillantes, les méthodes couramment utilisées incluent :
Mécanisme de retour de charge malveillante aléatoire
Lorsque la demande /random est effectuée, un page avec une charge utile malveillante est renvoyée de manière aléatoire à chaque fois, ce qui augmente considérablement la difficulté de détection et de traçage.
Résumé
Grâce à la démonstration pratique de MasterMCP, nous avons pu voir de manière intuitive les diverses vulnérabilités cachées dans le système Model Context Protocol (MCP). Des injections de mots-clés simples, des appels croisés de MCP, jusqu'aux attaques plus discrètes lors de la phase d'initialisation et du camouflage de commandes malveillantes, chaque étape nous rappelle : bien que l'écosystème MCP soit puissant, il est également vulnérable.
Surtout aujourd'hui, où les grands modèles interagissent de plus en plus fréquemment avec des plugins externes et des API, une petite contamination des entrées peut entraîner des risques de sécurité au niveau du système entier. La diversité des méthodes des attaquants, comme le codage caché (, la contamination aléatoire et le recouvrement de fonctions ), signifie également que les approches de protection traditionnelles doivent être entièrement mises à jour.
La sécurité n'est jamais acquise du jour au lendemain. J'espère que cette démonstration pourra servir de signal d'alarme à tous : que ce soit pour les développeurs ou les utilisateurs, il est essentiel de rester vigilant envers le système MCP, en surveillant chaque interaction, chaque ligne de code, chaque valeur de retour. Ce n'est qu'en traitant chaque détail avec rigueur que l'on pourra réellement établir un environnement MCP solide et sécurisé.