Top 10 Vulnérabilités MCP: les risques cachés des intégrations de l’IA

Lucas Morel

L’utilisation du protocole de contexte du modèle (MCP) augmente en popularité pour connecter les agents d’IA aux sources de données et à d’autres services. Mais il en va de même pour les vulnérabilités qui apportent des risques uniques aux systèmes agentiques.

Le protocole de contexte du modèle (MCP) gagne rapidement en popularité comme un moyen pour permettre aux assistants de l’IA de se connecter et de communiquer avec une gamme de sources de données, d’outils et de services qui peuvent mieux éclairer leurs actions, recommandations et décisions. Le protocole standardise cette communication, jetant ainsi une base plus forte pour l’agent AI.

Agissant similaire aux API, les serveurs MCP sont généralement assis devant un magasin ou un service de données, ce qui permet aux agents de tirer plus facilement les informations dont ils ont besoin, lorsqu’ils en ont besoin, sans frais d’intégration personnalisés. Les entreprises peuvent utiliser des serveurs MCP pour exposer leurs propres données à leurs propres processus d’IA, ou aux utilisateurs externes, et ils peuvent également utiliser des serveurs MCP prédéfinis pour se connecter à des services populaires tels que PayPal, Zapier et Shopify.

Mais les entreprises qui prévoient d’utiliser des serveurs MCP dans le cadre de leurs stratégies d’IA devraient être conscientes des risques qu’ils peuvent apporter. Et il y a beaucoup de risques et de vulnérabilités potentielles à surveiller. Voici les 10 problèmes les plus courants que les organisations peuvent rencontrer lors de l’utilisation de MCP.

Exposition aux données croisées

Semblable aux attaques de scripts inter-sites, l’exposition aux données croisées permet à un ensemble d’utilisateurs d’accéder aux données appartenant à un autre ensemble d’utilisateurs – équipes internes, partenaires commerciaux ou clients.

Le fait que cette vulnérabilité ait déjà été découverte dans la nature, dans une implémentation de serveur MCP d’une entreprise avertie, est un panneau d’avertissement à toute entreprise créant ses serveurs MCP.

Selon des chercheurs de Upguard qui ont découvert ce problème, la solution est de s’assurer que les serveurs MCP appliquent un isolement strict des locataires et un accès à moins de privialité.

Vivre des attaques d’IA

Un acteur de menace se faisant passer pour un employé, un partenaire commercial ou un client envoie une demande à un agent de soutien humain. Mais la demande contient une injection rapide cachée avec des instructions que seule une IA peut lire. Lorsque l’employé humain transmet la demande à son assistant AI, alors, en raison de son lien vers un serveur MCP, a accès à un outil qui le connecte aux données sensibles et aux processus métier. Cet accès peut désormais être exploité à des fins malveillantes.

Ce n’est pas une menace théorique mais réelle, et qui peut affecter même une entreprise avertie en technologie.

Une façon d’aider à prévenir cela consiste aux entreprises à se projeter en appliquant le moins de privilèges sur les actions de l’IA, les analystes invitent le contenu suspect en temps réel et maintiennent les journaux d’audit de l’activité MCP.

Empoisonnement à l’outil

La configuration d’un serveur MCP pour la première fois peut être délicate. Heureusement, il y en a une tonne de prêts à l’emploi. Les serveurs MCP répertorient actuellement plus de 15 000 dans son répertoire.

Mais si vous effectuez une recherche Google et téléchargez le premier serveur MCP que vous trouvez, rien ne garantit que ce serveur fera ce qu’il est censé.

En avril, Invariant Labs a démontré comment un serveur MCP malveillant pouvait extraire des informations d’autres systèmes, évitant les mesures de chiffrement et de sécurité, en ajoutant des instructions malveillantes au champ de description du serveur MCP.

Mais ce n’est pas seulement le champ de description qui peut contenir des instructions malveillantes, la surface d’attaque s’étend à toutes les informations générées par les serveurs MCP, qui comprend des éléments tels que les noms de fonction, les paramètres, les paramètres de paramètres, les champs et les types requis. Les serveurs MCP génèrent également d’autres messages, tels que des messages d’erreur ou des invites de suivi. Celles-ci peuvent également contenir des instructions malveillantes à suivre pour les agents d’IA.

Comment savez-vous si le téléchargement de votre serveur MCP est malveillant? Tout d’abord, vérifiez la source. Cela vient-il d’une organisation de confiance? Deuxièmement, regardez les autorisations qu’il demande. Si son objectif est de fournir des photos drôles de chats, il n’a pas besoin d’accéder à votre système de fichiers.

