Protegeix el teu sistema MCP: 11 riscos habituals i com fer-los front

Aquesta guia explica la seguretat de l'MCP i repassa 11 riscos habituals per als sistemes MCP, des de la injecció indirecta de prompts fins als servidors locals compromesos, així com les mesures pràctiques que ajuden a protegir-se de cadascun.

Diagram of how MCP works: the MCP host (the AI app) sends tool requests through an MCP client to an MCP server, which offers its tools and returns results to the host.

Els riscos de l'MCP es divideixen, en general, en tres categories: manipulació dels LLM, seguretat de les dades i dels accessos, i vulnerabilitats de la infraestructura.

Com que els servidors MCP sovint donen accés a una gran varietat de sistemes interns, el risc potencial per a la seguretat és alt. Tanmateix, la probabilitat depèn molt de la configuració.

Hi ha moltes mesures que les persones i les empreses poden prendre per garantir que els seus sistemes estiguin protegits, i els protocols sempre haurien de ser proporcionals a les capacitats i les dades que els servidors MCP connectats podrien exposar.

Què és l'MCP i què és la seguretat de l'MCP?

El Model Context Protocol (MCP) és un estàndard obert creat per Anthropic per connectar aplicacions basades en LLM (o amfitrions) amb sistemes externs.

Un sistema MCP té tres components principals: l'amfitrió, el client i el servidor. L'amfitrió, que sovint és un assistent d'IA, es connecta a un servidor MCP extern mitjançant un client. Aleshores pot enviar sol·licituds per executar funcionalitats externes (eines) o per recuperar dades (recursos) o prompts que s'afegeixen a la finestra de context de l'LLM.

La seguretat de l'MCP fa referència als protocols que protegeixen les connexions i els components d'un sistema MCP. Hi ha diversos reptes clau que són exclusius de l'MCP, com ara el fet que les aplicacions d'IA sovint tenen capacitats agèntiques i que es poden inserir instruccions malicioses als missatges.

Els problemes coneguts que no són específics de l'MCP, com ara la injecció de prompts, l'autenticació feble i les integracions de tercers poc segures, també comporten riscos. Com qualsevol sistema informàtic, l'MCP es protegeix amb una combinació de protocols procedimentals, com ara utilitzar només servidors de confiança, i de controls tècnics, com ara les passarel·les d'API.

Com de greus són les amenaces de l'MCP?

L'MCP s'ha convertit ràpidament en una tecnologia d'LLM popular, i moltes organitzacions i aplicacions per al consumidor l'utilitzen. Com que els servidors MCP són programes escrits en codi, tenen vulnerabilitats com qualsevol altra aplicació.

Tanmateix, quan les organitzacions utilitzen l'MCP en implementacions controlades, generalment és segur. Hi ha una gran diferència entre crear un sistema amb servidors de confiança i permisos verificats i connectar un agent autònom a una dotzena de servidors no verificats.

Amenaça núm. 1: injecció indirecta de prompts

Un atacant pot col·locar instruccions dirigides a l'LLM dins d'un document, una pàgina web o la sortida d'una eina que retorna un servidor MCP. Si l'amfitrió afegeix aquest material a la finestra de context, és possible que l'LLM el confongui amb instruccions legítimes.

A més, aquestes instruccions poden semblar apropiades a primera vista. Per exemple, una incidència de suport recuperada podria indicar a l'LLM que exporti registres confidencials de clients abans de generar una resposta.

Com protegir-se de la injecció indirecta de prompts

Normalment, les injeccions de prompts s'han de gestionar a nivell de l'amfitrió. El contingut extern s'ha d'etiquetar com a no fiable, i les sol·licituds d'informació confidencial han de requerir l'aprovació informada d'una persona que supervisi el procés. També poden ser útils les proves de seguretat que consisteixen a fer servir documents o dades malicioses per veure com responen l'amfitrió i l'LLM.

Amenaça núm. 2: enverinament d'eines i rug pulls

En un atac d'enverinament d'eines, s'afegeix codi maliciós a la descripció o a l'esquema d'una eina MCP. Això pot influir en l'LLM durant la fase de descobriment, quan l'MCP exposa per primera vegada les eines disponibles.

Un rug pull és un tipus especial d'enverinament d'eines en què es modifiquen les metadades aprovades. Aquesta forma d'enverinament d'eines pot canviar la manera com un model utilitza eines de confiança, en lloc d'invocar directament una eina maliciosa.

Com protegir-se de l'enverinament d'eines i dels rug pulls

