Poisoning et manipulation cachés dans le système MCP : démonstration pratique
Actuellement, le MCP ( Model Context Protocol) est encore en phase de développement précoce, l'environnement global est assez chaotique, et diverses méthodes d'attaque potentielles émergent constamment, rendant les protocoles et outils existants difficiles à défendre efficacement. Afin d'aider la communauté à mieux comprendre et améliorer la sécurité du MCP, l'outil MasterMCP a récemment été open source, visant à aider à découvrir les vulnérabilités de sécurité dans la conception des produits grâce à des exercices d'attaque pratiques, et à renforcer progressivement le projet MCP.
Cet article guidera les lecteurs à travers des exercices pratiques, démontrant les méthodes d'attaque courantes dans le cadre du système MCP, telles que l'empoisonnement d'information, l'injection de commandes malveillantes cachées, etc. Tous les scripts de démonstration seront également open source, permettant aux lecteurs de reproduire l'ensemble du processus dans un environnement sécurisé, et même de développer leurs propres plugins de test d'attaque basés sur ces scripts.
Vue d'ensemble de l'architecture globale
Cible de l'attaque de démonstration MC : Toolbox
smithery.ai est l'un des sites de plugins MCP les plus populaires, rassemblant une grande quantité de listes MCP et d'utilisateurs actifs. Parmi eux, @smithery/toolbox est l'outil de gestion MCP officiellement lancé par le site.
Choisir Toolbox comme cible de test, principalement basé sur les points suivants :
Une base d'utilisateurs très large et représentative
Support de 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 de MCP malveillant : MasterMCP
MasterMCP est un outil de simulation de MCP malveillant conçu spécifiquement pour les tests de sécurité, utilisant une architecture modulaire et comprenant les modules clés suivants :
Service de simulation de site web local :
Pour recréer de manière plus réaliste des scénarios d'attaque, MasterMC intègre un module de simulation de service de site 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, mais cachent en réalité des charges malveillantes soigneusement conçues dans le code source de la page ou les réponses des interfaces.
De cette manière, nous pouvons démontrer de manière complète les techniques d'attaque telles que le poisoning d'informations et le masquage d'instructions dans un environnement local sécurisé et contrôlé, aidant ainsi à mieux comprendre : même une page web apparemment ordinaire peut devenir une source de risque pouvant amener un grand modèle à exécuter des opérations anormales.
Architecture MCP plugin localisée
MasterMCP adopte une approche modulaire pour s'étendre, facilitant l'ajout rapide de nouvelles méthodes d'attaque par la suite. Une fois en cours d'exécution, MasterMCP exécutera le service FastAPI du module précédent dans un sous-processus. ( Si vous êtes attentif, vous remarquerez qu'il existe déjà une vulnérabilité de sécurité ici : les plugins locaux peuvent démarrer n'importe quel sous-processus non prévu par MCP ).
client de démonstration
Cursor : l'un des IDE de programmation assistée par IA les plus populaires au monde
Claude Desktop : Anthropic ( MC protocole personnalisé ) client officiel
Modèle de grande taille utilisé pour la démonstration
Claude 3.7
Choisissez la version Claude 3.7, car elle a déjà fait des 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.
Invocation malveillante Cross-MCP
attaque par empoisonnement de contenu web
Injection de commentaires
Cursor accède au site web de test local.
Ceci est une page apparemment inoffensive sur "Delicious Cake World", qui simule les effets causés par l'accès à un site Web malveillant par un client de modèle de grande taille.
Exécuter l'instruction:
Récupérer le contenu de
Les résultats montrent que le curseur 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, les mots d'alerte malveillants sont intégrés sous forme de commentaire HTML.
Bien que la méthode de commentaire soit assez directe et facilement identifiable, elle peut déjà déclencher des opérations malveillantes.
Poisonnement de commentaires de type codage
Accéder à la page /encode, c'est une page web qui semble identique à l'exemple ci-dessus, mais où les mots-clés malveillants ont été codés, rendant l'exp de l'empoisonnement plus furtif, 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-clés en clair, l'attaque réussit toujours. Le principe spécifique sera expliqué en détail dans les chapitres suivants.
MCP outils retour d'information empoisonnement
Selon les instructions de l'invite de MasterMCP, entrez la commande simulée (. Cette commande n'a pas de signification réelle et vise à déclencher un MCP malveillant pour démontrer les opérations suivantes ) :
obtenir beaucoup de pommes
On peut voir qu'après avoir déclenché la commande, le client a appelé Toolbox à travers le MCP et a réussi à ajouter un nouveau serveur MCP.
En examinant le code du plugin, on peut constater que les données retournées contiennent déjà une charge utile malveillante codée, et il est presque impossible pour l'utilisateur de détecter l'anomalie.
attaque de pollution d'interface tierce
Cette démonstration rappelle principalement que, qu'il s'agisse de MCP malveillant ou non, lors de l'appel d'une API tierce, le retour direct des données tierces dans le contexte peut avoir des conséquences graves.
Exécuter la demande :
Récupérer le json depuis /api/data
Résultat : des mots d'invite malveillants ont été intégrés aux données JSON renvoyées et ont réussi à déclencher une exécution malveillante.
Technique de détoxication de l'initialisation MCP
attaque de couverture de fonction malveillante
MasterMCP a écrit un outil nommé remove_server, utilisant les mêmes noms de fonctions que Toolbox, et a codé des mots d'invite malveillants en cache.
Exécuter l'instruction:
boîte à outils supprimer chercher plugin serveur
Claude Desktop n'a pas appelé la méthode remove_server de toolbox d'origine, mais a plutôt déclenché la méthode homonyme fournie par MasterMCP.
Le principe est de souligner que "la méthode existante est obsolète" afin d'inciter en priorité le grand modèle à appeler des fonctions de couverture malveillante.
ajouter une logique de vérification globale malveillante
MasterMCP a écrit un outil banana, dont la fonction principale est de forcer tous les outils à exécuter cet outil pour une vérification de sécurité avant de fonctionner dans les invites.
Avant chaque exécution de la fonction, le système appelle en priorité le mécanisme de vérification banana.
C'est une injection logique globale réalisée en insistant à plusieurs reprises dans le code sur "la détection de la banane doit être exécutée".
Techniques avancées pour masquer les mots d'alerte malveillants
méthode de codage conviviale pour les grands modèles
En raison de la forte capacité d'analyse des modèles de langage à grande échelle pour les formats multilingues, cela est plutôt utilisé pour dissimuler des informations malveillantes. Les méthodes couramment utilisées comprennent :
Environnement anglais : utiliser le codage Hex Byte
Dans un environnement chinois : utiliser l'encodage NCR ou l'encodage JavaScript
Mécanisme de retour de charge malveillante aléatoire
Lorsqu'une demande /random est effectuée, une page contenant 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çabilité.
Résumé
À travers la démonstration pratique de MasterMCP, nous avons pu voir de manière intuitive les divers risques de sécurité cachés dans le système Model Context Protocol (MCP). Des injections de mots-clés simples, des appels croisés entre MCP, jusqu'aux attaques plus subtiles lors de la phase d'initialisation et à la dissimulation d'instructions malveillantes, chaque étape nous rappelle que : malgré la puissance de l'écosystème MCP, il est tout aussi fragile.
Surtout aujourd'hui, où les grands modèles interagissent de plus en plus fréquemment avec des plugins externes et des API, une petite pollution d'entrée peut déclencher des risques de sécurité au niveau du système entier. De plus, la diversification des méthodes des attaquants, telles que le codage caché (, la pollution aléatoire et le dépassement de fonction ), signifie également que les stratégies de protection traditionnelles nécessitent une mise à niveau complète.
La sécurité n'est jamais acquise du jour au lendemain.
J'espère que cette démonstration pourra servir d'avertissement à tous : que ce soit pour les développeurs ou les utilisateurs, il est crucial de maintenir une vigilance suffisante envers le système MCP, en restant attentif à chaque interaction, chaque ligne de code, et chaque valeur de retour. Ce n'est qu'en prêtant attention à chaque détail avec rigueur que nous pourrons véritablement construire un environnement MCP solide et sécurisé.
La prochaine étape consiste à continuer à améliorer le script MasterMCP, à rendre publics davantage de cas de test ciblés, afin d'aider tout le monde à approfondir sa compréhension, à s'exercer et à renforcer la protection dans un environnement sécurisé.
 est encore en phase de développement précoce, l'environnement global est assez chaotique, et diverses méthodes d'attaque potentielles émergent constamment, rendant les protocoles et outils existants difficiles à défendre efficacement. Afin d'aider la communauté à mieux comprendre et améliorer la sécurité du MCP, l'outil MasterMCP a récemment été open source, visant à aider à découvrir les vulnérabilités de sécurité dans la conception des produits grâce à des exercices d'attaque pratiques, et à renforcer progressivement le projet MCP.