Enfin, si vous le pouvez, vérifiez son code source. Cela peut être délicat, mais il y a déjà des vendeurs qui essaient de comprendre cela. La sécurité des barres arrière, par exemple, a déjà connu sept mille serveurs MCP accessibles au public et les a analysés pour des risques de sécurité et a trouvé des cas de comportements suspects et malveillants.

Et il ne suffit pas de simplement vérifier un serveur MCP une fois, lorsqu’il est installé. Il y a un vecteur d’attaque bien connu dans la chaîne d’approvisionnement du logiciel, où les packages sont téléchargés, utilisés, se font confiance et sont ensuite mis à jour par de mauvais acteurs avec du code malveillant.

Selon Invariant Labs, qui appelle cela une attaque de «tir de tapis», cela peut également se produire avec les serveurs MCP. Un serveur MCP est mis à jour avec des fonctionnalités malveillantes, puis, après avoir fait ses actes maléfiques, il est à nouveau mis à jour et personne n’est le plus sage. « De telles violations pourraient passer inaperçues par la victime, avec seulement l’attaquant conscient du compromis », a déclaré le chercheur de Cyberark, Nil Ashkenazi.

Les flux d’agent toxiques via des plateformes de confiance

Un agent d’IA peut être manipulé dans la fuite de données ou exécuter du code malveillant via un système de confiance MCP Server en ajoutant une injection rapide à une plate-forme publique.

Les chercheurs ont démontré comment cela peut fonctionner avec un serveur GitHub MCP. Dans cette attaque, l’acteur de menace crée un nouveau problème sur le référentiel public, contenant une injection rapide. Une entreprise pourrait avoir un référentiel public pour collecter des rapports de bogues et son agent AI pourrait ensuite effectuer une instruction de routine telle que la vérification des problèmes ouverts sur le répension public en utilisant le serveur MCP de GitHub. Ensuite, l’agent AI lit l’injection rapide – comme une instruction pour collecter des données privées dans un autre référentiel GitHub privé auquel il a également accès via ce même serveur GitHub MCP. Le serveur GitHub n’est pas directement compromis mais T est utilisé comme un conduit pour mener les attaques.

Les chercheurs invariants ont utilisé le bureau Claude d’Anthropic pour démontrer ce vecteur d’attaque, qui, par défaut, oblige les utilisateurs à confirmer les appels d’outils individuels. « Cependant, de nombreux utilisateurs optent déjà pour une politique de confirmation » toujours « lors de l’utilisation d’agents », ont écrit les chercheurs.

Vol de jeton et prise de contrôle du compte

Si un attaquant est en mesure d’obtenir le jeton OAuth stocké par un serveur MCP, il peut créer sa propre instance de serveur MCP en utilisant ce jeton volé, selon un rapport de Pilier Security. Les jetons OAuth peuvent être volés s’ils sont stockés non cryptés dans les fichiers de configuration ou de code du serveur MCP, et l’attaquant y a accès via une porte dérobée, d’ingénierie sociale ou d’autres méthodes.

À Gmail, par exemple, l’attaquant serait alors en mesure d’accéder à l’ensemble de l’historique de Gmail de la victime, d’envoyer de nouveaux e-mails qui semblent provenir de la victime, de supprimer des e-mails, de rechercher des informations sensibles et de mettre en place des règles de transfert pour surveiller les communications futures.

« Contrairement aux compromis de compte traditionnel qui pourraient déclencher des notifications de connexion suspectes, l’utilisation d’un jeton volé via MCP peut apparaître comme un accès API légitime, ce qui rend la détection plus difficile », ont écrit les chercheurs.

Chaînage de composibilité

Un serveur MCP non contrôlé peut avoir des profondeurs cachées. Si vous téléchargez et utilisez un serveur MCP tiers et que vous ne vérifiez pas d’où proviennent ses données, il pourrait envoyer des demandes à un deuxième serveur MCP distant.

Cyberark appelle ce vecteur d’attaque de serveur MCP «chaînage de composibilité». Ce deuxième serveur MCP pourrait renvoyer une sortie valide plus des instructions malveillantes cachées, le premier serveur le fusionne avec ses propres réponses et envoie tout à l’agent d’IA, qui exécute ensuite les instructions malveillantes. Si vous avez des données sensibles stockées dans des variables d’environnement, elle pourrait être exfiltrée par les attaquants en utilisant cette méthode, sans que vous ne vous connectez directement au serveur MCP malveillant directement.

