Les vulnérabilités et démonstrations d'attaques du système MCP
MCP (Modèle de protocole contextuel) Le système est actuellement encore à un stade de développement précoce, l'environnement global est plutôt chaotique, et diverses méthodes d'attaque potentielles apparaissent sans cesse, rendant difficile la conception de protocoles et d'outils existants pour une défense efficace. Afin d'améliorer la sécurité de MCP, SlowMist a open-sourcé l'outil MasterMCP, qui aide à découvrir les vulnérabilités de sécurité dans la conception des produits grâce à des exercices d'attaque pratiques, renforçant ainsi le projet MCP.
Cet article démontrera les méthodes d'attaque courantes dans le cadre du système MCP, telles que l'empoisonnement d'informations, l'insertion de commandes malveillantes, ainsi que des cas réels. 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.
Aperçu de l'architecture globale
Attaque de démonstration cible MC:Toolbox
smithery.ai est l'un des sites de plugins MCP actuellement populaires, rassemblant une grande liste de MCP et des utilisateurs actifs. Parmi eux, @smithery/toolbox est l'outil de gestion MCP lancé par l'officiel.
Choisir Toolbox comme cible de test est principalement basé sur :
Une base d'utilisateurs importante et représentative
Prise en charge 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 d'utilisation de MCP malveillant : MasterMCP
MasterMCP est un outil de simulation de MCP malveillant développé par SlowMist spécifiquement pour les tests de sécurité, conçu avec une architecture modulaire et comprenant les modules clés suivants :
Simulation de service de site web local :
Le module de simulation de service de site Web local intégré dans MasterMCP permet de créer rapidement un serveur HTTP simple via le framework FastAPI, simulant un environnement Web courant. Ces pages semblent normales, mais contiennent en réalité des charges utiles malveillantes soigneusement conçues dans le code source ou les réponses d'interface.
Architecture MCP plugin localisée
MasterMCP utilise une approche modulaire pour s'étendre, ce qui facilite l'ajout rapide de nouvelles méthodes d'attaque. Une fois lancé, MasterMCP exécutera le service FastAPI du module précédent dans un sous-processus.
client de démonstration
Cursor: l'un des IDE de programmation assistée par IA les plus populaires au monde.
Claude Desktop: Client officiel d'Anthropic
modèle de grande taille utilisé pour la démonstration
Claude 3.7
Choisissez la version Claude 3.7, car elle a déjà des améliorations dans la détection des opérations sensibles, tout en représentant une capacité opérationnelle relativement forte dans l'écosystème MCP actuel.
Cross-MCP Invocation malveillante
Cette démonstration contient deux éléments : l'empoisonnement et les appels malveillants Cross-MCP.
attaque de pollution de contenu de page web
Injection de commentaires
Accédez au site de test local avec le curseur, c'est une page "Delicious Cake World" qui semble inoffensive.
Exécuter l'instruction :
Récupérez le contenu de
Les résultats montrent que Cursor 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-clés malveillants sont intégrés sous forme de commentaires HTML.
Injection de commentaires codés
Accédez à la page /encode, c'est une page web qui semble identique, mais où les mots d'invite malveillants ont été codés, rendant l'exp de contamination plus discret, même l'accès au code source de la page web rend difficile la détection directe.
Même si le code source ne contient pas de mots-clés en clair, l'attaque réussit toujours.
Attaque par 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, si les données tierces sont directement renvoyées au contexte, cela peut avoir des conséquences graves.
Exécuter la demande:
Récupérer le json depuis /api/data
Résultat : des mots-clés malveillants ont été intégrés dans les données JSON retournées et ont réussi à déclencher une exécution malveillante.
Techniques de poisoning lors de l'étape d'initialisation de MCP
Cette démonstration contient deux éléments : l'injection de mots d'invite initiaux et les conflits de noms.
attaque par couverture 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'invite malveillants cachés.
Exécuter l'instruction:
boîte à outils supprimer récupérer 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 "les méthodes précédentes ont été abandonnées", en incitant en priorité le grand modèle à appeler des fonctions malveillantes de remplacement.
Ajouter une logique de vérification globale malveillante
MasterMCP a écrit l'outil banana, dont la fonction principale est de forcer tous les outils à exécuter cet outil pour un contrôle de sécurité avant de fonctionner dans les invites.
Avant chaque exécution de la fonction, le système appelle d'abord le mécanisme de vérification de banana. Cela est réalisé par une injection logique globale en insistant à plusieurs reprises dans le code sur "la vérification de banana doit être exécutée".
Techniques avancées pour masquer les mots d'invite malveillants
méthode de codage conviviale pour les grands modèles
En raison de la forte capacité d'analyse des formats multilingues des grands modèles de langage, cela est souvent exploité pour cacher des informations malveillantes, les méthodes couramment utilisées incluent :
Environnement anglais : utiliser le codage Hex Byte
Environnement chinois : utiliser le codage NCR ou le codage JavaScript
Mécanisme de retour de charge malveillante aléatoire
Lorsqu'on demande /random, une page avec une charge utile malveillante est retournée aléatoirement à chaque fois, ce qui augmente considérablement la difficulté de détection et de traçabilité.
Résumé
Grâce à la démonstration pratique de MasterMCP, nous avons pu voir directement les diverses vulnérabilités cachées dans le système MCP. Des injections simples de mots-clés, des appels entre MCP, jusqu'aux attaques plus discrètes durant la phase d'initialisation et à la dissimulation d'instructions malveillantes, chaque étape nous rappelle que, bien que l'écosystème MCP soit puissant, il est également fragile.
Surtout, avec les grands modèles interagissant 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é au niveau du système. La diversification des méthodes des attaquants, comme le codage caché (, la pollution aléatoire et le dépassement de fonction ), signifie que les approches de protection traditionnelles doivent être entièrement mises à jour.
J'espère que cette présentation pourra servir de sonnette d'alarme pour tout le monde : les développeurs et les utilisateurs doivent rester vigilants vis-à-vis du système MCP, en prêtant attention à chaque interaction, chaque ligne de code, chaque valeur de retour. Ce n'est qu'en étant rigoureux sur les détails que nous pourrons construire un environnement MCP solide et sécurisé.
SlowMist continuera à améliorer le script MasterMCP, à ouvrir davantage de cas de test ciblés pour aider à comprendre, simuler et renforcer la protection dans un environnement sécurisé. Le contenu pertinent a été synchronisé sur GitHub, les lecteurs intéressés peuvent consulter.
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.
10 J'aime
Récompense
10
6
Partager
Commentaire
0/400
screenshot_gains
· Il y a 6h
gm a encore une nouvelle vulnérabilité
Voir l'originalRépondre0
AirdropSweaterFan
· Il y a 6h
Attention à ne pas se faire prendre pour des cons !
Voir l'originalRépondre0
ContractCollector
· Il y a 6h
MCP a été envoyé
Voir l'originalRépondre0
ForkItAll
· Il y a 6h
Tout est devenu noir, que dire de plus?
Voir l'originalRépondre0
MissedAirdropBro
· Il y a 6h
Les corbillards sont plus stables que ça.
Voir l'originalRépondre0
MEVSandwichVictim
· Il y a 6h
Encore pris pour des idiots ? Prendre les gens pour des idiots n'est rien comparé à prendre ces pigeons~
MasterMCP révèle les vulnérabilités de sécurité de MCP et démontre en pratique plusieurs méthodes d'attaque.
Les vulnérabilités et démonstrations d'attaques du système MCP
MCP (Modèle de protocole contextuel) Le système est actuellement encore à un stade de développement précoce, l'environnement global est plutôt chaotique, et diverses méthodes d'attaque potentielles apparaissent sans cesse, rendant difficile la conception de protocoles et d'outils existants pour une défense efficace. Afin d'améliorer la sécurité de MCP, SlowMist a open-sourcé l'outil MasterMCP, qui aide à découvrir les vulnérabilités de sécurité dans la conception des produits grâce à des exercices d'attaque pratiques, renforçant ainsi le projet MCP.
Cet article démontrera les méthodes d'attaque courantes dans le cadre du système MCP, telles que l'empoisonnement d'informations, l'insertion de commandes malveillantes, ainsi que des cas réels. 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.
Aperçu de l'architecture globale
Attaque de démonstration cible MC:Toolbox
smithery.ai est l'un des sites de plugins MCP actuellement populaires, rassemblant une grande liste de MCP et des utilisateurs actifs. Parmi eux, @smithery/toolbox est l'outil de gestion MCP lancé par l'officiel.
Choisir Toolbox comme cible de test est principalement basé sur :
démonstration d'utilisation de MCP malveillant : MasterMCP
MasterMCP est un outil de simulation de MCP malveillant développé par SlowMist spécifiquement pour les tests de sécurité, conçu avec une architecture modulaire et comprenant les modules clés suivants :
Le module de simulation de service de site Web local intégré dans MasterMCP permet de créer rapidement un serveur HTTP simple via le framework FastAPI, simulant un environnement Web courant. Ces pages semblent normales, mais contiennent en réalité des charges utiles malveillantes soigneusement conçues dans le code source ou les réponses d'interface.
MasterMCP utilise une approche modulaire pour s'étendre, ce qui facilite l'ajout rapide de nouvelles méthodes d'attaque. Une fois lancé, MasterMCP exécutera le service FastAPI du module précédent dans un sous-processus.
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à des améliorations dans la détection des opérations sensibles, tout en représentant une capacité opérationnelle relativement forte dans l'écosystème MCP actuel.
Cross-MCP Invocation malveillante
Cette démonstration contient deux éléments : l'empoisonnement et les appels malveillants Cross-MCP.
attaque de pollution de contenu de page web
Accédez au site de test local avec le curseur, c'est une page "Delicious Cake World" qui semble inoffensive.
Exécuter l'instruction : Récupérez le contenu de
Les résultats montrent que Cursor 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-clés malveillants sont intégrés sous forme de commentaires HTML.
Accédez à la page /encode, c'est une page web qui semble identique, mais où les mots d'invite malveillants ont été codés, rendant l'exp de contamination plus discret, même l'accès au code source de la page web rend difficile la détection directe.
Même si le code source ne contient pas de mots-clés en clair, l'attaque réussit toujours.
Attaque par 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, si les données tierces sont directement renvoyées au contexte, cela peut avoir des conséquences graves.
Exécuter la demande: Récupérer le json depuis /api/data
Résultat : des mots-clés malveillants ont été intégrés dans les données JSON retournées et ont réussi à déclencher une exécution malveillante.
Techniques de poisoning lors de l'étape d'initialisation de MCP
Cette démonstration contient deux éléments : l'injection de mots d'invite initiaux et les conflits de noms.
attaque par couverture 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'invite malveillants cachés.
Exécuter l'instruction: boîte à outils supprimer récupérer 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 "les méthodes précédentes ont été abandonnées", en incitant en priorité le grand modèle à appeler des fonctions malveillantes de remplacement.
Ajouter une logique de vérification globale malveillante
MasterMCP a écrit l'outil banana, dont la fonction principale est de forcer tous les outils à exécuter cet outil pour un contrôle de sécurité avant de fonctionner dans les invites.
Avant chaque exécution de la fonction, le système appelle d'abord le mécanisme de vérification de banana. Cela est réalisé par une injection logique globale en insistant à plusieurs reprises dans le code sur "la vérification de banana doit être exécutée".
Techniques avancées pour masquer les mots d'invite malveillants
méthode de codage conviviale pour les grands modèles
En raison de la forte capacité d'analyse des formats multilingues des grands modèles de langage, cela est souvent exploité pour cacher des informations malveillantes, les méthodes couramment utilisées incluent :
Mécanisme de retour de charge malveillante aléatoire
Lorsqu'on demande /random, une page avec une charge utile malveillante est retournée aléatoirement à chaque fois, ce qui augmente considérablement la difficulté de détection et de traçabilité.
Résumé
Grâce à la démonstration pratique de MasterMCP, nous avons pu voir directement les diverses vulnérabilités cachées dans le système MCP. Des injections simples de mots-clés, des appels entre MCP, jusqu'aux attaques plus discrètes durant la phase d'initialisation et à la dissimulation d'instructions malveillantes, chaque étape nous rappelle que, bien que l'écosystème MCP soit puissant, il est également fragile.
Surtout, avec les grands modèles interagissant 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é au niveau du système. La diversification des méthodes des attaquants, comme le codage caché (, la pollution aléatoire et le dépassement de fonction ), signifie que les approches de protection traditionnelles doivent être entièrement mises à jour.
J'espère que cette présentation pourra servir de sonnette d'alarme pour tout le monde : les développeurs et les utilisateurs doivent rester vigilants vis-à-vis du système MCP, en prêtant attention à chaque interaction, chaque ligne de code, chaque valeur de retour. Ce n'est qu'en étant rigoureux sur les détails que nous pourrons construire un environnement MCP solide et sécurisé.
SlowMist continuera à améliorer le script MasterMCP, à ouvrir davantage de cas de test ciblés pour aider à comprendre, simuler et renforcer la protection dans un environnement sécurisé. Le contenu pertinent a été synchronisé sur GitHub, les lecteurs intéressés peuvent consulter.