Ir al contenido
Guide

Shadow MCP: el problema empresarial para el que nadie presupuestado

| 8 min read

Los empleados están conectando servidores MCP no autorizados a Claude y Cursor. Una regla de puerta de enlace, una consulta de inventario y una plantilla de política para adelantarse.

Dark network lines representing shadow traffic and MCP detection
Photo by Markus Spiske on Unsplash

Shadow IT solía significar que un gerente de marketing gastaba Dropbox. Shadow SaaS significó un equipo de producto registrarse en Figma con una tarjeta de crédito personal. Ambos estaban contenidos: las herramientas se ejecutaban en un navegador. pestaña, tocó datos que el usuario ya podía ver y no pudo pasar el límite de la pestaña. MCP en la sombra rompe esa contención. Un empleado cambia un servidor MCP comunitario a Cursor o Claude Desktop y ahora un agente puede leer claves SSH, ejecutar comandos de shell y hablar con producción bases de datos a través de las credenciales ambientales del usuario.

Cloudflare Gateway envió reglas compatibles con MCP en abril de 2026. Zscaler y Netskope siguieron en un plazo de un año. semana. Las herramientas se pusieron de moda porque los equipos de seguridad empresarial empezaron a preguntar. Esta publicación cubre las cuatro cosas que debe hacer este trimestre: comprender el modelo de amenazas, crear detección, enviar un inventariar un script, obtener una lista de permitidos y publicar una política de tres páginas.

Por qué Shadow MCP es peor que Shadow SaaS

Una pestaña SaaS maliciosa en un navegador se ejecuta en una zona de pruebas. No puede leer la clave privada SSH del usuario. eso No se puede generar un caparazón. No puede abrir una conexión TCP a su Postgres de producción. el navegador La política del mismo origen y el entorno limitado del sistema operativo llevan la contención.

Un servidor MCP se ejecuta fuera del navegador. Claude Desktop y Cursor generan servidores stdio como hijos procesos en la máquina del usuario con los permisos del usuario. Un servidor HTTP MCP se conecta con cualquier credencial que el usuario pegue. Luego, el agente llama a las herramientas de ese servidor como parte de su bucle normal. Desde el punto de vista del sistema operativo, la llamada a la herramienta es cuando el usuario abre una archivo o ejecutar un comando.

Diferencia concreta: un servidor comunitario GitHub MCP extraído de un paquete npm aleatorio y agregado a ~/.cursor/mcp.json puede exfiltrar cualquier cosa en ~/.ssh/, cada .env archivo en su directorio de inicio y todo el contenido de cualquier repositorio que el usuario ha comprobado. El usuario lo aprobó una vez. El agente nunca vuelve a preguntar. Un pícaro basado en navegador La herramienta no puede hacer nada de eso.

Agregue un detalle más: la VPN del usuario. Si la computadora portátil está en la VPN corporativa cuando se ejecuta el agente, el servidor MCP hereda esa posición de red. Servicios internos, bases de datos provisionales y Todos los puntos finales de metadatos se vuelven accesibles. El servidor no necesitaba hacer phishing a nadie. solo esperó para que la VPN se conecte.

Encontrar Shadow MCP en su red

La detección funciona en tres capas: el punto final, la puerta de enlace de salida y el DNS. quieres señal de los tres porque cada uno detecta un modo de falla diferente.

En el punto final, esté atento a los procesos secundarios que genera Claude Desktop o Cursor. ambos clientes Invocar servidores stdio como subprocesos con nombres de procesos principales conocidos. Su EDR (CrowdStrike, SentinelOne, Defender for Endpoint) puede alertar sobre cualquier árbol de procesos con raíz en Claude.app, Cursor.app, o claude-code. Filtrar a la los que usted aprobó; marcar todo lo demás.

Al salir, filtre el tráfico HTTP. MCP sobre HTTP Streamable incluye un encabezado distintivo (mcp-protocol-version) y un tipo de contenido distintivo (application/json-rpc-2). Cloudflare Gateway, Zscaler y Netskope coinciden en ambos. Aquí está la regla Cloudflare Zero Trust para bloquear MCP no autorizado y al mismo tiempo permitir que su anfitriones aprobados:

En DNS, su solucionador ve búsquedas de hosts de servidores MCP comunitarios antes de cualquier conexión HTTPS. se abre. Introduzca la lista de permitidos aprobados en su filtro DNS (Cisco Umbrella, NextDNS, Cloudflare DNS de puerta de enlace) como los únicos destinos MCP permitidos. Cualquier otra búsqueda que coincida con un conocido El feed de registro de MCP obtiene un bloqueo y un ticket.

