Introducción a Model Context Protocol (MCP)
Model Context Protocol [1] es un estándar abierto desarrollado por Anthropic [2] que busca estandarizar la forma en que las aplicaciones de inteligencia artificial, especialmente aquellas basadas en modelos grandes de lenguaje interactúan con fuentes de datos y herramientas externas.
Históricamente, los modelos grandes del lenguaje (LLM) están limitados al conocimiento que se les proporcionó durante su entrenamiento. Cuando un LLM necesita información en tiempo real, acceder a una base de datos privada, ejecutar código seguro o utilizar una API externa, el proceso es desordenado y ad-hoc. El MCP busca poner fin a esta fragmentación al definir un lenguaje común y estructurado para la orquestación de los modelos LLM.
El MCP se podría considerar una especificación o un conjunto de reglas que define cómo debe estructurarse la información externa para que el modelo pueda interpretarla de forma inequívoca y segura:
- Formatos estándar para el contexto: El protocolo establece estructuras de datos uniformes para presentar información externa al modelo.
- Herramientas: Cómo describir de manera formal la firma de una función para que el LLM pueda decidir si la necesita invocar.
- Seguridad y aislamiento: Al estandarizar la comunicación, el MCP facilita la implementación de salvaguardas. Por ejemplo, un framework puede utilizar el protocolo para asegurarse de que el modelo solo tenga acceso a las herramientas o datos que el desarrollador le ha permitido explícitamente, mejorando la seguridad y mitigando riesgos como el de inyección de prompt.
- Interoperabilidad: El objetivo final es permitir que una aplicación construida utilizando el MCP sea compatible con diferentes modelos de lenguaje (Claude, GPT, Gemini, Llama) sin necesidad de reescribir el código de orquestación.
Básicamente, el MCP transforma el LLM en un agente orquestado, capaz de razonar sobre qué acciones son necesarias para lograr un objetivo, ejecutar esas acciones utilizando herramientas externas y luego integrar los resultados de forma coherente en su respuesta final.
Introducción a OWASP MCP Top 10
OWASP MCP Top 10 [3] se trata de un framework de seguridad diseñado para abordar los desafíos de la interacción segura en sistemas que dependen en gran medida de modelos de inteligencia artificial, la gestión de estados y el intercambio de «contexto» entre microservicios o agentes de IA.
Este framework se centra en el perímetro de seguridad creado por la inferencia de modelos, la persistencia de datos contextuales y la orquestación. Su principal objetivo es identificar las vulnerabilidades inherentes a cómo se define, gestiona y transfiere el «contexto» operativo o de usuario a través de una arquitectura distribuida o basada en IA. Las principales amenazas que abordaría el MCP giran en torno a los siguientes casos:
- Integridad y sesgo del modelo: Asegurar que las entradas de contexto no puedan manipular la salida del modelo.
- Fuga de contexto: Prevenir que información sensible de una sesión de contexto se filtre a otra.
- Control de acceso al protocolo: Validar las transiciones de estado de contexto y los permisos de los microservicios.
Principales vulnerabilidades del MCP Top 10
Basándonos en la problemática de sistemas basados en contexto y modelos de inteligencia artificial distribuidos, las vulnerabilidades más críticas que conforman el MCP Top 10 son las siguientes [4]:
- MCP-1: Fuga del contexto de sesión: Consiste en la exposición de datos sensibles de un usuario o microservicio a un actor no autorizado debido a la gestión incorrecta del identificador de contexto. Por ejemplo, un atacante puede «adivinar» o manipular un identificador de contexto para acceder a la información de otro usuario en un modelo compartido.
- MCP-2: Inyección de datos contextuales: Un atacante puede inyectar datos maliciosos en la capa de contexto para manipular el comportamiento posterior de un microservicio, un modelo de inteligencia artificial o una decisión de autorización. Se trata de un riesgo similar al Prompt Injection en modelos grandes del lenguaje (LLM), pero dirigido a los datos de estado del contexto de los modelos para causar un fallo lógico o cambiar la decisión de un motor de reglas.
- MCP-3: Control de acceso del protocolo roto: Consiste en fallos en la validación de que un servicio que consume el protocolo tiene la autorización necesaria para solicitar o modificar un contexto de nivel superior. Por ejemplo, un microservicio con un nivel «bajo de seguridad» podría alterar un contexto utilizado por un microservicio de con un nivel «alto de seguridad» debido a una validación insuficiente del origen del protocolo.
- MCP-4: Exposición del estado del modelo: Consiste en la fuga de información sobre la arquitectura, pesos o datos de entrenamiento de un modelo a través de los metadatos o las respuestas del protocolo. Facilita ataques de inferencia del modelo o el entrenamiento de modelos adversarios.
- MCP-5: Persistencia insegura del contexto: Consiste en almacenar el historial del contexto de una sesión en una base de datos sin medidas de cifrado o con políticas de retención débiles desde el punto de vista de la seguridad.
- MCP-6: Imitación de herramientas y Shadow MCP: La imitación de herramientas implica que los ciberatacantes pueden crear herramientas MCP fraudulentas que imitan fielmente servicios de confianza. Sin una validación robusta, los agentes de IA pueden usar involuntariamente estas herramientas dañinas. La implementación de estrategias proactivas de detección de Shadow MCP garantiza que las herramientas no autorizadas sean descubiertas y eliminadas rápidamente, protegiendo los recursos de las organizaciones.
- MCP-7: Exposición de datos sensibles y robo de tokens: Los entornos MCP configurados incorrectamente y las prácticas inadecuadas de manejo de datos pueden llevar a la exposición de información sensible, incluidas claves API, tokens y credenciales. Estas vulnerabilidades aumentan el riesgo de filtraciones de datos, acceso no autorizado a recursos corporativos.
- MCP-8: Ataques de retirada de confianza (Rug Pull Attacks): Los ataques de «Rug Pull» ocurren cuando las herramientas MCP aparecen inicialmente como legítimas, pero de repente se vuelven maliciosas después de ganar la confianza del usuario y una adopción generalizada. Los atacantes explotan esta confianza para alterar abruptamente el comportamiento de la herramienta, robar datos sensibles, interrumpir operaciones comerciales críticas o infligir daños financieros antes de que los usuarios puedan responder eficazmente.
- MCP-9: Denegación de cartera/servicio (Denial of Wallet/Service): Las herramientas maliciosamente diseñadas o comprometidas dentro del ecosistema MCP pueden ser explotadas para consumir recursos excesivamente o abusar de las API de los servicios conectados. Esto puede llevar a costos financieros inesperados para la organización debido a los cargos por uso de API o causar interrupciones e indisponibilidad de servicios críticos de los que el agente de IA depende para sus operaciones dentro del entorno MCP integrado.
- MCP-10: Omisión de autenticación (Authentication Bypass): Los mecanismos de autenticación débiles, mal configurados o aplicados de manera inadecuada en los entornos MCP permiten a los atacantes eludir los controles de seguridad, suplantar a usuarios o servidores legítimos y obtener acceso no autorizado a sistemas sensibles. Las omisiones de autenticación pueden facilitar amplias brechas de seguridad y compromisos operacionales.
Auditorías basadas en el MCP
Una auditoría de seguridad basada en el Model Context Protocol (MCP) se enfocaría en las transiciones de estado y la integridad de los datos en los modelos de inteligencia artificial, requiriendo una metodología específica como la siguiente:
- Revisión de definición del contexto y el esquema: El proceso de auditoría comienza revisando cómo se definen y serializan los mensajes del protocolo (como gRPC o JSON/REST) y el «contexto» que encapsulan.
- Análisis del esquema: Se verifica el esquema de datos para asegurar que los campos con datos más sensibles estén etiquetados y que no se permiten tipos de datos arbitrarios que puedan explotarse mediante ataques de denegación de servicio.
- Mapeo de confianza: Se documenta qué microservicio es el «propietario» de cada segmento del contexto y qué nivel de confianza se le otorga. El objetivo es buscar código que no valide la fuente de la información contextual.
- Pruebas de mutación y fuga de contexto: Esta es la fase crítica de prueba en vivo, donde se intenta manipular el flujo del protocolo.
- Pruebas de inyección: Se utilizan proxies y herramientas de instrumentación para interceptar y modificar los mensajes del protocolo. Se inyectan comandos de SQL o datos malformados en los campos de contexto para ver si el microservicio de destino procesa el payload sin una sanitización adecuada.
- Pruebas de filtrado de contexto: El auditor simula dos usuarios (A y B) y manipula el Context ID del Usuario A para intentar obtener el historial o los datos del Usuario B. Esto implica revisar la lógica de aislamiento de sesiones en las bases de datos de caché o contexto.
- Evaluación de la resiliencia del modelo: Esta fase se centra en el modelo de inteligencia artificial o el motor de decisión que consume el contexto.
- Pruebas de datos adversarios: Se inyectan datos de contexto sutilmente modificados (ruido) para verificar si el modelo produce resultados inesperados o erróneos, evaluando la robustez del modelo contra la manipulación de entradas.
- Análisis de metadatos de respuesta: Se examinan las respuestas del protocolo para asegurar que no revelen detalles internos del modelo, como las tasas de confianza del modelo, versiones internas o nombres de features utilizados para el entrenamiento, que podrían utilizarse para ataques de ingeniería inversa.
Mejores prácticas de seguridad en Model Context Protocol (MCP)
Las principales defensas deben enfocarse en asegurar la cadena de suministro del contexto, desde su creación en un microservicio de origen hasta su consumo por un modelo de inteligencia artificial o un backend final, garantizando que todo el flujo esté protegido contra la manipulación (inyección de datos contextuales, MCP-2) y la filtración de información (fuga de contexto de sesión, MCP-1). Entre las mejores prácticas de seguridad podemos destacar:
- Aislamiento del contexto:
- Asegurar que cada contexto de sesión esté ligado al identificador de usuario autenticado y que este vínculo se valide en cada microservicio que acceda a él.
- Limitar la visibilidad de los datos del contexto solo a los microservicios que lo necesiten.
- Validación de entradas y sanitización:
- Implementar validación estricta de esquemas (JSON Schema, Protobuf Schema) en todas las entradas del protocolo.
- Tratar todos los datos recuperados del contexto como entradas no confiables hasta que hayan sido validadas y/o sanitizadas, especialmente antes de ser usados en consultas a bases de datos o en llamadas a funciones que contengan lógica de negocio.
- Control de acceso del protocolo:
- Utilizar un servicio de autorización centralizado para definir qué microservicios pueden crear, leer, actualizar o eliminar qué campos del contexto.
- Implementar autenticación basada en tokens entre microservicios para validar la identidad de los usuarios.
- Seguridad y resiliencia del modelo:
- Anonimizar o eliminar metadatos del modelo de las respuestas del protocolo que puedan facilitar la ingeniería inversa.
- Implementar monitorización de desviación de datos para detectar si un id contexto o un usuario específico está realizando envíos que causan desviaciones estadísticas anormales en la salida del modelo.
- Cifrado y caducidad del contexto:
- Cifrar todos los almacenes de persistencia de contexto como cachés y bases de datos.
- Establecer tiempos de vida (TTL) cortos y obligatorios para los contextos más sensibles. Implementar un mecanismo de revocación de contexto para forzar la eliminación inmediata al cerrar la sesión o al detectarse una anomalía.
Referencias
[1] https://modelcontextprotocol.io
[2] https://www.anthropic.com/news/model-context-protocol