L'amfitrió ha d'inspeccionar la definició completa de cada eina abans d'utilitzar-la i comparar-la amb una llista d'eines de confiança aprovades, per detectar així qualsevol canvi. Les comprovacions de paràmetres poden ajudar a identificar possibles capacitats perilloses i marcar-les.

Amenaça núm. 3: permisos excessius

És habitual que els usuaris concedeixin als servidors MCP i als LLM connectats (a través de l'amfitrió) més permisos dels necessaris per a una tasca. Per exemple, permisos d'escriptura quan n'hi hauria prou amb permisos de només lectura, o accés complet a un sistema intern de fitxers (com ara Google Drive).

Aquesta acumulació progressiva de permisos pot augmentar el radi d'impacte d'altres vulnerabilitats, com ara les crides malicioses a eines. És habitual que els permisos «se sumin» a mesura que els usuaris concedeixen privilegis en el seu treball diari amb eines d'IA en una empresa (acumulació de privilegis).

Com protegir-se dels permisos excessius

La manera més directa de protegir-se d'aquest problema és restringir els permisos i els àmbits d'OAuth (lectura, escriptura, accés complet, etc.). Les aprovacions dels usuaris, sobretot per a operacions sensibles, en són una part important, però els permisos també s'han de controlar a nivell de sistema (sistema operatiu, amfitrió MCP i servidor).

Amenaça núm. 4: autenticació i autorització febles

L'autenticació verifica la identitat dels usuaris o de les aplicacions que es connecten a un servidor MCP. L'autorització estableix a quines eines i recursos poden accedir.

Els servidors MCP mal configurats poden acceptar sol·licituds o tokens sense autenticar correctament els usuaris ni aplicar restriccions d'accés. A més, si la validació és feble, les credencials robades poden permetre l'accés a actors maliciosos.

Com protegir-se de l'autenticació i l'autorització febles

L'autenticació basada en OAuth per a servidors MCP remots, els tokens de curta durada i el control d'accés basat en rols (RBAS) són mesures que ajuden a mitigar una autorització feble. L'accés basat en rols és útil perquè impedeix que els usuaris accedeixin a dades i eines més enllà dels seus permisos, encara que el servidor mateix hi tingui accés.

Amenaça núm. 5: filtracions i ús indegut de credencials

Els servidors MCP utilitzen habitualment credencials com ara claus d'API i tokens d'accés d'OAuth per connectar-se a serveis externs. Si s'exposen o se'n fa un ús indegut, els atacants poden accedir a dades i funcionalitats sensibles.

Un exemple és el pas directe de tokens (token passthrough), en què un servidor MCP reenvia un token d'accés a un altre servei sense verificar que realment estigui destinat al servei receptor. Això, al seu torn, pot provocar filtracions si el servei receptor no té prou proteccions.

Com protegir-se de les filtracions i l'ús indegut de credencials

Els tokens de curta durada i d'abast limitat, juntament amb la rotació de credencials, són eficaços per limitar fins a quin punt els actors maliciosos poden utilitzar les dades filtrades. Les claus d'API i les credencials sempre s'han d'emmagatzemar de manera segura amb un gestor de secrets.

Amenaça núm. 6: atacs d'adjunt confús (confused deputy)

Un atac d'adjunt confús es produeix quan un atacant enganya una aplicació de confiança perquè utilitzi els seus permisos per dur a terme una acció que no ha autoritzat un usuari legítim. En aquest cas, el servidor MCP és l'adjunt.

L'atacant aprofitarà una vulnerabilitat del servidor MCP (com ara verificacions d'OAuth febles) per executar un procés maliciós, com ara una crida a una eina o una recuperació de dades.

Com protegir-se dels atacs d'adjunt confús

La validació de l'autorització, en què es verifica que cada crida a una eina pertany a un usuari concret, ajuda a limitar els atacs d'adjunt confús. A més, les accions sensibles, com ara les exportacions de dades, haurien de requerir una autorització explícita.

Amenaça núm. 7: servidors maliciosos i dependències compromeses

Els servidors MCP poden contenir codi maliciós (bàsicament són programes externs) o basar-se en dependències compromeses, com ara biblioteques de tercers. Es tracta d'un problema de la cadena de subministrament de programari, més que no pas d'un problema exclusiu de l'MCP.

Una manera senzilla en què això podria passar és que un atacant distribueixi una integració que sembli legítima. Un cop configurada, pot robar i reutilitzar credencials, accedir a dades sensibles i executar operacions no autoritzades.

Com protegir-se dels servidors maliciosos i de les dependències compromeses

Instal·la servidors MCP només de fonts de confiança i verificades. Si és possible, revisa'n el codi i comprova sempre les dependències externes. Assegura't que els servidors s'actualitzen i reben pedaços regularment.

