Envenenamiento y manipulación encubiertos en el sistema MCP: demostración práctica
Actualmente, el MCP ( Model Context Protocol ) aún se encuentra en una etapa temprana de desarrollo, el entorno general es bastante caótico, y surgen constantemente diversas formas de ataque potencial, lo que dificulta la defensa efectiva de los protocolos y herramientas existentes. Para ayudar a la comunidad a comprender y mejorar la seguridad del MCP, se ha abierto recientemente la herramienta MasterMCP, que tiene como objetivo, a través de simulaciones de ataques reales, ayudar a identificar vulnerabilidades de seguridad en el diseño del producto y fortalecer gradualmente el proyecto MCP.
Este artículo guiará a los lectores a realizar prácticas, demostrando formas comunes de ataque bajo el sistema MCP, como envenenamiento de información, ocultación de instrucciones maliciosas y otros casos reales. Todos los scripts de demostración también se abrirán al público, los lectores podrán reproducir todo el proceso en un entorno seguro, e incluso desarrollar sus propios complementos de prueba de ataque basados en estos scripts.
Visión general de la arquitectura
objetivo de ataque de demostración MCP: Toolbox
smithery.ai es uno de los sitios web de plugins MCP más populares en la actualidad, que reúne una gran cantidad de listas de MCP y usuarios activos. Entre ellos, @smithery/toolbox es la herramienta de gestión de MCP lanzada oficialmente por el sitio.
Elegir Toolbox como objetivo de prueba, principalmente basado en los siguientes puntos:
La base de usuarios es amplia y representativa
Soporta la instalación automática de otros complementos, complementando algunas funcionalidades del cliente.
Contiene configuraciones sensibles ( como la clave API ), facilitando la demostración.
MCP malicioso de uso de demostración: MasterMCP
MasterMCP es una herramienta simulada de MCP malicioso diseñada específicamente para pruebas de seguridad, que utiliza una arquitectura basada en plugins e incluye los siguientes módulos clave:
Simulación de servicios de sitios web locales:
Para recrear de manera más realista el escenario de ataque, MasterMC tiene un módulo de simulación de servicio web local integrado. Utiliza el marco FastAPI para construir rápidamente un servidor HTTP sencillo, simulando un entorno web común. Estas páginas parecen normales en la superficie, pero en realidad ocultan cargas maliciosas cuidadosamente diseñadas en el código fuente de la página o en las respuestas de las interfaces.
De esta manera, podemos demostrar de forma completa las técnicas de ataque como la inyección de información y el ocultamiento de instrucciones en un entorno local seguro y controlado, ayudando a entender de manera más intuitiva: incluso una página web que parece normal puede convertirse en una fuente de riesgo que provoque que un modelo grande ejecute operaciones anómalas.
Arquitectura MCP local y modular
MasterMCP utiliza un enfoque modular para su expansión, facilitando la adición rápida de nuevos métodos de ataque. Una vez en funcionamiento, MasterMCP ejecutará el servicio FastAPI del módulo anterior en un subproceso. Si se observa con atención, se notará que ya existe un riesgo de seguridad aquí: los complementos locales pueden iniciar cualquier subproceso que no sea el esperado por MCP.
( cliente de demostración
Cursor: uno de los IDE de programación asistida por IA más populares en el mundo actual
Claude Desktop: Anthropic)MC protocolo de personalización ### cliente oficial
( modelo grande utilizado para demostración
Claude 3.7
Selecciona la versión 3.7 de Claude, ya que ha mejorado en la identificación de operaciones sensibles y representa una capacidad operativa bastante fuerte en el ecosistema actual de MCP.
![Práctica: Envenenamiento y manipulación encubiertos en el sistema MCP])https://img-cdn.gateio.im/webp-social/moments-3c65fb78f3a1d00f05d6f3d950931f1f.webp###
Llamada Maliciosa Cruzada de MCP
( ataque de envenenamiento de contenido web
Inyección de comentarios
Cursor accede al sitio web de prueba local.
Esta es una página que parece inofensiva sobre "Delicious Cake World", a través de este experimento, se simula el impacto de un cliente de modelo grande accediendo a un sitio web malicioso.
Ejecutar instrucción:
Obtener el contenido de
Los resultados muestran que Cursor no solo leyó el contenido de la página web, sino que también devolvió los datos de configuración sensibles locales al servidor de pruebas. En el código fuente, las palabras clave maliciosas están incrustadas en forma de comentarios HTML.
Aunque el método de anotación es bastante directo y fácil de reconocer, ya puede activar operaciones maliciosas.
![Práctica: Envenenamiento y manipulación encubiertos en el sistema MCP])https://img-cdn.gateio.im/webp-social/moments-2fe451755dc3588ffc2ddbd7427dcf9b.webp###
Inyección de comentarios de tipo codificado
Accede a la página /encode, que es una página web que se ve igual que el ejemplo anterior, pero en la que las palabras clave maliciosas han sido codificadas, lo que hace que el ataque de envenenamiento sea más oculto, incluso al acceder al código fuente de la página web, es difícil de detectar directamente.
Incluso si el código fuente no contiene palabras clave en texto claro, el ataque aún se ejecuta con éxito, y el principio específico se explicará en detalle en los siguientes capítulos.
( MCP herramienta devuelve información de envenenamiento
Según la descripción de las palabras clave de MasterMCP, ingrese el comando simulado ). Este comando no tiene significado real, sino que está destinado a activar un MCP malicioso para demostrar las operaciones posteriores ###:
conseguir muchas manzanas
Se puede ver que, después de activar el comando, el cliente llamó a Toolbox a través de MCP y agregó con éxito un nuevo servidor MCP.
Al revisar el código del complemento, se puede descubrir que los datos devueltos ya contienen una carga maliciosa procesada y codificada, lo que hace que sea casi imperceptible para el usuario.
( ataque de contaminación de interfaz de terceros
Esta demostración tiene como objetivo advertir que, ya sea que se trate de MCP maliciosos o no maliciosos, al llamar a una API de terceros, si se devuelve directamente los datos de terceros al contexto, esto puede tener graves consecuencias.
Ejecutar solicitud:
Obtener json de /api/data
Resultado: las palabras clave maliciosas fueron incrustadas en los datos JSON devueltos y activaron con éxito la ejecución maliciosa.
![Práctica: Envenenamiento y manipulación encubiertos en el sistema MCP])https://img-cdn.gateio.im/webp-social/moments-33ec895deae947ebc284e846286ccf1c.webp###
Técnica de envenenamiento en la fase de inicialización de MCP
( ataque de sobrescritura de funciones maliciosas
MasterMCP escribió una herramienta llamada remove_server, que utiliza la misma función que Toolbox, y codificó palabras clave maliciosas.
Ejecutar instrucciones:
eliminar plugin de fetch del servidor toolbox
Claude Desktop no llamó al método remove_server de toolbox original, sino que activó el método homónimo proporcionado por MasterMCP.
El principio es enfatizar que "el método original ha sido desechado", priorizando la inducción del modelo grande para llamar a funciones de sobreescritura maliciosas.
![Práctica: Envenenamiento encubierto y manipulación en el sistema MCP])https://img-cdn.gateio.im/webp-social/moments-e16c8d753ef00ec06f0bf607dc188446.webp###
( añadir lógica de verificación global maliciosa
MasterMCP escribió una herramienta de banana, y la función principal de esta herramienta es forzar que todas las herramientas se ejecuten después de realizar esta herramienta para una revisión de seguridad.
Antes de ejecutar la función, el sistema siempre llama primero al mecanismo de verificación de banana.
Esto se logra mediante la inyección de lógica global, enfatizando repetidamente en el código que "debe ejecutarse la detección de banana".
![Práctica: Envenenamiento y manipulación encubiertos en el sistema MCP])https://img-cdn.gateio.im/webp-social/moments-3e15b74bbdc0154ed8505c04345c4deb.webp###
Técnicas avanzadas para ocultar palabras clave maliciosas
( forma de codificación amigable para grandes modelos
Debido a que los grandes modelos de lenguaje tienen una fuerte capacidad de análisis de formatos multilingües, esto se utiliza para ocultar información maliciosa, los métodos comunes incluyen:
En un entorno en inglés: usar codificación Hex Byte
En un entorno chino: usar codificación NCR o codificación JavaScript
) mecanismo de retorno de carga maliciosa aleatoria
Al solicitar /random, se devuelve aleatoriamente una página con carga maliciosa cada vez, lo que aumenta considerablemente la dificultad de detección y rastreo.
![Práctica: Envenenamiento y manipulación encubiertos en el sistema MCP]###https://img-cdn.gateio.im/webp-social/moments-cd87a6781e74c267c89e99e398e7499c.webp###
Resumen
A través de la demostración práctica de MasterMCP, hemos visto de manera intuitiva los diversos riesgos de seguridad ocultos en el sistema del Model Context Protocol (MCP). Desde la inyección de palabras clave simples, llamadas cruzadas de MCP, hasta ataques en la fase de inicialización más encubiertos y ocultación de instrucciones maliciosas, cada etapa nos recuerda: aunque el ecosistema MCP es poderoso, también es frágil.
Especialmente en la actualidad, donde los grandes modelos interactúan cada vez más con complementos externos y API, una pequeña contaminación de la entrada puede provocar riesgos de seguridad a nivel del sistema. Además, la diversificación de los métodos de ataque, como la codificación oculta (, la contaminación aleatoria y la sobrescritura de funciones ), también significa que las ideas tradicionales de protección necesitan una actualización completa.
La seguridad nunca se logra de la noche a la mañana.
Espero que esta demostración pueda servir como una llamada de atención para todos: tanto desarrolladores como usuarios deben mantener un nivel adecuado de alerta sobre el sistema MCP, prestando atención a cada interacción, cada línea de código, cada valor de retorno. Solo tratando cada detalle con rigurosidad se puede construir un entorno MCP sólido y seguro.
El siguiente paso, también continuaremos mejorando el script MasterMCP, publicando más casos de prueba específicos de código abierto para ayudar a todos a comprender, practicar y fortalecer la protección en un entorno seguro.
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
12 me gusta
Recompensa
12
5
Compartir
Comentar
0/400
ponzi_poet
· 08-05 16:02
La cantidad de código no es lo suficientemente grande
Ver originalesResponder0
LayerZeroEnjoyer
· 08-05 15:45
La amenaza de seguridad es muy grave.
Ver originalesResponder0
OffchainWinner
· 08-05 15:42
Código abierto no tiene miedo a la crítica, ¿verdad?
Ver originalesResponder0
OneBlockAtATime
· 08-05 15:38
Esta vulnerabilidad es demasiado peligrosa, ¿verdad?
Ver originalesResponder0
Rekt_Recovery
· 08-05 15:35
El ataque de envenenamiento debe usarse con precaución.
Prácticas de riesgo de seguridad de MCP: técnicas encubiertas desde ataques de inyección hasta control global
Envenenamiento y manipulación encubiertos en el sistema MCP: demostración práctica
Actualmente, el MCP ( Model Context Protocol ) aún se encuentra en una etapa temprana de desarrollo, el entorno general es bastante caótico, y surgen constantemente diversas formas de ataque potencial, lo que dificulta la defensa efectiva de los protocolos y herramientas existentes. Para ayudar a la comunidad a comprender y mejorar la seguridad del MCP, se ha abierto recientemente la herramienta MasterMCP, que tiene como objetivo, a través de simulaciones de ataques reales, ayudar a identificar vulnerabilidades de seguridad en el diseño del producto y fortalecer gradualmente el proyecto MCP.
Este artículo guiará a los lectores a realizar prácticas, demostrando formas comunes de ataque bajo el sistema MCP, como envenenamiento de información, ocultación de instrucciones maliciosas y otros casos reales. Todos los scripts de demostración también se abrirán al público, los lectores podrán reproducir todo el proceso en un entorno seguro, e incluso desarrollar sus propios complementos de prueba de ataque basados en estos scripts.
Visión general de la arquitectura
objetivo de ataque de demostración MCP: Toolbox
smithery.ai es uno de los sitios web de plugins MCP más populares en la actualidad, que reúne una gran cantidad de listas de MCP y usuarios activos. Entre ellos, @smithery/toolbox es la herramienta de gestión de MCP lanzada oficialmente por el sitio.
Elegir Toolbox como objetivo de prueba, principalmente basado en los siguientes puntos:
MCP malicioso de uso de demostración: MasterMCP
MasterMCP es una herramienta simulada de MCP malicioso diseñada específicamente para pruebas de seguridad, que utiliza una arquitectura basada en plugins e incluye los siguientes módulos clave:
Para recrear de manera más realista el escenario de ataque, MasterMC tiene un módulo de simulación de servicio web local integrado. Utiliza el marco FastAPI para construir rápidamente un servidor HTTP sencillo, simulando un entorno web común. Estas páginas parecen normales en la superficie, pero en realidad ocultan cargas maliciosas cuidadosamente diseñadas en el código fuente de la página o en las respuestas de las interfaces.
De esta manera, podemos demostrar de forma completa las técnicas de ataque como la inyección de información y el ocultamiento de instrucciones en un entorno local seguro y controlado, ayudando a entender de manera más intuitiva: incluso una página web que parece normal puede convertirse en una fuente de riesgo que provoque que un modelo grande ejecute operaciones anómalas.
MasterMCP utiliza un enfoque modular para su expansión, facilitando la adición rápida de nuevos métodos de ataque. Una vez en funcionamiento, MasterMCP ejecutará el servicio FastAPI del módulo anterior en un subproceso. Si se observa con atención, se notará que ya existe un riesgo de seguridad aquí: los complementos locales pueden iniciar cualquier subproceso que no sea el esperado por MCP.
( cliente de demostración
( modelo grande utilizado para demostración
Selecciona la versión 3.7 de Claude, ya que ha mejorado en la identificación de operaciones sensibles y representa una capacidad operativa bastante fuerte en el ecosistema actual de MCP.
![Práctica: Envenenamiento y manipulación encubiertos en el sistema MCP])https://img-cdn.gateio.im/webp-social/moments-3c65fb78f3a1d00f05d6f3d950931f1f.webp###
Llamada Maliciosa Cruzada de MCP
( ataque de envenenamiento de contenido web
Cursor accede al sitio web de prueba local.
Esta es una página que parece inofensiva sobre "Delicious Cake World", a través de este experimento, se simula el impacto de un cliente de modelo grande accediendo a un sitio web malicioso.
Ejecutar instrucción: Obtener el contenido de
Los resultados muestran que Cursor no solo leyó el contenido de la página web, sino que también devolvió los datos de configuración sensibles locales al servidor de pruebas. En el código fuente, las palabras clave maliciosas están incrustadas en forma de comentarios HTML.
Aunque el método de anotación es bastante directo y fácil de reconocer, ya puede activar operaciones maliciosas.
![Práctica: Envenenamiento y manipulación encubiertos en el sistema MCP])https://img-cdn.gateio.im/webp-social/moments-2fe451755dc3588ffc2ddbd7427dcf9b.webp###
Accede a la página /encode, que es una página web que se ve igual que el ejemplo anterior, pero en la que las palabras clave maliciosas han sido codificadas, lo que hace que el ataque de envenenamiento sea más oculto, incluso al acceder al código fuente de la página web, es difícil de detectar directamente.
Incluso si el código fuente no contiene palabras clave en texto claro, el ataque aún se ejecuta con éxito, y el principio específico se explicará en detalle en los siguientes capítulos.
( MCP herramienta devuelve información de envenenamiento
Según la descripción de las palabras clave de MasterMCP, ingrese el comando simulado ). Este comando no tiene significado real, sino que está destinado a activar un MCP malicioso para demostrar las operaciones posteriores ###:
conseguir muchas manzanas
Se puede ver que, después de activar el comando, el cliente llamó a Toolbox a través de MCP y agregó con éxito un nuevo servidor MCP.
Al revisar el código del complemento, se puede descubrir que los datos devueltos ya contienen una carga maliciosa procesada y codificada, lo que hace que sea casi imperceptible para el usuario.
( ataque de contaminación de interfaz de terceros
Esta demostración tiene como objetivo advertir que, ya sea que se trate de MCP maliciosos o no maliciosos, al llamar a una API de terceros, si se devuelve directamente los datos de terceros al contexto, esto puede tener graves consecuencias.
Ejecutar solicitud: Obtener json de /api/data
Resultado: las palabras clave maliciosas fueron incrustadas en los datos JSON devueltos y activaron con éxito la ejecución maliciosa.
![Práctica: Envenenamiento y manipulación encubiertos en el sistema MCP])https://img-cdn.gateio.im/webp-social/moments-33ec895deae947ebc284e846286ccf1c.webp###
Técnica de envenenamiento en la fase de inicialización de MCP
( ataque de sobrescritura de funciones maliciosas
MasterMCP escribió una herramienta llamada remove_server, que utiliza la misma función que Toolbox, y codificó palabras clave maliciosas.
Ejecutar instrucciones: eliminar plugin de fetch del servidor toolbox
Claude Desktop no llamó al método remove_server de toolbox original, sino que activó el método homónimo proporcionado por MasterMCP.
El principio es enfatizar que "el método original ha sido desechado", priorizando la inducción del modelo grande para llamar a funciones de sobreescritura maliciosas.
![Práctica: Envenenamiento encubierto y manipulación en el sistema MCP])https://img-cdn.gateio.im/webp-social/moments-e16c8d753ef00ec06f0bf607dc188446.webp###
( añadir lógica de verificación global maliciosa
MasterMCP escribió una herramienta de banana, y la función principal de esta herramienta es forzar que todas las herramientas se ejecuten después de realizar esta herramienta para una revisión de seguridad.
Antes de ejecutar la función, el sistema siempre llama primero al mecanismo de verificación de banana.
Esto se logra mediante la inyección de lógica global, enfatizando repetidamente en el código que "debe ejecutarse la detección de banana".
![Práctica: Envenenamiento y manipulación encubiertos en el sistema MCP])https://img-cdn.gateio.im/webp-social/moments-3e15b74bbdc0154ed8505c04345c4deb.webp###
Técnicas avanzadas para ocultar palabras clave maliciosas
( forma de codificación amigable para grandes modelos
Debido a que los grandes modelos de lenguaje tienen una fuerte capacidad de análisis de formatos multilingües, esto se utiliza para ocultar información maliciosa, los métodos comunes incluyen:
) mecanismo de retorno de carga maliciosa aleatoria
Al solicitar /random, se devuelve aleatoriamente una página con carga maliciosa cada vez, lo que aumenta considerablemente la dificultad de detección y rastreo.
![Práctica: Envenenamiento y manipulación encubiertos en el sistema MCP]###https://img-cdn.gateio.im/webp-social/moments-cd87a6781e74c267c89e99e398e7499c.webp###
Resumen
A través de la demostración práctica de MasterMCP, hemos visto de manera intuitiva los diversos riesgos de seguridad ocultos en el sistema del Model Context Protocol (MCP). Desde la inyección de palabras clave simples, llamadas cruzadas de MCP, hasta ataques en la fase de inicialización más encubiertos y ocultación de instrucciones maliciosas, cada etapa nos recuerda: aunque el ecosistema MCP es poderoso, también es frágil.
Especialmente en la actualidad, donde los grandes modelos interactúan cada vez más con complementos externos y API, una pequeña contaminación de la entrada puede provocar riesgos de seguridad a nivel del sistema. Además, la diversificación de los métodos de ataque, como la codificación oculta (, la contaminación aleatoria y la sobrescritura de funciones ), también significa que las ideas tradicionales de protección necesitan una actualización completa.
La seguridad nunca se logra de la noche a la mañana.
Espero que esta demostración pueda servir como una llamada de atención para todos: tanto desarrolladores como usuarios deben mantener un nivel adecuado de alerta sobre el sistema MCP, prestando atención a cada interacción, cada línea de código, cada valor de retorno. Solo tratando cada detalle con rigurosidad se puede construir un entorno MCP sólido y seguro.
El siguiente paso, también continuaremos mejorando el script MasterMCP, publicando más casos de prueba específicos de código abierto para ayudar a todos a comprender, practicar y fortalecer la protección en un entorno seguro.