En el vertiginoso avance de la inteligencia artificial, el Protocolo de Contexto de Modelo, conocido como MCP, se ha erigido como un elemento transformador que potencia las capacidades de los asistentes de IA al permitirles interactuar con fuentes externas de datos y herramientas diversas. Originado por Anthropic y liberado como proyecto open-source, MCP ha generado una rápida aceptación dentro de la comunidad tecnológica, brindando un marco estandarizado que conecta distintos componentes tanto locales como remotos para extender la funcionalidad de los modelos de lenguaje. Sin embargo, a pesar de sus beneficios y la innovación que representa, MCP introduce nuevos retos de seguridad que derivan principalmente de su arquitectura distribuida y la proliferación de identidades no humanas (NHIs) necesarias para que funcione correctamente. Estos NHIs manejan secretos o credenciales que permiten a los diversos componentes comunicarse y operar, pero a su vez, representan una superficie vulnerable de exposición y fuga de información sensible. Para entender mejor las implicaciones de seguridad del protocolo MCP es fundamental analizar su arquitectura, compuesta por cinco entidades clave: los hosts MCP, que son las aplicaciones o interfaces que solicitan tareas; los clientes MCP, que son los componentes que comunican directamente con los servidores usando el protocolo; los servidores MCP, que ofrecen herramientas y servicios; las fuentes de datos locales, que residen en el equipo del usuario; y los servicios remotos externos, generalmente APIs web o bases de datos conectadas.
En este ecosistema, el flujo de trabajo típico consiste en que un usuario plantea un requerimiento al host, quien a su vez decide si necesita ayuda externa para completar la tarea. Si es así, solicita al servidor MCP adecuado que ejecute una acción, como leer archivos, realizar consultas o generar gráficos, y devuelve los resultados para que el modelo de lenguaje pueda finalizar el análisis o respuesta. Este mecanismo recuerda a las arquitecturas microservicios, pero con la particularidad de que la IA orquesta el proceso. Un ejemplo práctico ilustraría a un analista financiero que pregunta a su asistente de IA sobre los resultados trimestrales de compañías tecnológicas. El host podría solicitar datos de mercado a un servidor remoto y emplear un servidor local para visualizar la información, mientras el modelo integraría ambos para entregar un informe completo.
El desafío de seguridad principal recae en los servidores MCP, los cuales se dividen en locales y remotos. Los locales manejan recursos sensibles del equipo, como archivos o acceso a la línea de comandos. La exposición a través de estos servidores puede resultar en ataques graves, desde la ejecución remota de código malicioso hasta escalación de privilegios, especialmente si los mecanismos de autenticación y autorización no son robustos. Por su parte, los servidores remotos requieren credenciales para conectarse con servicios externos y a menudo dependen de configuraciones que transmiten secretos a través de la red, incrementando el riesgo de intercepción o filtración, además de complicar la gestión segura de dichos secretos. La proliferación de NHIs en el entorno MCP no solo multiplica la cantidad de secretos necesarios para su operación, sino que aumenta el riesgo de exposición.
Estos secretos incluyen credenciales para APIs de modelos de lenguaje, accesos a servicios remotos, certificados digitales y tokens OAuth para autorización, cada uno con diferentes grados y tipos de impacto en caso de filtración. Un problema especialmente grave es cuando una clave privada de certificados de un servidor MCP se ve comprometida, ya que podría permitir que un atacante se haga pasar por dicho servidor y lleve a cabo ataques dirigidos a los componentes locales, generando potenciales brechas de seguridad devastadoras. La comunidad MCP está viendo un crecimiento en registros o repositorios similares a DockerHub, donde desarrolladores y usuarios comparten servidores MCP. La plataforma Smithery.ai es un ejemplo que albergaba más de 5,000 servidores vinculados a repositorios públicos en GitHub.
Un análisis reveló que aproximadamente un 5.2% de estos repositorios contenían secretos expuestos, una tasa ligeramente superior al promedio detectado en otros repositorios públicos, confirmando que MCP es ya una fuente emergente de filtraciones. Entre los secretos filtrados predominan tokens de acceso tipo Bearer y claves X-Api-Key, usados comúnmente para autenticación en APIs, lo que refleja el rol crítico que desempeñan los servidores MCP como nuevas superficies de ataque y exposición. Ante este panorama, tanto desarrolladores como usuarios de MCP deben adoptar medidas de seguridad rigurosas. Para el desarrollo de servidores, es esencial que los secretos no se incrusten en el código ni se almacenen en el servidor, sino que se provean por parte del cliente durante la interacción.
Además, la comunicación debe estar cifrada mediante TLS y debe evitarse el registro de información sensible. La validación y sanitización de las entradas recibidas es crucial para mitigar posibles ataques de inyección. Desde la perspectiva de los usuarios y las organizaciones, es indispensable efectuar evaluaciones de riesgo exhaustivas que consideren que MCP abre canales de comunicación que conectan servidores remotos con máquinas locales con acceso a capacidades sensibles. En muchos casos, estas vulnerabilidades pueden ser aceptadas si se controlan adecuadamente con aprobaciones manuales para acciones sensibles, limitando los comandos que los modelos de lenguaje puedan ejecutar y confinando servidores locales en entornos aislados o contenedores. Además, la protección de los secretos de cliente y la implementación de soluciones automáticas de detección de secretos puede ayudar a identificar fugas antes de que sean explotadas.