Analyse pratique de l'empoisonnement caché et de la manipulation dans le système MCP
MCP (Modèle de Contexte du Protocole) Le système est actuellement en phase de développement précoce, l'environnement global étant relativement chaotique, avec de nombreuses méthodes d'attaque potentielles émergentes, et les protocoles et outils existants étant difficiles à défendre efficacement. Pour aider la communauté à mieux comprendre et améliorer la sécurité de MCP, une équipe de sécurité a publié l'outil MasterMCP en open source, espérant qu'à travers des exercices d'attaque pratiques, les développeurs pourront détecter en temps voulu les vulnérabilités de sécurité dans la conception des produits, renforçant ainsi progressivement le projet MCP.
Cet article guidera les lecteurs à travers des exercices pratiques, en démontrant les types d'attaques courants dans le système MCP, tels que l'empoisonnement d'informations et l'injection de commandes malveillantes, avec des cas réels. Tous les scripts de démonstration seront également open source, permettant aux lecteurs de reproduire l'ensemble du processus dans un environnement sécurisé, voire de développer leurs propres plugins de test d'attaque basés sur ces scripts.
Vue d'ensemble de l'architecture
cible d'attaque de démonstration MC:Toolbox
Un site Web de plugins MCP bien connu est l'un des endroits les plus populaires pour les MCP, rassemblant une grande quantité de listes MCP et d'utilisateurs actifs. L'outil de gestion MCP Toolbox, lancé par l'officiel, a été sélectionné comme cible de test, principalement basé sur les points suivants :
Une base d'utilisateurs massive et 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 d'utilisation de MCP malveillant : MasterMCP
MasterMCP est un outil de simulation de MCP malveillant conçu spécialement 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 reproduire de manière plus réaliste les scénarios d'attaque, MasterMCP intègre un module de simulation de service web local. Grâce au cadre FastAPI, un serveur HTTP simple est rapidement mis en place pour simuler un environnement web courant. Ces pages semblent normales en surface, mais contiennent en réalité des charges malveillantes soigneusement conçues dans le code source de la page ou dans les réponses des interfaces.
Architecture MCP localisée et plugin
MasterMCP utilise une approche modulaire pour s'étendre, facilitant l'ajout rapide de nouvelles méthodes d'attaque par la suite. Une fois lancé, MasterMCP exécutera le service FastAPI mentionné ci-dessus dans un sous-processus.
Client de démonstration
Cursor : l'un des IDE de programmation assistée par l'IA les plus populaires au monde.
Claude Desktop : Client officiel de la personnalisation du protocole MCP 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à 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.
![Pratique : empoisonnement caché et manipulation dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-2fe451755dc3588ffc2ddbd7427dcf9b.webp(
Appel malveillant Cross-MCP
) attaque de pollution de contenu web
Injection de commentaires
Accéder au site de test local via le curseur, simulant l'impact de l'accès d'un client de grand modèle à un site malveillant.
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, des mots d'avertissement malveillants sont intégrés sous forme de commentaires HTML. Bien que cette méthode de commentaire soit plutôt explicite et facilement identifiable, elle peut déjà déclencher des opérations malveillantes.
![Pratique : empoisonnement caché et manipulation dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-0ebb45583f5d7c2e4a4b792a0bdc989d.webp(
Injection de commentaires de type codage
Accéder à la page /encode, c'est une page web qui semble ordinaire, mais les mots d'invite malveillants y sont codés, rendant l'empoisonnement plus discret, même en consultant le 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 est toujours exécutée avec succès.
![Pratique : empoisonnement et manipulation cachés dans le système MCP])https://img-cdn.gateio.im/webp-social/moments-3840e36661d61bbb0dcee6d5cf38d376.webp(
) Attaque de pollution d'interface tierce
Cette démonstration rappelle principalement que, qu'il s'agisse d'un MCP malveillant ou non, 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.
Exécuter la demande:
Récupérer json depuis /api/data
Résultat : des mots-clés malveillants ont été insérés dans les données JSON retournées et ont réussi à déclencher une exécution malveillante.
![Pratique : empoisonnement et manipulation cachés dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-33ec895deae947ebc284e846286ccf1c.webp(
Technique de poisoning lors de la phase d'initialisation de MC
) attaque de 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 :
outils retirer récupérer plugin serveur
Claude Desktop n'a pas appelé la méthode remove_server d'origine de toolbox, mais a plutôt déclenché la méthode homonyme fournie par MasterMCP.
Le principe est de souligner que "la méthode originale a été abandonnée" et d'inciter prioritairement le grand modèle à appeler une fonction malveillante de remplacement.
![Pratique : Poison et manipulation cachés dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-e16c8d753ef00ec06f0bf607dc188446.webp(
) Ajouter une logique de vérification globale malveillante
MasterMCP a écrit un outil 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 exécutés dans les invites.
Avant chaque exécution de la fonction, le système appelle en priorité le mécanisme de vérification banana. Cela est réalisé par l'injection logique globale en insistant à plusieurs reprises dans le code sur "la vérification banana doit être exécutée".
![Prise de position : empoisonnement et manipulation cachés dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-3e15b74bbdc0154ed8505c04345c4deb.webp(
Techniques avancées pour masquer les mots d'avertissement malveillants
) méthode de codage conviviale pour les grands modèles
En raison de la grande capacité d'analyse des modèles linguistiques sur les formats multilingues, cela est souvent utilisé pour cacher des informations malveillantes, les méthodes couramment utilisées incluent :
Environnement anglais : utiliser le codage Hex Byte
Dans un environnement chinois : utiliser l'encodage NCR ou l'encodage JavaScript
![Départ pratique : empoisonnement et manipulation cachés dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-cd87a6781e74c267c89e99e398e7499c.webp(
) Mécanisme de retour de charge utile malveillante aléatoire
Lorsque la requête /random est effectuée, elle renvoie à chaque fois une page avec une charge utile malveillante, augmentant considérablement la difficulté de détection et de traçage.
![Prise de position : Poison caché et manipulation dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-c5a25d6fa43a286a07b6a57c1a3f9605.webp(
Résumé
À travers 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 simples de prompts, des appels inter-MCP, aux attaques plus subtiles en phase d'initialisation et au masquage d'instructions malveillantes, chaque étape nous rappelle : 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 contamination des entrées peut déclencher des risques de sécurité au niveau du système entier. La diversification des méthodes des attaquants, telles que le codage caché ), la contamination aléatoire, et le remplacement de fonction (, 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 sonnette d'alarme à tous : que ce soit pour les développeurs ou les utilisateurs, il est essentiel de rester vigilant 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 chaque détail que nous pourrons véritablement établir un environnement MCP solide et sécurisé.
![En route pour la pratique : empoisonnement et manipulation cachés dans le système MCP])https://img-cdn.gateio.im/webp-social/moments-bf6d8976b54bebbec34699753f4dbb70.webp(
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.
17 J'aime
Récompense
17
3
Partager
Commentaire
0/400
MysteriousZhang
· 07-12 21:34
Ce bug est vraiment subtil ! Ceux qui s'occupent de la sécurité sont vraiment impitoyables.
Voir l'originalRépondre0
LiquidationKing
· 07-12 21:15
Cette vulnérabilité est vraiment séduisante
Voir l'originalRépondre0
HashBard
· 07-12 21:07
un autre jour, une autre exploitation... *sirote le thé en regardant mcp brûler*
Analyse des risques de sécurité du système MCP : démonstration pratique de l'empoisonnement dissimulé et du contrôle.
Analyse pratique de l'empoisonnement caché et de la manipulation dans le système MCP
MCP (Modèle de Contexte du Protocole) Le système est actuellement en phase de développement précoce, l'environnement global étant relativement chaotique, avec de nombreuses méthodes d'attaque potentielles émergentes, et les protocoles et outils existants étant difficiles à défendre efficacement. Pour aider la communauté à mieux comprendre et améliorer la sécurité de MCP, une équipe de sécurité a publié l'outil MasterMCP en open source, espérant qu'à travers des exercices d'attaque pratiques, les développeurs pourront détecter en temps voulu les vulnérabilités de sécurité dans la conception des produits, renforçant ainsi progressivement le projet MCP.
Cet article guidera les lecteurs à travers des exercices pratiques, en démontrant les types d'attaques courants dans le système MCP, tels que l'empoisonnement d'informations et l'injection de commandes malveillantes, avec des cas réels. Tous les scripts de démonstration seront également open source, permettant aux lecteurs de reproduire l'ensemble du processus dans un environnement sécurisé, voire de développer leurs propres plugins de test d'attaque basés sur ces scripts.
Vue d'ensemble de l'architecture
cible d'attaque de démonstration MC:Toolbox
Un site Web de plugins MCP bien connu est l'un des endroits les plus populaires pour les MCP, rassemblant une grande quantité de listes MCP et d'utilisateurs actifs. L'outil de gestion MCP Toolbox, lancé par l'officiel, a été sélectionné comme cible de test, principalement basé sur les points suivants :
démonstration d'utilisation de MCP malveillant : MasterMCP
MasterMCP est un outil de simulation de MCP malveillant conçu spécialement 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 les scénarios d'attaque, MasterMCP intègre un module de simulation de service web local. Grâce au cadre FastAPI, un serveur HTTP simple est rapidement mis en place pour simuler un environnement web courant. Ces pages semblent normales en surface, mais contiennent en réalité des charges malveillantes soigneusement conçues dans le code source de la page ou dans les réponses des interfaces.
MasterMCP utilise une approche modulaire pour s'étendre, facilitant l'ajout rapide de nouvelles méthodes d'attaque par la suite. Une fois lancé, MasterMCP exécutera le service FastAPI mentionné ci-dessus 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à 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.
![Pratique : empoisonnement caché et manipulation dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-2fe451755dc3588ffc2ddbd7427dcf9b.webp(
Appel malveillant Cross-MCP
) attaque de pollution de contenu web
Accéder au site de test local via le curseur, simulant l'impact de l'accès d'un client de grand modèle à un site malveillant.
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, des mots d'avertissement malveillants sont intégrés sous forme de commentaires HTML. Bien que cette méthode de commentaire soit plutôt explicite et facilement identifiable, elle peut déjà déclencher des opérations malveillantes.
![Pratique : empoisonnement caché et manipulation dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-0ebb45583f5d7c2e4a4b792a0bdc989d.webp(
Accéder à la page /encode, c'est une page web qui semble ordinaire, mais les mots d'invite malveillants y sont codés, rendant l'empoisonnement plus discret, même en consultant le 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 est toujours exécutée avec succès.
![Pratique : empoisonnement et manipulation cachés dans le système MCP])https://img-cdn.gateio.im/webp-social/moments-3840e36661d61bbb0dcee6d5cf38d376.webp(
) Attaque de pollution d'interface tierce
Cette démonstration rappelle principalement que, qu'il s'agisse d'un MCP malveillant ou non, 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.
Exécuter la demande:
Récupérer json depuis /api/data
Résultat : des mots-clés malveillants ont été insérés dans les données JSON retournées et ont réussi à déclencher une exécution malveillante.
![Pratique : empoisonnement et manipulation cachés dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-33ec895deae947ebc284e846286ccf1c.webp(
Technique de poisoning lors de la phase d'initialisation de MC
) attaque de 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 :
outils retirer récupérer plugin serveur
Claude Desktop n'a pas appelé la méthode remove_server d'origine de toolbox, mais a plutôt déclenché la méthode homonyme fournie par MasterMCP.
Le principe est de souligner que "la méthode originale a été abandonnée" et d'inciter prioritairement le grand modèle à appeler une fonction malveillante de remplacement.
![Pratique : Poison et manipulation cachés dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-e16c8d753ef00ec06f0bf607dc188446.webp(
) Ajouter une logique de vérification globale malveillante
MasterMCP a écrit un outil 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 exécutés dans les invites.
Avant chaque exécution de la fonction, le système appelle en priorité le mécanisme de vérification banana. Cela est réalisé par l'injection logique globale en insistant à plusieurs reprises dans le code sur "la vérification banana doit être exécutée".
![Prise de position : empoisonnement et manipulation cachés dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-3e15b74bbdc0154ed8505c04345c4deb.webp(
Techniques avancées pour masquer les mots d'avertissement malveillants
) méthode de codage conviviale pour les grands modèles
En raison de la grande capacité d'analyse des modèles linguistiques sur les formats multilingues, cela est souvent utilisé pour cacher des informations malveillantes, les méthodes couramment utilisées incluent :
![Départ pratique : empoisonnement et manipulation cachés dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-cd87a6781e74c267c89e99e398e7499c.webp(
) Mécanisme de retour de charge utile malveillante aléatoire
Lorsque la requête /random est effectuée, elle renvoie à chaque fois une page avec une charge utile malveillante, augmentant considérablement la difficulté de détection et de traçage.
![Prise de position : Poison caché et manipulation dans le système MCP]###https://img-cdn.gateio.im/webp-social/moments-c5a25d6fa43a286a07b6a57c1a3f9605.webp(
Résumé
À travers 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 simples de prompts, des appels inter-MCP, aux attaques plus subtiles en phase d'initialisation et au masquage d'instructions malveillantes, chaque étape nous rappelle : 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 contamination des entrées peut déclencher des risques de sécurité au niveau du système entier. La diversification des méthodes des attaquants, telles que le codage caché ), la contamination aléatoire, et le remplacement de fonction (, 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 sonnette d'alarme à tous : que ce soit pour les développeurs ou les utilisateurs, il est essentiel de rester vigilant 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 chaque détail que nous pourrons véritablement établir un environnement MCP solide et sécurisé.
![En route pour la pratique : empoisonnement et manipulation cachés dans le système MCP])https://img-cdn.gateio.im/webp-social/moments-bf6d8976b54bebbec34699753f4dbb70.webp(