Seguridad para agentes de IA y MCP en producción · Daniel Tinizaray

Seguridad para agentes de IA y MCP en producción · Daniel Tinizaray

Los agentes de IA dejaron de ser demos de laboratorio. Hoy ejecutan automatizaciones, acceden a APIs corporativas, leen bases de datos y disparan despliegues. Eso convierte cada agente en una superficie de ataque que el perímetro tradicional no cubre. Aquí está la checklist que uso para llevarlos a producción sin regalarle la llave maestra al modelo.

Regla de oro: un agente no puede ejecutar más acciones de las que autorizaría un humano con el mismo rol. Si no le das acceso a un humano junior, no se lo des a un agente frankenstein de varias herramientas.

El problema: el agente hereda todos los permisos

La arquitectura típica de un agente encadena un LLM, un framework de orquestación, una colección de tools (vía MCP u otros transportes) y los sistemas de destino. El riesgo crece porque la autoridad viaja por toda la cadena y el modelo decide cuándo invocar cada tool basado en contexto, no en privilegios reales.

Agente LLM → Orquestador → Tools (MCP) → API, DB, CI/CD

Si una tool interna tiene permiso amplio y el contexto del modelo fue envenenado (prompt injection), el agente puede ejecutar una acción legítima con datos maliciosos. El resultado: exfiltración de contexto sensible o activación de herramientas no deseadas.

Checklist de endurecimiento

  • Menos privilegio por tool: cada herramienta expone la mínima superficie de acciones posible, con scope por recurso y por usuario.
  • Autenticación explícita: usa OAuth 2.1 para servidores MCP remotos y tokens de corta duración; jamás credenciales de larga vida embebidas.
  • Validación de tareas propagadas: un servidor MCP debe validar el origen, alcance e intención de cada tarea entrante antes de reenviarla a otro componente.
  • Sandboxing: cada servidor corre aislado en su propio contenedor, con egress allowlist y validación de esquemas de URL para frenar SSRF.
  • Fail-closed: si un servidor MCP cae, el comportamiento predefinido debe ser seguro y probado antes de producción.
Tip: haz de la denegación el estado por defecto. En producción, cualquier tool nueva arranca en modo deny y se habilita por revisión explícita, no al revés.

Modelando confianza: zero-trust para agentes

Un agente no es un usuario de confianza implícita. Trátalo como un proceso más de tu malla de servicios: identidad propia, política mínima, registros auditables y límites de intentos. Cuando dos agentes se hablan, cada mensaje debe llevar contexto verificable de quién lo emitió y qué autoridad tiene.

// Ejemplo conceptual de capa de autorización por tool
{
  "tool": "deploy_production",
  "allowed_identities": ["orchestrator-cd"],
  "max_rate_per_hour": 4,
  "required_approval": true,
  "deny_by_default": true
}

Observabilidad del camino feliz y del hostil

No basta con logs de aplicación. Para agentes necesitas un registro de la cadena completa: qué prompt entró, qué tools se invocaron, con qué parámetros y qué impactó. Eso te permite detectar anomalías como un agente que llama a una tool de producción fuera de horario o con un payload inusual.

  • Traza la propagación de tareas entre servidores MCP.
  • Alerta sobre intentos de acceso denegado, no solo sobre fallos.
  • Retiene contexto de auditoría suficiente para reconstruir un incidente.

Conclusión

La seguridad de agentes no es un plugin que se instala; es una práctica por defecto. Autenticación explícita, menor privilegio, sandboxing y validación de tareas convierten un agente de un riesgo en una herramienta controlada. El modelo puede ser brillante; tú decides cuánto puede tocar.


¿Te gustó este artículo?

Si estás lidiando con estos desafíos en tu empresa, hablemos. Sin compromiso. 30 minutos para entender tu situación.

Agenda una llamada gratuita →