Skip to main content
Sign in →

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

critical
Un agente es engañado para llamar a una herramienta de fetch web o HTTP con una dirección IP interna (p. ej., 192.168.x.x, 169.254.169.254) o un endpoint de metadatos de nube, provocando que el servidor MCP realice solicitudes en nombre del atacante desde dentro del perímetro de red.

Acceso a recursos entre tenants

high
Se accede a un servidor MCP multi-tenant con travesía de rutas o manipulación de parámetros para que el agente de un tenant lea los datos de otro tenant.

DNS rebinding

high
Un dominio al que el agente tiene permiso de acceder se resuelve a una IP interna después de la verificación de la lista de permitidos, eludiendo los controles de origen en la capa DNS.

Uso de esquema no autorizado

medium
Una herramienta destinada a HTTPS es llamada con un URI file://, ftp://, o data: para leer contenido del sistema de archivos local o eludir los controles de la capa de transporte.

Có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.

Argumentos de llamada
Extraer URLs / orígenes
Resolver IPs(verificación DNS rebind)
Comparar lista de permitidos
Permitido → pasar|Denegado → bloquear + evento

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ónPor defectoDescripción
Cross-origin detectiontrueActiva la detección de abuso de recursos de origen cruzado.
Block private IPstrueBloquea las llamadas a herramientas que apuntan a rangos de IP privados/loopback por defecto.
Block metadata endpointstrueBloquea las llamadas a endpoints de metadatos de nube conocidos.
DNS resolutiontrueResuelve DNS para detectar rebinding. Desactiva solo si tu proxy no puede realizar consultas DNS.
Default actionblockAcción cuando se detecta una violación: block o alert.

Ámbito de origen por herramienta (YAML de políticas)

yaml
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: true

Eventos 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).

json
{
  "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

GET/tenants/:tenantId/audit-events?eventType=cross_origin_abuseLista eventos de abuso de origen cruzado. Admite filtros ?agentId=, ?toolName=, ?from=, ?to=.
GET/tenants/:tenantId/anomalies?anomalyType=cross_origin_burstEventos de anomalía para intentos repetidos de origen cruzado en una ventana corta.

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:

json
{
  "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."
  }
}
Detección de Abuso de Recursos de Origen Cruzado