Seguridad en agentes: protege tu sistema de usos peligrosos o no deseados
Inteligencia Artificial · Serie LLMs y n8n
Seguridad en agentes: protege tu sistema de usos peligrosos o no deseados
Los agentes convierten texto en acciones. Sin controles, también convierten errores en incidentes. Aquí tienes un marco práctico para operar agentes seguros en producción.
En el post anterior cubrimos privacidad y PII. Ahora pasamos a seguridad en agentes: cómo evitar uso indebido de herramientas, fuga de datos, ejecuciones irreversibles y cadenas de acciones incontroladas.
Modelo de amenazas (lo que puede salir mal)
- Prompt injection directo o indirecto (desde páginas/archivos recuperados).
- Uso indebido de herramientas (parámetros inventados, acciones fuera de política).
- Exfiltración de datos (PII/secretos en respuestas o logs).
- Cadenas largas sin control (costos y efectos secundarios inesperados).
- Confusión de identidad (mezclar roles de system/developer/user/contexto).
- Desfase de permisos (el modelo “cree” que puede más de lo permitido).
Principios operativos (5 reglas de oro)
- Menor privilegio: cada herramienta con el alcance mínimo necesario.
- Lista blanca + contratos: enumera herramientas permitidas y su schema estricto.
- Presupuestos: límites por request (pasos, costo, tiempo, llamadas externas).
- Modo seguro y aprobación humana para acciones críticas (pagos, borrados, cambios masivos).
- Auditoría: traza cada plan, llamada y resultado con
request_id.
Política de herramientas (declarativa)
{
"tools": [
{
"name": "buscar_cliente",
"risk": "low",
"scope": "read",
"input_schema": {"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"}}},
"allow_from_context": true
},
{
"name": "actualizar_estado_pedido",
"risk": "medium",
"scope": "write",
"input_schema": {"type":"object","required":["order_id","estado"],"properties":{"order_id":{"type":"string"},"estado":{"type":"string","enum":["nuevo","en_transito","entregado","cancelado"]}}},
"needs_confirm": true
},
{
"name": "emitir_reembolso",
"risk": "high",
"scope": "money",
"input_schema": {"type":"object","required":["order_id","monto","motivo"],"properties":{"order_id":{"type":"string"},"monto":{"type":"number","minimum":0},"motivo":{"type":"string","minLength":8}}},
"needs_approval": "human"
}
],
"budgets": {"max_steps": 4, "max_cost_usd": 0.02, "timeout_ms": 9000},
"network": {"egress_allowlist": ["api.mi-crm.com","*.pagos.com"], "deny_shell": true}
}
Planner → Executor con verificación
El agente propone un plan, el orquestador valida contra la política y solo entonces ejecuta.
{
"plan":[
{"tool":"buscar_cliente","args":{"email":"ana@ejemplo.com"}},
{"tool":"actualizar_estado_pedido","args":{"order_id":"A123","estado":"en_transito"}}
],
"limits":{"max_steps":4,"max_cost_usd":"$0.02","timeout_ms":9000}
}
- Rechaza pasos que no estén en la whitelist o cuyos args no pasen el schema.
- Si un paso es needs_confirm → pregunta al usuario; si es needs_approval → humano.
- Rompe cadenas: si el plan excede
max_stepso presupuesto, devuelve sugerencia parcial.
Entorno de ejecución seguro
- Sandbox por interacción (contenedor/VM ligero) sin FS persistente.
- Egress allowlist y timeouts estrictos; sin shell ni ejecución arbitraria.
- Tokens de mínimos permisos y rotación periódica.
- Idempotencia y reintentos limitados con request_id.
Micro-workflow en n8n: “Agent Runner Seguro”
- Webhook → recibe
{query, user, tenant}. - Function (policy.load) → carga política por tenant.
- LLM (planner) → propone
{plan, limits}. - Function (validator) → valida schema, riesgo y presupuestos.
- IF → si hay pasos needs_confirm/needs_approval, rama a Form/Manual Approval.
- HTTP/Nodes → ejecuta herramientas aprobadas; captura status e ids.
- Function (finalizer) → redacta resultado y resumen de acciones.
- Database → guarda
{request_id, plan, policy_version, cost, lat_ms, risk}. - Notifier → alerta si se supera p95 de costo/tiempo o hay intentos bloqueados.
Defensa ante prompt injection en agentes
- Jerarquía explícita: System > Developer > Context > User (post #15). Si hay conflicto, obedece el nivel superior.
- Allowlist de fuentes para RAG; limpia HTML/JS y elimina instrucciones embebidas en documentos.
- Política de abstención: si el contexto sugiere violar reglas, responde “No lo sé con la evidencia actual”.
Tips para Laravel/PHP
- ToolRegistry (tabla
tools) conname,risk,scope,json_schema,needs_confirm,needs_approval. - Middleware que valide cada invocación contra
json_schemay presupuestos del tenant. - Policies/Gates para autorizar acciones por rol/tenant.
- Rate limit por herramienta (
RateLimiter::for('tool:emitir_reembolso', ...)). - Auditoría: tabla
agent_tracescon{request_id, step, tool, args_hash, status, cost_usd, lat_ms}.
// Ejemplo de verificación de args (fragmento)
$schema = json_decode($tool->json_schema, true);
$validator = new \Opis\JsonSchema\Validator();
$result = $validator->schemaValidation((object)$args, \Opis\JsonSchema\LoadedSchema::fromJsonObject((object)$schema));
abort_unless($result->isValid(), 422, 'Args inválidos para la herramienta');
Anti-patrones (evítalos)
- Dar acceso ilimitado a APIs/shell “porque es más flexible”.
- Permitir texto libre cuando la herramienta exige JSON con schema.
- Ejecutar planes sin presupuestos ni aprobaciones.
- Loggear PII/secretos o tokens de herramientas.
- No versionar policy ni registrar decisiones → imposible auditar.
Conclusión
La seguridad en agentes es diseño + política + observabilidad. Con privilegios mínimos, listas blancas, presupuestos, aprobaciones y auditoría, tus agentes ejecutarán acciones útiles y seguras.
← Anterior: Privacidad, PII y cumplimiento: buenas prácticas al trabajar con datos sensibles
Artículos Relacionados
Continúa explorando contenido similar.
Del notebook al producto: llevando tu proyecto de IA a producción
Leer artículo
Hospitales inteligentes: cómo será la atención en 2030
Leer artículo
RAG con feedback humano: mejora continua para tu asistente inteligente
Leer artículo
Blockchain médico: la era de la seguridad y trazabilidad absoluta
Leer artículo
Wearables, apps y sensores: la salud ahora viaja contigo
Leer artículo
Cómo la IA puede predecir infartos, cáncer y Alzheimer antes de que aparezcan
Leer artículo
Operación integral de IA con n8n: datos de calidad, resiliencia e integración práctica
Leer artículo
Realidad aumentada y 3D en procedimientos quirúrgicos
Leer artículo
Patrones de prompt reutilizables que todo desarrollador debería conocer
Leer artículo
El futuro es híbrido: medicina humana + inteligencia artificial
Leer artículo
Teleconsulta: más allá del video, la experiencia clínica conectada
Leer artículo
La evolución del cuidado: de curar enfermedades a prevenirlas
Leer artículo