Para servidores stdio instalados con npm, su agente DLP de endpoint puede observar si hay paquetes que coincidan *-mcp-*, @modelcontextprotocol/*, o cualquier paquete que declare una mcp entrada en su package.json bin campo. eso atrapa el evento de instalación antes de que el usuario conecte el servidor al Cursor.

Cree un inventario de MCP en una tarde

La detección le indica cuándo aparece un nuevo servidor. El inventario le indica lo que ya está instalado. Envíe un script, ejecútelo a través de su MDM (Jamf, Intune, Kandji) y publique los resultados en un informe. punto final. Una tarde de trabajo y entonces sabes qué máquinas tienen qué servidores.

El script lee los dos archivos de configuración que utiliza cada cliente importante. Claude Desktop mantiene su configuración en ~/Library/Application Support/Claude/claude_desktop_config.json en macOS y %APPDATA%\Claude/claude_desktop_config.json en Windows. El cursor mantiene su configuración en ~/.cursor/mcp.json. Ambos archivos son JSON simples con una mcpServers asignación de objetos de nombres de servidores a comandos, argumentos, URL y variables de entorno.

El hachís importa. Los archivos de configuración cambian cuando un usuario agrega un servidor, gira una clave o despliega un plantilla de equipo. Almacene el SHA-256 de todo el archivo y alerte sobre cualquier cambio que no haya realizado. el Los nombres de env var (no valores) también aparecen en el informe; vidente GITHUB_PERSONAL_ACCESS_TOKEN listado bajo un servidor comunitario es su propia señal.

Ejecute el script diariamente. Introduzca el resultado en su inventario de activos existente (Snipe-IT, ServiceNow, o una tabla de Postgres). Cree un panel que muestre: nuevos servidores esta semana, servidores en más de N máquinas y servidores cuyo hash de configuración cambió. Esas tres vistas cubren la mayor parte de lo que verás. Necesito preguntar más tarde.

Incluya en la lista de permitidos los servidores en los que confía

El inventario le muestra lo que está instalado. Una lista de permitidos dice lo que está permitido. Denegación predeterminada, cada servidor revisado, cada aprobación expira. Versione el archivo en Git para que el historial de aprobación sea auditable.

Tres cosas hacen que esta lista de permitidos sea útil. En primer lugar, cada entrada tiene un ticket de revisión y un vencimiento; las aprobaciones no duran para siempre. En segundo lugar, los servidores stdio incluyen los argumentos permitidos, por lo que postgres-mcp binario aprobado con --readonly no se puede volver a ejecutar con acceso de escritura sin nueva reseña. En tercer lugar, los ámbitos son nombrados y explícitos; una capa de control posterior puede hacerlas cumplir.

La incorporación de un nuevo servidor a la lista de permitidos requiere dos comprobaciones automáticas antes de la revisión humana. Primero, verifique la postura TLS del host del servidor. Un servidor que sirve MCP a través de HTTP de texto sin formato, o con un certificado que vence en 10 días o que le falta HSTS, no es candidato:

En segundo lugar, inspeccione los encabezados de respuesta. Quieres HSTS con una edad máxima larga, un sensato content-type, y un mcp-protocol-version encabezado que coincide con lo que El servidor dice que lo admite en su manifiesto. La desviación entre el encabezado y el manifiesto es una señal de alerta:

Realice ambas comprobaciones como parte del ticket de admisión. Si cualquiera de los dos falla, el ticket se cierra automáticamente con el motivo del fracaso. El revisor solo ve servidores que pasaron los conceptos básicos.

La política MCP de tres páginas que toda empresa necesita

La política no tiene por qué ser larga. Debe responder cinco preguntas: qué se aprueba, quién aprueba nuevos servidores, qué puede hacer cada rol, cómo se monitorea y qué sucede cuando algo sale mal. Una tabla breve da más trabajo que un documento de 30 páginas que nadie lee.

Área Política Control
Servidores aprobados Solo los servidores en la lista de permitidos YAML pueden ejecutarse en dispositivos corporativos o tocar datos corporativos. Bloqueo de salida DNS +, regla de proceso EDR, archivo de lista de permitidos enviado por MDM, vencimiento de aprobación de seis meses.
Proceso de revisión Security Platform revisa todas las solicitudes de servidores nuevos. Data Platform cofirma cualquier servidor con acceso a la base de datos. Aprobaciones legales en servidores que traten datos regulados. Revise la plantilla del ticket, TLS automatizado y verificaciones de encabezado, SLA publicado de cinco días hábiles.
Límites de alcance Los ingenieros obtienen servidores de datos de sólo lectura de forma predeterminada. El acceso de escritura requiere un segundo aprobador. Las credenciales de producción están prohibidas; use staging o un token de alcance. Paquetes de listas permitidas por rol enviados a través de MDM, claves API con alcance con TTL corto, puerta de enlace de autenticación que aplica alcances.
Escucha Cada llamada a una herramienta a través de un servidor aprobado llega al registro de auditoría. Los intentos de servidor no aprobados activan una alerta en 15 minutos. Receptor de auditoría de puerta de enlace para Kafka y SIEM, diferenciación de inventario diaria, alertas de deriva de hash de archivos de configuración.
Respuesta a incidentes Un servidor MCP comprometido se trata como una integración API comprometida. Revocar las claves del servidor, poner en cuarentena los puntos finales afectados, revisar los registros de auditoría para la ventana de exposición. Runbook documentado, rotación de guardia, tablero trimestral que incluye un escenario de MCP.
Excepciones Las excepciones temporales requieren la aprobación del CISO, un vencimiento de 30 días y un plan de seguimiento por escrito. Plantilla de ticket de excepción, entradas de lista permitida con vencimiento automático, revisión de excepción semanal.
Offboarding Cuando un empleado se va, sus configuraciones de MCP se borran junto con otros estados corporativos. Todas las llaves que tenían se rotan dentro de las 24 horas. Acción de borrado de MDM, runbook de rotación de claves, registro de auditoría del último acceso por clave.

Conclusiones clave

  • Las capacidades de MCP superan las capacidades de SaaS. Un servidor MCP comunitario lee SSH claves, ejecuta comandos de shell y hereda su posición de VPN. Trátalo como un privilegiado. integración, no como una pestaña del navegador.
  • La detección necesita tres capas. Reglas de proceso EDR, filtros HTTP de puerta de enlace activados mcp-protocol-versiony las listas de permitidos de DNS cubren diferentes modos de falla.
  • Inventario en una tarde. Un script Python de 60 líneas lee las dos configuraciones archivos que utiliza cada cliente importante, los codifica y los publica en un punto final de informes. Ejecútelo diariamente a través de MDM.
  • Lista de permitidos de denegación predeterminada, vencimientos cortos. Cada servidor tiene un ticket de revisión y un vencimiento de seis meses. Usar /v1/ssl/check y /v1/headers/inspect como Puertas de entrada automáticas.
  • Una tabla supera a una política de 30 páginas. Servidores aprobados, proceso de revisión, alcance límites, seguimiento, respuesta a incidentes, excepciones, baja. Siete filas, una página, publicada en la wiki de ingeniería.

El propio servidor MCP de Botoi en api.botoi.com/mcp es un ejemplo de cómo se ve un servidor una vez que esté listo para su lista de permitidos: TLS 1.3, HSTS, claves API con alcance, límites de tasa por clave y 49 herramientas seleccionadas con anotaciones. Puedes verificar la postura tú mismo con los dos rizos de arriba. antes de agregarlo, o verifique el Página de configuración de MCP y el Documentos API para ver la lista completa de herramientas.

FAQ

¿Qué se considera un servidor MCP a efectos de inventario?
Se cuentan tanto los servidores stdio como los HTTP. Un servidor stdio es un proceso hijo que Claude Desktop o Cursor genera a partir de una entrada de archivo de configuración; no hay huella de red hasta que el agente la inicia, pero tiene la misma superficie de capacidad. Un servidor HTTP reside en una URL a la que el cliente se conecta a través de Streamable HTTP o SSE. Su inventario debe cubrir ambos, lo que significa leer archivos de configuración en el terminal y observar la salida en busca de firmas de tráfico MCP.
¿Puedo bloquear MCP por completo en redes corporativas sin interrumpir a los agentes aprobados?
Sí. Bloquee todo de forma predeterminada en la puerta de enlace de salida, luego incluya en la lista permitida los nombres de host específicos en los que viven sus servidores MCP aprobados. Los servidores stdio aprobados no tocan la red en absoluto (se comunican con sus API de respaldo a través de HTTPS normal, que usted ya controla). Se pierde la experimentación comunitaria de MCP en dispositivos corporativos, que es el punto. Los desarrolladores aún pueden utilizar máquinas personales fuera de la VPN para la exploración.
¿En qué se diferencia Shadow MCP del riesgo de inyección inmediata?
La inyección rápida es un atacante que engaña a un modelo para que haga algo que su operador no quería. Shadow MCP es el propio operador cableado en una capacidad no revisada. Diferente actor de amenaza, diferente control. Las defensas de inyección rápida (confirmación de herramientas, zona de pruebas, filtrado de salida) no ayudan si se suponía que la herramienta nunca debería estar allí. Necesita inventario y listas de permitidos además de las defensas a nivel de modelo.
¿El bloqueo requiere una actualización del firewall de próxima generación?
No. El filtrado DNS más la inspección de salida de la capa HTTP cubren la mayor parte. Cloudflare Gateway, Zscaler y Netskope incluyen reglas compatibles con MCP a partir de abril de 2026. Para el entorno local, puede filtrar por el encabezado MCP-Protocol-Version o el tipo de contenido aplicación/json-rpc-2 con cualquier proxy L7. Squid, Envoy y HAProxy se encargan de esto. La parte difícil no es el filtro; está manteniendo la lista de permitidos.
¿Qué pista de auditoría me proporciona MCP de forma inmediata?
Casi ninguno. El protocolo define las llamadas y respuestas de las herramientas, pero no requiere que el servidor o el cliente las registre. Claude Desktop mantiene algunos registros locales; El cursor no lo es tanto. Los servidores comunitarios a menudo no registran nada. Si necesita un registro de auditoría que sobreviva a la revisión del incidente, puede instrumentarlo usted mismo en el lado del servidor o colocar una puerta de enlace al frente que escriba registros estructurados. No confíe en que el cliente conserve la evidencia.

Empieza a construir con botoi

150+ endpoints de API para consultas, procesamiento de texto, generacion de imagenes y utilidades para desarrolladores. Plan gratuito, sin tarjeta de credito.