Amenaça núm. 8: falsificació de sol·licituds del costat del servidor (SSRF)

La falsificació de sol·licituds del costat del servidor (SSRF) es produeix quan un atacant enganya un servidor MCP perquè enviï sol·licituds de xarxa a adreces internes a les quals l'usuari no tenia intenció d'accedir.

Això pot passar quan un servidor MCP exposa una eina que recupera informació d'un URL. Si un atacant pot influir en el paràmetre de l'URL, el pot canviar per l'adreça de xarxa que vulgui, com ara una API interna o un servei al núvol. Això pot fer que es recuperin dades sensibles i que potencialment quedin accessibles

Com protegir-se de la falsificació de sol·licituds del costat del servidor (SSRF)

Els servidors MCP sempre haurien de validar els URL, bloquejar l'accés a adreces de xarxa internes restringides i impedir l'accés de xarxa sortint. Les redireccions també haurien de seguir aquest protocol.

Amenaça núm. 9: segrest de sessions

El segrest de sessions consisteix en el fet que un atacant prengui el control d'una connexió activa entre un client MCP i un servidor.

Per exemple, l'atacant podria robar un identificador de sessió d'una aplicació MCP mal protegida (p. ex., un amfitrió o un servidor). Si el servidor MCP accepta aquest identificador, l'atacant pot arribar a fer crides a eines amb els permisos legítims de l'usuari.

Com protegir-se'n

El risc de segrest de sessions es pot reduir amb una verificació estricta de la identitat en totes les aplicacions d'un sistema MCP. El xifratge entre els clients MCP i els servidors remots també és essencial per evitar que es descobreixin els identificadors de sessió.

Amenaça núm. 10: atacs de confusió (mix-up)

En un atac de confusió (mix-up), l'atacant enganya un client MCP perquè enviï un codi d'autorització a un servidor d'autorització maliciós que se situa entre el client i el servidor MCP. Un servidor d'autorització és una aplicació que emet tokens d'accés d'OAuth després de comprovar que l'accés sol·licitat està autoritzat.

Si un amfitrió MCP es connecta a diversos serveis, cadascun amb un servidor d'autorització diferent, un atacant podria controlar-ne un (per exemple, registrant un servei maliciós) i fer que el client enviï al servidor maliciós un codi d'autorització emès per un servidor legítim. Aquesta confusió pot permetre a l'atacant suplantar l'aplicació autoritzada i accedir a serveis protegits.

Com protegir-se dels atacs de confusió

Els clients MCP haurien de verificar la identitat del servidor d'autorització durant tot el procés d'OAuth. Concretament, haurien de comparar l'identificador de l'emissor (iss) del servidor amb la identitat esperada i rebutjar les discrepàncies.

Amenaça núm. 11: servidors MCP locals compromesos

Molts servidors MCP s'executen a l'ordinador local de l'usuari, que pot instal·lar el servidor d'un tercer o crear-lo ell mateix. Si un atacant aconsegueix comprometre aquest servidor MCP local, pot arribar a accedir a gran part del sistema local.

Hi ha diverses maneres en què un atacant pot obtenir accés. Pot distribuir un servidor maliciós disfressat d'integració legítima, modificar la configuració d'un amfitrió MCP perquè emeti una ordre maliciosa o accedir a un servidor MCP que s'executa en un entorn amb controls de seguretat insuficients, per exemple mitjançant la revinculació de DNS (DNS rebinding), que enganya un navegador perquè enviï sol·licituds a un servei de localhost.

Com protegir-se dels servidors MCP locals compromesos

L'aïllament en entorns de proves (sandboxing) i els protocols estrictes de consentiment són importants quan s'utilitzen servidors MCP locals. Els servidors MCP només s'han d'instal·lar des de proveïdors de confiança, i els permisos del sistema operatiu han de restringir a quins directoris poden accedir.

Les vulnerabilitats de l'MCP sovint són amenaces antigues amb una aparença nova

Les vulnerabilitats de l'MCP sovint provenen de noves aplicacions de riscos i metodologies d'atac ja coneguts. L'MCP introdueix noves maneres perquè els atacants explotin aquestes vulnerabilitats mitjançant les interaccions entre els LLM, els servidors MCP i els serveis externs.

És cert, és clar, que existeixen amenaces específiques de l'MCP. Tanmateix, cal tenir present que els protocols de seguretat estàndard, com ara aplicar una autorització estricta, utilitzar proveïdors de confiança i protegir-se de les injeccions de prompts, contribuiran en gran manera a protegir qualsevol implementació de l'MCP.