2 puntos por GN⁺ 2025-04-07 | 1 comentarios | Compartir por WhatsApp
  • MCP es un protocolo estándar para conectar LLM con herramientas, pero no incorpora seguridad por defecto.
  • Existen varias vulnerabilidades de seguridad, como inyección de comandos, envenenamiento de herramientas y manipulación de definiciones.
  • MCP es una estructura difícil de confiar porque carece de autenticación, cifrado y verificación de integridad.
  • Por ahora, la mejor respuesta es obtener visibilidad y control con herramientas como ScanMCP.

Qué es MCP y por qué importa

  • MCP significa Model Context Protocol y es un nuevo estándar sobre cómo los LLM como Claude, GPT y Cursor se integran con herramientas y datos.
  • Ofrece una forma de conexión estandarizada, al punto de ser llamado el "USB-C para agentes de IA".
  • A través de MCP, los agentes de IA pueden hacer lo siguiente:
    • Conectarse con herramientas mediante una API estandarizada
    • Mantener el estado de la sesión
    • Ejecutar comandos (con una libertad potencialmente excesiva)
    • Compartir contexto entre flujos de trabajo
  • Pero, por defecto, no incorpora seguridad.
  • Existe el riesgo de abrir canales laterales que permiten acceder al sistema sin que el usuario lo sepa.

Principales vulnerabilidades de seguridad en MCP

  • Vulnerabilidad de inyección de comandos (investigación de Equixly)

    • Incluso en 2025, siguen ocurriendo casos de ejecución remota de código (RCE) mediante inyección de comandos.
    • Según la investigación de Equixly, más del 43% de las implementaciones de servidores MCP usan llamadas inseguras al shell.
    • Un atacante puede incluir comandos de shell en los valores de entrada de una herramienta para ejecutar código remoto a través de un agente de confianza.
  • Envenenamiento de herramientas (Tool Poisoning, Invariant Labs)

    • Es un método en el que el atacante oculta instrucciones maliciosas dentro de la descripción de la herramienta.
    • El usuario no las ve, pero la IA las reconoce y las ejecuta tal cual.
    • Una herramienta que parece hacer una operación matemática simple en realidad podría leer claves SSH o archivos sensibles de configuración en el sistema del usuario.
  • Redefinición silenciosa de herramientas (Rug Pull)

    • Una herramienta puede cambiar su propia definición después de ser instalada.
    • Una herramienta que era normal el Día 1 puede convertirse el Día 7 en una herramienta para recolectar claves API del atacante.
    • Esta es una nueva forma de problema de seguridad de la cadena de suministro que ocurre dentro del LLM.
  • Sombreado cruzado de herramientas entre servidores

    • Cuando varios servidores MCP están conectados a un mismo agente, un servidor malicioso puede interceptar o sobrescribir llamadas destinadas a un servidor de confianza.
    • Como resultado, pueden ocurrir problemas como los siguientes:
      • Enviar correos al atacante fingiendo que se enviaron al usuario
      • Inyectar lógica oculta en una herramienta
      • Filtrar datos codificados

Por qué MCP todavía no es seguro

  • MCP prioriza lo siguiente:
    • ✅ Integración sencilla
    • ✅ Interfaz unificada
  • Pero le falta lo siguiente:
    • ❌ No hay un estándar de autenticación
    • ❌ No hay cifrado de contexto
    • ❌ No es posible verificar la integridad de las herramientas
  • El usuario no puede saber en qué descripción se basa realmente el agente para usar una herramienta.

Respuestas de seguridad que pueden aplicar desarrolladores y operadores de plataformas

  • Desarrolladores

    • Validación obligatoria de entradas
    • Fijar versiones (pinning) del servidor MCP y de las herramientas
    • Eliminar información sensible de las descripciones de herramientas
  • Operadores de plataformas

    • Mostrar al usuario todos los metadatos de las herramientas
    • Usar hashes de integridad al actualizar servidores
    • Aplicar seguridad de sesión de forma obligatoria
  • Usuarios

    • No conectarse a servidores MCP no confiables
    • Monitorear los logs de sesión como si fueran un entorno de producción
    • Vigilar actualizaciones sospechosas de herramientas

La propuesta detrás de ScanMCP.com

  • ScanMCP se propone como un escáner y panel que hace lo siguiente:
    • Auditar las herramientas MCP conectadas
    • Detectar riesgos como RCE, envenenamiento de herramientas y filtración de sesiones
    • Comparar y visualizar la información que ve el usuario vs. la que reconoce el agente
  • Puede ser útil para usuarios como los siguientes:
    • Equipos de seguridad de plataformas de agentes
    • Startups de infraestructura de IA
    • Desarrolladores independientes que quieren crear herramientas basadas en la confianza

Reflexión final

MCP es un protocolo poderoso, pero se está adoptando demasiado rápido mientras su madurez en seguridad de API sigue siendo insuficiente.
Hasta que se adopte un enfoque secure-by-default, herramientas como ScanMCP.com son la mejor forma de obtener visibilidad y control.

  • Conclusión: la "S" de MCP no significa Security. Pero debería hacerlo.

