La proliferación de flujos de trabajo basados en agentes de IA y el Model Context Protocol (MCP) introduce nuevos vectores de ataque y desafíos de gobernanza en entornos empresariales. La tesis central es que una adopción segura y escalable de MCP requiere una arquitectura de seguridad unificada que combine la centralización de la infraestructura, controles de acceso robustos, optimización de costos y visibilidad sobre el uso no autorizado.
Este problema no es nuevo; es una manifestación moderna de desafíos clásicos en la computación distribuida y la seguridad de la información, como la gestión de identidades y accesos (IAM), la prevención de pérdida de datos (DLP) y la detección de amenazas. La novedad radica en la interfaz con modelos de lenguaje grandes (LLMs) y la naturaleza autónoma de los agentes, que amplifican la superficie de ataque y la complejidad de la gestión de contexto. La necesidad de una solución ahora se debe a la rápida adopción de la IA generativa en el ámbito empresarial, lo que exige que las organizaciones adapten sus marcos de seguridad existentes a esta nueva realidad.
Arquitectura del Sistema
La arquitectura de seguridad de Cloudflare para MCP se basa en varios componentes interconectados. Los servidores MCP remotos son el pilar, actuando como intermediarios entre los clientes MCP (agentes de IA) y los recursos corporativos. Estos servidores se despliegan en la plataforma de desarrollo de Cloudflare, gestionados por un equipo centralizado para asegurar versiones y fuentes de software validadas, mitigando riesgos de cadena de suministro. La infraestructura de monorepo proporciona plantillas con controles de escritura 'default-deny', registro de auditoría, CI/CD automatizado y gestión de secretos.
Cloudflare Access se integra como proveedor OAuth para la autenticación de usuarios en servidores MCP privados. Verifica SSO, MFA y atributos contextuales (IP, ubicación, certificados de dispositivo), emitiendo tokens de acceso. Los portales de servidor MCP centralizan el descubrimiento, la gobernanza y la aplicación de políticas. Actúan como un punto de entrada único para los clientes MCP, revelando servidores autorizados y aplicando DLP (ej. prevención de PII) y políticas de acceso basadas en roles. La característica 'Code Mode' dentro de los portales MCP optimiza el consumo de tokens al consolidar múltiples definiciones de herramientas en dos funciones proxy ('portal_codemode_search' y 'portal_codemode_execute'), permitiendo a los agentes descubrir y ejecutar herramientas mediante JavaScript en un entorno sandboxed (Dynamic Workers).
AI Gateway se posiciona entre el cliente MCP y el LLM, proporcionando abstracción del proveedor de LLM para evitar el 'vendor lock-in' y aplicar controles de costos (límites de tokens). Cloudflare Gateway se utiliza para la detección de 'Shadow MCP', escaneando el tráfico de red (httpHost, httpRequestURI, inspección de cuerpo basada en DLP con patrones regex para JSON-RPC) para identificar y bloquear el acceso a servidores MCP no autorizados. Finalmente, para servidores MCP públicos, se utiliza Cloudflare WAF con la función 'AI Security for Apps' para proteger contra inyección de prompts, fuga de datos sensibles y clasificación de temas, tratando los MCPs como cualquier otra API web.
Flujo de Acceso a Servidor MCP Autorizado con Code Mode
- 1 Cliente MCP Agente de IA inicia solicitud de herramientas o ejecución.
- 2 AI Gateway Media la conexión al LLM, aplica controles de costo y abstracción del proveedor.
- 3 LLM Recibe la solicitud, interactúa con el cliente MCP.
- 4 Portal MCP (Code Mode) Cliente se conecta al portal con '?codemode=search_and_execute'. El portal ex...
- 5 portal_codemode_search El modelo ejecuta JavaScript para buscar herramientas disponibles en servidor...
- 6 portal_codemode_execute El modelo ejecuta JavaScript para llamar directamente a las herramientas enco...
- 7 Cloudflare Access Autentica al usuario para servidores MCP privados, verificando SSO/MFA/atribu...
- 8 Servidor MCP Remoto Accede a recursos corporativos (Jira, Drive, Wiki) en nombre del agente.
Detección de Shadow MCP con Cloudflare Gateway
- 1 Empleado Intenta acceder a un servidor MCP no autorizado.
- 2 Tráfico de Internet La solicitud HTTP/HTTPS pasa por la red empresarial.
- 3 Cloudflare Gateway Inspecciona el tráfico web del empleado.
- 4 Gateway httpHost selector Escanea por hostnames conocidos de MCP o patrones de subdominio (ej. mcp.*).
- 5 Gateway httpRequestURI selector Escanea por rutas URL específicas de MCP (ej. /mcp, /mcp/sse).
- 6 DLP Body Inspection Analiza el cuerpo HTTP para patrones JSON-RPC específicos de MCP ('method': '...
- 7 Motor de Políticas Compara el tráfico con reglas predefinidas de Shadow MCP.
- 8 Acción de Gateway Bloquea el tráfico, lo redirige o registra la actividad para auditoría.
| Capa | Tecnología | Justificación |
|---|---|---|
| orchestration | Model Context Protocol (MCP) | Estándar abierto para la conexión bidireccional entre aplicaciones de IA y fuentes de datos, permitiendo a los agentes autónomos interactuar con APIs y recursos corporativos. |
| security | Cloudflare Access | Proveedor OAuth para autenticación de usuarios en servidores MCP privados, verificando SSO, MFA y atributos contextuales para emitir tokens de acceso. |
| networking | Cloudflare Developer Platform | Plataforma para desplegar servidores MCP remotos como servicios en la red global de Cloudflare, proporcionando baja latencia y visibilidad centralizada. |
| security | MCP Server Portals | Centraliza el descubrimiento, la gobernanza, la aplicación de políticas (DLP) y la optimización de costos (Code Mode) para todos los servidores MCP autorizados. |
| compute | Dynamic Workers | Entorno sandboxed para ejecutar el JavaScript de 'Code Mode' dentro de los portales MCP, permitiendo la exploración y ejecución de herramientas de forma dinámica. |
| observability | AI Gateway | Proxy entre el cliente MCP y el LLM para la extensibilidad (cambio de proveedor de LLM) y el control de costos (límites de tokens). |
| security | Cloudflare Gateway | Secure Web Gateway (SWG) para la detección de 'Shadow MCP' mediante inspección de tráfico (httpHost, httpRequestURI, DLP basada en regex para JSON-RPC). |
| security | Cloudflare WAF (AI Security for Apps) | Protege los servidores MCP públicos contra inyección de prompts, fuga de datos sensibles y clasificación de temas, aplicando reglas de seguridad a la API HTTP. |
Trade-offs
Ganancias
- ▲ Reducción de costos de tokens
- ▲ Reducción del 'context window bloat'
- ▲ Gobernanza centralizada de MCP
- ▲ Visibilidad de Shadow MCP
- ▲ Seguridad de la cadena de suministro de MCP
- ▲ Control de acceso granular
Costes
- △ Mayor complejidad inicial de la infraestructura
- △ Dependencia del ecosistema de Cloudflare
// portal_codemode_search
async () => {
const tools = await codemode.tools();
return tools
.filter(t => t.name.includes("jira") || t.name.includes("drive"))
.map(t => ({ name: t.name, params: Object.keys(t.inputSchema.properties || {}) }));
}
// portal_codemode_execute
async () => {
const tickets = await codemode.jira_search_jira_with_jql({
jql: ‘project = BLOG AND status = “In Progress”’,
fields: [“summary”, “description”]
});
const doc = await codemode.google_workspace_drive_get_content({
fileId: “1aBcDeFgHiJk”
});
await codemode.jira_update_jira_ticket({
issueKey: tickets[0].key,
fields: { description: tickets[0].description + “\n\n” + doc.content }
});
return { updated: tickets[0].key };
}const DLP_REGEX_PATTERNS = [
{
name: "MCP Initialize Method",
regex: '"method"\s{0,5}:\s{0,5}"initialize"',
},
{
name: "MCP Tools Call",
regex: '"method"\s{0,5}:\s{0,5}"tools/call"',
},
{
name: "MCP Tools List",
regex: '"method"\s{0,5}:\s{0,5}"tools/list"',
},
{
name: "MCP Resources Read",
regex: '"method"\s{0,5}:\s{0,5}"resources/read"',
},
{
name: "MCP Resources List",
regex: '"method"\s{0,5}:\s{0,5}"resources/list"',
},
{
name: "MCP Prompts List",
regex: '"method"\s{0,5}:\s{0,5}"prompts/(list|get)"',
},
{
name: "MCP Sampling Create Message",
regex: '"method"\s{0,5}:\s{0,5}"sampling/createMessage"',
},
{
name: "MCP Protocol Version",
regex: '"protocolVersion"\s{0,5}:\s{0,5}"202[4-9]'
},
{
name: "MCP Notifications Initialized",
regex: '"method"\s{0,5}:\s{0,5}"notifications/initialized"',
},
{
name: "MCP Roots List",
regex: '"method"\s{0,5}:\s{0,5}"roots/list"',
},
];Fundamentos Teóricos
La gestión de la seguridad en sistemas distribuidos, especialmente en lo que respecta a la autenticación y autorización, tiene sus raíces en trabajos fundamentales como el modelo de Bell-LaPadula (1973) para el control de acceso multinivel, y el modelo de Clark-Wilson (1987) que enfatiza la integridad de los datos. La centralización de la gestión de servidores y la aplicación de políticas de seguridad reflejan principios de gobernanza de sistemas que se encuentran en la literatura de seguridad de la información desde hace décadas.
El concepto de 'Code Mode' para la optimización del contexto de los LLMs se relaciona con la eficiencia de la comunicación en sistemas distribuidos y la reducción de la redundancia. Aunque no directamente de un paper clásico, se alinea con principios de 'lazy loading' o 'on-demand discovery' para recursos, un patrón común en la optimización de rendimiento. La detección de 'Shadow IT' o 'Shadow MCP' es una extensión de los desafíos de visibilidad y control en redes empresariales, un problema abordado por tecnologías de Secure Web Gateway (SWG) y Data Loss Prevention (DLP) que han evolucionado a lo largo de los años, con sus fundamentos en la inspección de paquetes y el análisis de tráfico de red.