Un garde-corps de sécurité que les entreprises mettent fréquemment à la mise en œuvre est de nécessiter l’approbation humaine des actions prises par les agents de l’IA. Mais cela peut être une épée à double tranchant. Selon Palo Alto Networks, un serveur MCP malveillant pourrait inonder un agent d’IA et son utilisateur humain avec plusieurs demandes inoffensives, telles que plusieurs autorisations de lecture.

Après un certain temps, les utilisateurs commencent simplement à les approuver sans lire chacun en détail. À ce stade, le serveur MCP glisse dans une demande malveillante. « L’idée principale de cette attaque est similaire aux attaques de fatigue d’authentification multi-facteurs, où les utilisateurs, submergés par des invites d’authentification continues, peuvent par inadvertance accès à des entités non autorisées », ont déclaré les chercheurs.

Une variante de l’attaque de fatigue du consentement des utilisateurs est l’attaque d’échantillonnage, ce qui dans le contexte LLM signifie simplement générer du texte. Selon Cyberark, l’échantillonnage est une fonctionnalité MCP avancée qui permet au serveur MCP d’envoyer un message demandant une réponse à partir d’un LLM. Un humain est censé revoir le message avant qu’il ne soit transmis au LLM, mais les instructions malveillantes peuvent être enterrées profondément dans le message où ils sont faciles à manquer.

Par exemple, le serveur MCP malveillant pourrait dire au LLM de saisir toutes les variables environnementales qu’il peut et de les envoyer. Même si un humain dans la boucle examine le message d’échantillonnage avant qu’il ne se rende au LLM, les instructions malveillantes pourraient être enfouies profondément à l’intérieur d’un long mur de texte inoffensif. Et, lors du voyage de retour, si la réponse de la LLM est également longue et compliquée, encore une fois, la personne pourrait ne pas remarquer les informations sensibles cachées à l’intérieur.

Contournement de l’administrateur

Dans ce vecteur d’attaque, un serveur MCP est configuré de sorte qu’il ne nécessite pas de vérification d’identité comme dans le cas d’une entreprise configurant un serveur MCP pour son répertoire afin que les agents d’IA puissent facilement rechercher des informations au nom des utilisateurs.

Si l’utilisateur n’est autorisé que l’accès de bas niveau à ces informations, mais le serveur MCP ne vérifie pas l’identité de la personne qui fait la demande initiale, l’agent d’IA peut saisir plus que l’individu ne le permet. La demande pourrait provenir d’un initié mécontent, d’un curieux employé qui cherche à voir ce qu’ils peuvent utiliser leur agent d’IA pour découvrir, ou un attaquant externe qui a trouvé un autre moyen dans l’environnement de l’employé.

Et si ce serveur MCP est également exposé à des utilisateurs externes, tels que les partenaires commerciaux, les clients ou même le public, cette escalade de privilège pourrait entraîner de grands dommages.

Injection de commandement

Si un serveur MCP transmet une entrée utilisateur directement à d’autres systèmes sans validation appropriée, les utilisateurs peuvent injecter ses propres commandes d’une manière similaire à la façon dont les injections SQL fonctionnent. Les attaquants pourraient tester les vulnérabilités d’injection de commande sur tous les outils exposés par un serveur MCP.

Comme pour d’autres types d’attaques d’injection, les serveurs MCP ne doivent jamais transmettre une entrée utilisateur directement sur les commandes shell, utiliser la validation d’entrée appropriée et les commandes paramétrées.

Ombrage d’outils

Si un agent AI a accès à plusieurs serveurs MCP, un de ces serveurs peut inciter l’agent à utiliser un serveur différent de manière inappropriée. Un exemple est un serveur qui fournit des informations générales sur les symptômes médicaux et une autre qui a accès au système de facturation des patients.

« L’attaque d’observation peut amener l’agent à rediriger toutes les informations de facturation des patients vers l’adresse e-mail de l’attaquant », a déclaré Christian Posta, CTO mondial sur le terrain de sécurité Solo.io, dans ses recherches.

Le serveur MCP du système de facturation est sûr, sécurisé et fonctionne comme prévu. Le serveur MCP malveillant ne semble rien faire de mal, et le mauvais comportement peut ne pas laisser des traces évidentes dans les journaux d’audit. Mais l’agent d’IA commence soudainement à envoyer des informations sur la facturation des patients ou à les envoyer par d’autres opérations apparemment légitimes.