1 comentarios

 
GN⁺ 2025-04-07
Opiniones en Hacker News
  • Este post destaca y cita los escenarios de ataque explicados en la nota de seguridad publicada hace unos días por Invariant Labs (envenenamiento de herramientas, sombreado y rug pull de MCP). Soy el autor de esa entrada del blog

    • A diferencia de lo que mucha gente sospecha, el problema de seguridad de las llamadas a herramientas de LLM al estilo MCP no está en aislar distintas implementaciones de servidores MCP
    • Las implementaciones de servidores MCP que se ejecutan localmente deben ser verificadas por el gestor de paquetes usado para instalarlas (los servidores MCP remotos en realidad son más difíciles de verificar)
    • El problema aparece por una forma especial de inyección indirecta de prompts cuando se usa MCP en sistemas de agentes
    • Como el agente incluye las especificaciones de todos los servidores MCP instalados en el mismo contexto, un servidor MCP no confiable puede manipular fácilmente el comportamiento de otros servidores MCP (por ejemplo, uno que pueda acceder a una base de datos sensible). A esto lo llamamos sombreado de herramientas
    • Además, debido a la naturaleza dinámica de MCP, un servidor MCP puede cambiar el conjunto de herramientas que ofrece solo para ciertos usuarios. Esto significa que un servidor MCP puede volverse malicioso en cualquier momento
    • Los clientes MCP actuales, Claude y Cursor, no notifican estos cambios, lo que deja vulnerables al agente y al usuario
    • Quien tenga más interés puede revisar una entrada de blog más detallada en [1]. Llevamos mucho tiempo investigando y trabajando en seguridad de agentes en Invariant
    • También publicamos fragmentos de código para que cualquiera pueda experimentar, incluyendo un ataque de envenenamiento de herramientas contra un popular servidor MCP de WhatsApp [2]
  • La mayoría de estos ataques son otro ejemplo más de estar del lado equivocado de una esclusa de aire. No cruzan límites de privilegios; solo hacen de una manera extraña algo que ya podían hacer

    • Los servidores MCP ejecutan código a nivel de usuario, no hace falta engañar a una IA para que lea claves SSH. Simplemente puede leerlas
    • El resto es básicamente la misma queja que también podría hacerse sobre otras herramientas/ecosistemas de desarrollo (NPM o extensiones de VS Code)
  • El reto es imaginar un mejor diseño que:

      1. Tenga estándares de seguridad adecuados para que la gente no escriba artículos de "la S significa seguridad"
      1. Permita que los programas ofrezcan el mismo conjunto de capacidades que brinda hoy el MCP más útil, sin convertir funciones automáticas en algo que requiera confirmación manual del usuario ni, en general, anular el propósito de toda la idea
      1. No encierre todo en un marketplace propietario con guardianes corporativos
    • Me gustaría ver propuestas, porque hasta ahora lo único que he visto es el típico e inespecífico "¡¡¡MCP no es seguro!!!111". No es especialmente fácil cuando la gente olvida que la seguridad y la utilidad son fuerzas opuestas
  • Buen artículo, pero me pregunto si todo esto fue generado por IA

    • La foto de perfil parece generada con StableDiffusion, la cuenta fue creada hoy y no hay artículos anteriores
    • Tampoco pude encontrar otras referencias sobre Elena Cross
  • La O significa observabilidad. Esta semana estuve muy metido explorando y escribiendo servidores MCP

    • La mayoría de las implementaciones, incluida mi implementación de juguete, no tienen auditoría ni métricas. Claude guarda la salida de logs de los servidores MCP, pero eso es para depuración, no para DevOps/SecOps
    • Culturalmente, el problema que describe OP es un gran problema para la gente más blanda en lo técnico (muggles). En subreddits relacionados, la gente está feliz ejecutando programas MCP CLI en sus máquinas
    • Los comentarios de seguridad de OP son obvios para desarrolladores, pero esos usuarios no tienen perspectiva de cuán riesgoso es
    • La gente está aprendiendo sobre Docker, y Claude incluye su uso en los ejemplos. Pero la mayoría simplemente descarga y ejecuta el blob. La gente está codeando y ejecutando servidores MCP a ciegas
    • A medida que MCP se expanda, los frameworks y herramientas crecerán para soportar seguridad, observabilidad, etc. Esto es como construir la web a mediados de los 90
    • No relacionado con OP, pero mientras construía esto fue muy interesante escribir algo en Claude Desktop y disparar un breakpoint en VSCode
  • Correcto. Pensé lo mismo, aunque no profundicé cuando publiqué la nota

  • Incluso cuando el software usado no es malicioso y está implementado de forma segura, ¿cómo confirmar que se usa de la manera deseada?

    • Supongamos que hay un servidor MCP que puede modificar el sistema de archivos local y otro que modifica objetos en almacenamiento en la nube. ¿Cómo puede el usuario garantizar que el agente LLM haga la elección correcta?
    • Uno quiere dar muchas opciones y no vigilar cada acción, pero eso probablemente haga más probable que aparezcan más problemas
  • Más del 43% de las implementaciones de servidores MCP probadas por Equixly tenían llamadas inseguras al shell

    • Cómo es posible caer en esta trampa cada vez
  • Me pregunto qué es MCP. Intenté leer la documentación varias veces, pero no pude entender qué problema resuelve. Principalmente, qué tiene de especial para agentes de IA y qué no aplica a agentes deterministas que existen desde hace décadas

  • Yo había asumido que todo el propósito de MCP era que Anthropic pudiera husmear prompts y salidas para maximizar los datos de entrenamiento. Recién ahora me entero de que esto es middleware para todos los modelos de IA