Cet article guidera les lecteurs à travers des exercices pratiques, démontrant les méthodes d'attaque courantes dans le cadre du système MCP, telles que l'empoisonnement d'information, l'injection de commandes malveillantes cachées, etc. Tous les scripts de démonstration seront également open source, permettant aux lecteurs de reproduire l'ensemble du processus dans un environnement sécurisé, et même de développer leurs propres plugins de test d'attaque basés sur ces scripts.
Vue d'ensemble de l'architecture globale
Cible de l'attaque de démonstration MC : Toolbox
smithery.ai est l'un des sites de plugins MCP les plus populaires, rassemblant une grande quantité de listes MCP et d'utilisateurs actifs. Parmi eux, @smithery/toolbox est l'outil de gestion MCP officiellement lancé par le site.
Choisir Toolbox comme cible de test, principalement basé sur les points suivants :
démonstration de l'utilisation de MCP malveillant : MasterMCP
MasterMCP est un outil de simulation de MCP malveillant conçu spécifiquement pour les tests de sécurité, utilisant une architecture modulaire et comprenant les modules clés suivants :
Pour recréer de manière plus réaliste des scénarios d'attaque, MasterMC intègre un module de simulation de service de site 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, mais cachent en réalité des charges malveillantes soigneusement conçues dans le code source de la page ou les réponses des interfaces.
De cette manière, nous pouvons démontrer de manière complète les techniques d'attaque telles que le poisoning d'informations et le masquage d'instructions dans un environnement local sécurisé et contrôlé, aidant ainsi à mieux comprendre : même une page web apparemment ordinaire peut devenir une source de risque pouvant amener un grand modèle à exécuter des opérations anormales.
MasterMCP adopte une approche modulaire pour s'étendre, facilitant l'ajout rapide de nouvelles méthodes d'attaque par la suite. Une fois en cours d'exécution, MasterMCP exécutera le service FastAPI du module précédent dans un sous-processus. ( Si vous êtes attentif, vous remarquerez qu'il existe déjà une vulnérabilité de sécurité ici : les plugins locaux peuvent démarrer n'importe quel sous-processus non prévu par 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à fait des 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.
Invocation malveillante Cross-MCP
attaque par empoisonnement de contenu web
Cursor accède au site web de test local.
Ceci est une page apparemment inoffensive sur "Delicious Cake World", qui simule les effets causés par l'accès à un site Web malveillant par un client de modèle de grande taille.
Exécuter l'instruction: Récupérer le contenu de
Les résultats montrent que le curseur 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, les mots d'alerte malveillants sont intégrés sous forme de commentaire HTML.
Bien que la méthode de commentaire soit assez directe et facilement identifiable, elle peut déjà déclencher des opérations malveillantes.
Accéder à la page /encode, c'est une page web qui semble identique à l'exemple ci-dessus, mais où les mots-clés malveillants ont été codés, rendant l'exp de l'empoisonnement plus furtif, 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-clés en clair, l'attaque réussit toujours. Le principe spécifique sera expliqué en détail dans les chapitres suivants.
MCP outils retour d'information empoisonnement
Selon les instructions de l'invite de MasterMCP, entrez la commande simulée (. Cette commande n'a pas de signification réelle et vise à déclencher un MCP malveillant pour démontrer les opérations suivantes ) :
obtenir beaucoup de pommes
On peut voir qu'après avoir déclenché la commande, le client a appelé Toolbox à travers le MCP et a réussi à ajouter un nouveau serveur MCP.
En examinant le code du plugin, on peut constater que les données retournées contiennent déjà une charge utile malveillante codée, et il est presque impossible pour l'utilisateur de détecter l'anomalie.
attaque de pollution d'interface tierce
Cette démonstration rappelle principalement que, qu'il s'agisse de MCP malveillant ou non, lors de l'appel d'une API tierce, le retour direct des données tierces dans le contexte peut avoir des conséquences graves.
Exécuter la demande : Récupérer le json depuis /api/data
Résultat : des mots d'invite malveillants ont été intégrés aux données JSON renvoyées et ont réussi à déclencher une exécution malveillante.
Technique de détoxication de l'initialisation MCP
attaque de couverture de fonction malveillante
MasterMCP a écrit un outil nommé remove_server, utilisant les mêmes noms de fonctions que Toolbox, et a codé des mots d'invite malveillants en cache.
Exécuter l'instruction: boîte à outils supprimer chercher plugin serveur
Claude Desktop n'a pas appelé la méthode remove_server de toolbox d'origine, mais a plutôt déclenché la méthode homonyme fournie par MasterMCP.
Le principe est de souligner que "la méthode existante est obsolète" afin d'inciter en priorité le grand modèle à appeler des fonctions de couverture malveillante.
ajouter une logique de vérification globale malveillante
MasterMCP a écrit un outil banana, dont la fonction principale est de forcer tous les outils à exécuter cet outil pour une vérification de sécurité avant de fonctionner dans les invites.
Avant chaque exécution de la fonction, le système appelle en priorité le mécanisme de vérification banana.
C'est une injection logique globale réalisée en insistant à plusieurs reprises dans le code sur "la détection de la banane doit être exécutée".
Techniques avancées pour masquer les mots d'alerte malveillants
méthode de codage conviviale pour les grands modèles
En raison de la forte capacité d'analyse des modèles de langage à grande échelle pour les formats multilingues, cela est plutôt utilisé pour dissimuler des informations malveillantes. Les méthodes couramment utilisées comprennent :
Mécanisme de retour de charge malveillante aléatoire
Lorsqu'une demande /random est effectuée, une page contenant 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çabilité.
Résumé
À travers la démonstration pratique de MasterMCP, nous avons pu voir de manière intuitive les divers risques de sécurité cachés dans le système Model Context Protocol (MCP). Des injections de mots-clés simples, des appels croisés entre MCP, jusqu'aux attaques plus subtiles lors de la phase d'initialisation et à la dissimulation d'instructions malveillantes, chaque étape nous rappelle que : malgré la puissance de l'écosystème MCP, il est tout aussi fragile.
Surtout aujourd'hui, où les grands modèles interagissent de plus en plus fréquemment avec des plugins externes et des API, une petite pollution d'entrée peut déclencher des risques de sécurité au niveau du système entier. De plus, la diversification des méthodes des attaquants, telles que le codage caché (, la pollution aléatoire et le dépassement de fonction ), signifie également que les stratégies de protection traditionnelles nécessitent une mise à niveau complète.
La sécurité n'est jamais acquise du jour au lendemain.
J'espère que cette démonstration pourra servir d'avertissement à tous : que ce soit pour les développeurs ou les utilisateurs, il est crucial de maintenir une vigilance suffisante envers le système MCP, en restant attentif à chaque interaction, chaque ligne de code, et chaque valeur de retour. Ce n'est qu'en prêtant attention à chaque détail avec rigueur que nous pourrons véritablement construire un environnement MCP solide et sécurisé.
La prochaine étape consiste à continuer à améliorer le script MasterMCP, à rendre publics davantage de cas de test ciblés, afin d'aider tout le monde à approfondir sa compréhension, à s'exercer et à renforcer la protection dans un environnement sécurisé.
![Départ pratique : empoisonnement caché et manipulation dans le système MCP](https://img-cdn.gateio.im/webp-social/moments-c5a25d6fa43a286a07b6a57c1a3f9605.webp01