Poisonnement et manipulation cachés dans le système MCP : démonstration en direct
MCP (Modèle de Contexte du Protocole) Le système est actuellement encore dans une phase de développement précoce, l'environnement global est assez chaotique, et diverses méthodes d'attaque potentielles émergent sans cesse, rendant difficile la défense efficace des protocoles et outils existants. Pour aider la communauté à mieux comprendre et améliorer la sécurité de MCP, un outil open source nommé MasterMCP a vu le jour. Cet outil vise à aider les développeurs à identifier 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 cadre du système MCP, telles que la pollution d'informations, l'injection de commandes malveillantes discrètes et d'autres cas concrets. Tous les scripts utilisés dans les démonstrations 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'attaques basés sur ces scripts.
Aperçu de l'architecture globale
démonstration de l'attaque cible MC : Toolbox
Un certain site de plugins est l'un des sites de plugins MCP les plus populaires actuellement, rassemblant un grand nombre de listes MCP et d'utilisateurs actifs. L'outil de gestion MCP Toolbox, lancé par l'officiel, a été choisi comme cible de test, principalement basé sur les points suivants :
Une base d'utilisateurs énorme et représentative
Prend en charge 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 pour les tests de sécurité, avec une architecture modulaire qui comprend 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, MasterMC intègre un module de simulation de service web local. Il construit rapidement un serveur HTTP simple via le framework FastAPI, simulant un environnement web courant. Ces pages semblent normales en surface, mais en réalité, elles cachent des charges malveillantes soigneusement conçues dans le code source de la page ou dans les réponses des interfaces.
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 ainsi le lecteur à comprendre de manière plus intuitive : même une page web apparemment ordinaire peut devenir une source de risque incitant un grand modèle à exécuter des opérations anormales.
Architecture MCP localisée et plugin
MasterMCP utilise une approche modulaire pour s'étendre, facilitant l'ajout rapide de nouvelles méthodes d'attaque. Après son lancement, MasterMCP exécutera le service FastAPI du module précédent dans un sous-processus. ( Les lecteurs attentifs remarqueront qu'il existe déjà un risque de sécurité ici - des 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 actuellement.
Claude Desktop : client officiel d'une grande entreprise de modèles
modèle de grande taille utilisé pour la démonstration
Claude 3.7
Choisissez la version Claude 3.7, car elle a déjà amélioré la détection des opérations sensibles et représente une capacité opérationnelle relativement forte dans l'écosystème MCP actuel.
Cross-MCP appel malveillant
Cette démonstration comprend deux contenus : l'empoisonnement et les appels malveillants Cross-MCP.
attaque par empoisonnement de contenu web
Poisoning par commentaire
Le curseur accède à un site de test local. C'est une page apparemment inoffensive sur "Delicious Cake World", que nous utilisons dans cette expérience pour simuler l'impact de l'accès d'un client de modèle large à un site malveillant.
Exécuter l'instruction:
Récupérer le contenu de
Les résultats montrent que le Curseur non seulement lit le contenu de la page web, mais renvoie également des données de configuration sensibles locales au serveur de test. Dans le code source, des mots-clés malveillants sont intégrés sous forme de commentaires HTML.
Bien que la méthode de commentaire soit relativement directe et facilement identifiable, elle peut déjà déclencher des opérations malveillantes.
Injection de commentaires codés
Accédez à la page /encode, c'est une page web qui ressemble à l'exemple ci-dessus, mais les mots d'incitation malveillants ont été codés, ce qui rend l'empoisonnement de l'exp 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-clés en clair, l'attaque s'exécute toujours avec succès, le principe sera expliqué en détail dans les chapitres suivants.
MCP outils retour d'information empoisonnement
Ici, nous entrons la commande simulée ( selon les instructions du mot-clé MasterMCP. Cette commande n'a aucune signification réelle, mais vise à déclencher un MCP malveillant pour démontrer les opérations ultérieures du MCP malveillant ) :
obtenir beaucoup de pommes
On peut voir qu'après avoir déclenché la commande, le client a appelé Toolbox à travers MC et a réussi à ajouter un nouveau serveur MC.
En examinant le code du plugin, on peut constater que les données de retour contiennent déjà des charges utiles malveillantes encodées, rendant presque impossible pour l'utilisateur de détecter une anomalie.
attaque de pollution d'interface tierce
Cette démonstration vise principalement à rappeler à tous que, qu'il s'agisse de MCP malveillant ou non malveillant, lors de l'appel d'une API tierce, renvoyer directement les données tierces au 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 dans les données JSON renvoyées et ont réussi à déclencher une exécution malveillante.
Techniques de poisoning de phase d'initialisation de MCP
Cette démonstration comprend deux éléments : l'injection de mots-clés initiaux et les conflits de noms.
attaque de couverture de fonction malveillante
Ici, MasterMCP a écrit un outil avec le même nom de fonction remove_server que Toolbox, et a encodé des mots d'invite malveillants.
Exécuter la commande:
boîte à outils supprimer récupérer plugin serveur
Claude Desktop n'a pas appelé la méthode remove_server d'origine de toolbox, mais a déclenché la méthode homonyme fournie par MasterMCP.
Le principe est de mettre l'accent sur "les méthodes précédentes ont été abandonnées" afin d'inciter prioritairement le grand modèle à appeler des fonctions de couverture malveillantes.
ajouter une logique de vérification globale malveillante
Ici, MasterMCP a écrit un outil nommé banana, dont la fonction principale est de forcer l'exécution de cet outil pour un contrôle de sécurité avant que tous les autres outils ne soient lancés 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 "il est obligatoire d'exécuter le test de banana".
Techniques avancées pour masquer les mots d'avertissement malveillants
méthode de codage conviviale pour les grands modèles
En raison de la capacité d'analyse extrêmement forte du modèle de langage (LLM) pour les formats multilingues, cela est plutôt utilisé pour dissimuler des informations malveillantes, les méthodes couramment utilisées incluent :
En environnement chinois : utiliser le codage NCR ou le codage JavaScript
Mécanisme de retour de charge malveillante aléatoire
Comme mentionné dans le chapitre deux, la pollution des interfaces tierces, lors de la demande de /random, renvoie à chaque fois de manière aléatoire une page avec une charge utile malveillante, ce qui augmente considérablement la difficulté de détection et de traçabilité.
Résumé
Grâce à cette démonstration pratique de MasterMCP, nous avons pu voir de manière intuitive les diverses vulnérabilités cachées dans le système du Model Context Protocol (MCP). Des injections de mots-clés simples, des appels inter-MCP, jusqu'aux attaques plus subtiles lors de la phase d'initialisation et à la dissimulation de commandes malveillantes, chaque étape nous rappelle que : bien que l'écosystème MCP soit puissant, 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 entraîner des risques de sécurité à l'échelle du système. La diversification des méthodes des attaquants, telles que le codage caché (, la pollution aléatoire et le remplacement de fonctions ), signifie également que les approches de protection traditionnelles doivent être complètement mises à jour.
La sécurité n'est jamais acquise d'un seul coup.
J'espère que cette démonstration servira d'avertissement à tous : que ce soit pour les développeurs ou les utilisateurs, il est essentiel de rester suffisamment vigilant vis-à-vis du système MCP, en prêtant attention à chaque interaction, chaque ligne de code et chaque valeur de retour. Ce n'est qu'en traitant chaque détail avec rigueur que l'on peut réellement construire un environnement MCP solide et sécurisé.
Ensuite, nous continuerons également à améliorer le script MasterMCP, à publier davantage de cas de test ciblés afin d'aider tout le monde à comprendre, pratiquer et renforcer la protection dans un environnement sécurisé.
Voir l'original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
7 J'aime
Récompense
7
5
Partager
Commentaire
0/400
HalfIsEmpty
· Il y a 3h
C'est trop sauvage, c'est pour apprendre aux gens à faire un Rug Pull, n'est-ce pas ?
Voir l'originalRépondre0
SchrodingerWallet
· 07-06 08:35
Accélérer l'effondrement du Mainnet
Voir l'originalRépondre0
ApeDegen
· 07-06 08:26
Il est recommandé que ce projet chute à zéro.
Voir l'originalRépondre0
MEVEye
· 07-06 08:12
mcp est vraiment devenu un terrain d'entraînement, c'est absurde.
Voir l'originalRépondre0
Ramen_Until_Rich
· 07-06 08:12
Il y a tant de vulnérabilités, il vaudrait mieux vérifier le code.
Démonstration complète des risques de sécurité MCP : de l'empoisonnement aux attaques cachées.
Poisonnement et manipulation cachés dans le système MCP : démonstration en direct
MCP (Modèle de Contexte du Protocole) Le système est actuellement encore dans une phase de développement précoce, l'environnement global est assez chaotique, et diverses méthodes d'attaque potentielles émergent sans cesse, rendant difficile la défense efficace des protocoles et outils existants. Pour aider la communauté à mieux comprendre et améliorer la sécurité de MCP, un outil open source nommé MasterMCP a vu le jour. Cet outil vise à aider les développeurs à identifier 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 cadre du système MCP, telles que la pollution d'informations, l'injection de commandes malveillantes discrètes et d'autres cas concrets. Tous les scripts utilisés dans les démonstrations 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'attaques basés sur ces scripts.
Aperçu de l'architecture globale
démonstration de l'attaque cible MC : Toolbox
Un certain site de plugins est l'un des sites de plugins MCP les plus populaires actuellement, rassemblant un grand nombre de listes MCP et d'utilisateurs actifs. L'outil de gestion MCP Toolbox, lancé par l'officiel, a été choisi 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 pour les tests de sécurité, avec une architecture modulaire qui comprend les modules clés suivants :
Pour reproduire de manière plus réaliste le scénario d'attaque, MasterMC intègre un module de simulation de service web local. Il construit rapidement un serveur HTTP simple via le framework FastAPI, simulant un environnement web courant. Ces pages semblent normales en surface, mais en réalité, elles cachent des charges malveillantes soigneusement conçues dans le code source de la page ou dans les réponses des interfaces.
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 ainsi le lecteur à comprendre de manière plus intuitive : même une page web apparemment ordinaire peut devenir une source de risque incitant un grand modèle à exécuter des opérations anormales.
MasterMCP utilise une approche modulaire pour s'étendre, facilitant l'ajout rapide de nouvelles méthodes d'attaque. Après son lancement, MasterMCP exécutera le service FastAPI du module précédent dans un sous-processus. ( Les lecteurs attentifs remarqueront qu'il existe déjà un risque de sécurité ici - des 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à amélioré la détection des opérations sensibles et représente une capacité opérationnelle relativement forte dans l'écosystème MCP actuel.
Cross-MCP appel malveillant
Cette démonstration comprend deux contenus : l'empoisonnement et les appels malveillants Cross-MCP.
attaque par empoisonnement de contenu web
Le curseur accède à un site de test local. C'est une page apparemment inoffensive sur "Delicious Cake World", que nous utilisons dans cette expérience pour simuler l'impact de l'accès d'un client de modèle large à un site malveillant.
Exécuter l'instruction:
Récupérer le contenu de
Les résultats montrent que le Curseur non seulement lit le contenu de la page web, mais renvoie également des données de configuration sensibles locales au serveur de test. Dans le code source, des mots-clés malveillants sont intégrés sous forme de commentaires HTML.
Bien que la méthode de commentaire soit relativement directe et facilement identifiable, 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'incitation malveillants ont été codés, ce qui rend l'empoisonnement de l'exp 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-clés en clair, l'attaque s'exécute toujours avec succès, le principe sera expliqué en détail dans les chapitres suivants.
MCP outils retour d'information empoisonnement
Ici, nous entrons la commande simulée ( selon les instructions du mot-clé MasterMCP. Cette commande n'a aucune signification réelle, mais vise à déclencher un MCP malveillant pour démontrer les opérations ultérieures du MCP malveillant ) :
obtenir beaucoup de pommes
On peut voir qu'après avoir déclenché la commande, le client a appelé Toolbox à travers MC et a réussi à ajouter un nouveau serveur MC.
En examinant le code du plugin, on peut constater que les données de retour contiennent déjà des charges utiles malveillantes encodées, rendant presque impossible pour l'utilisateur de détecter une anomalie.
attaque de pollution d'interface tierce
Cette démonstration vise principalement à rappeler à tous que, qu'il s'agisse de MCP malveillant ou non malveillant, lors de l'appel d'une API tierce, renvoyer directement les données tierces au 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 dans les données JSON renvoyées et ont réussi à déclencher une exécution malveillante.
Techniques de poisoning de phase d'initialisation de MCP
Cette démonstration comprend deux éléments : l'injection de mots-clés initiaux et les conflits de noms.
attaque de couverture de fonction malveillante
Ici, MasterMCP a écrit un outil avec le même nom de fonction remove_server que Toolbox, et a encodé des mots d'invite malveillants.
Exécuter la commande:
boîte à outils supprimer récupérer plugin serveur
Claude Desktop n'a pas appelé la méthode remove_server d'origine de toolbox, mais a déclenché la méthode homonyme fournie par MasterMCP.
Le principe est de mettre l'accent sur "les méthodes précédentes ont été abandonnées" afin d'inciter prioritairement le grand modèle à appeler des fonctions de couverture malveillantes.
ajouter une logique de vérification globale malveillante
Ici, MasterMCP a écrit un outil nommé banana, dont la fonction principale est de forcer l'exécution de cet outil pour un contrôle de sécurité avant que tous les autres outils ne soient lancés 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 "il est obligatoire d'exécuter le test de banana".
Techniques avancées pour masquer les mots d'avertissement malveillants
méthode de codage conviviale pour les grands modèles
En raison de la capacité d'analyse extrêmement forte du modèle de langage (LLM) pour les formats multilingues, cela est plutôt utilisé pour dissimuler des informations malveillantes, les méthodes couramment utilisées incluent :
Mécanisme de retour de charge malveillante aléatoire
Comme mentionné dans le chapitre deux, la pollution des interfaces tierces, lors de la demande de /random, renvoie à chaque fois de manière aléatoire une page avec une charge utile malveillante, ce qui augmente considérablement la difficulté de détection et de traçabilité.
Résumé
Grâce à cette démonstration pratique de MasterMCP, nous avons pu voir de manière intuitive les diverses vulnérabilités cachées dans le système du Model Context Protocol (MCP). Des injections de mots-clés simples, des appels inter-MCP, jusqu'aux attaques plus subtiles lors de la phase d'initialisation et à la dissimulation de commandes malveillantes, chaque étape nous rappelle que : bien que l'écosystème MCP soit puissant, 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 entraîner des risques de sécurité à l'échelle du système. La diversification des méthodes des attaquants, telles que le codage caché (, la pollution aléatoire et le remplacement de fonctions ), signifie également que les approches de protection traditionnelles doivent être complètement mises à jour.
La sécurité n'est jamais acquise d'un seul coup.
J'espère que cette démonstration servira d'avertissement à tous : que ce soit pour les développeurs ou les utilisateurs, il est essentiel de rester suffisamment vigilant vis-à-vis du système MCP, en prêtant attention à chaque interaction, chaque ligne de code et chaque valeur de retour. Ce n'est qu'en traitant chaque détail avec rigueur que l'on peut réellement construire un environnement MCP solide et sécurisé.
Ensuite, nous continuerons également à améliorer le script MasterMCP, à publier davantage de cas de test ciblés afin d'aider tout le monde à comprendre, pratiquer et renforcer la protection dans un environnement sécurisé.