Detección de Abuso de Recursos de Origen Cruzado
Detecta y bloquea llamadas a herramientas MCP que acceden a recursos fuera de su ámbito de origen declarado — abordando OWASP MCP Top 10 #4. ShieldAgent evalúa el objetivo de cada llamada a herramienta contra listas de permitidos de origen por herramienta y señala las violaciones antes de que lleguen a los servidores upstream.
La amenaza
OWASP MCP Top 10 #4 (Abuso de Recursos de Origen Cruzado) describe escenarios donde un agente de IA es manipulado — mediante inyección de prompts, una respuesta de herramienta comprometida o una tarea maliciosa — para llamar a una herramienta MCP con parámetros que apuntan a un recurso al que nunca debería acceder.
SSRF a través de herramientas MCP
criticalAcceso a recursos entre tenants
highDNS rebinding
highUso de esquema no autorizado
mediumCómo lo detecta ShieldAgent
Para cada solicitud de llamada a herramienta MCP que pasa por el proxy, ShieldAgent extrae todos los valores con forma de URL de los argumentos de la herramienta y los evalúa contra el ámbito de origen configurado de la herramienta. La evaluación se ejecuta en el pipeline de políticas antes de que la solicitud llegue al servidor MCP upstream.
Patrones de abuso detectados
ShieldAgent evalúa cada argumento con formato de URL contra el ámbito de origen configurado de la herramienta, bloqueando llamadas que apuntan a redes privadas, endpoints de infraestructura en la nube, esquemas de URI no permitidos u orígenes fuera de la lista de permitidos. Las consultas DNS detectan ataques de rebinding donde un hostname permitido se resuelve a una dirección restringida.
Configuración
El ámbito de origen se configura por herramienta en tu YAML de políticas de ShieldAgent. La configuración global a continuación controla los valores predeterminados de detección cuando no se define un ámbito por herramienta.
Configuración global
| Configuración | Por defecto | Descripción |
|---|---|---|
| Cross-origin detection | true | Activa la detección de abuso de recursos de origen cruzado. |
| Block private IPs | true | Bloquea las llamadas a herramientas que apuntan a rangos de IP privados/loopback por defecto. |
| Block metadata endpoints | true | Bloquea las llamadas a endpoints de metadatos de nube conocidos. |
| DNS resolution | true | Resuelve DNS para detectar rebinding. Desactiva solo si tu proxy no puede realizar consultas DNS. |
| Default action | block | Acción cuando se detecta una violación: block o alert. |
Ámbito de origen por herramienta (YAML de políticas)
tools:
- name: fetch_url
origin_scope:
allowed_origins:
- "https://api.example.com"
- "https://cdn.example.com"
allowed_schemes:
- "https"
block_private_ips: true
block_metadata_endpoints: trueEventos de auditoría y API
Cada violación se persiste como un evento de auditoría cross_origin_abuse que incluye el argumento infractor, el patrón detectado y la IP resuelta (cuando se sospecha DNS rebinding).
{
"id": "aev_...",
"agentId": "agt_...",
"tenantId": "ten_...",
"eventType": "cross_origin_abuse",
"toolName": "fetch_url",
"action": "block",
"riskScore": 88,
"details": {
"offendingArgument": "url",
"offendingValue": "http://192.168.1.1/admin",
"resolvedIp": "192.168.1.1",
"allowedOrigins": ["https://api.example.com"]
},
"timestamp": "2026-04-25T10:00:00.000Z"
}Endpoints de API
Integración con políticas
Usa security.crossOrigin.detected como condición de política para bloquear llamadas a herramientas que violen los controles de origen:
{
"name": "Block cross-origin resource abuse",
"priority": 3,
"conditions": [
{ "field": "security.crossOrigin.detected", "op": "eq", "value": true }
],
"action": "block",
"response": {
"code": 403,
"message": "Cross-origin resource access blocked by security policy."
}
}