Seguridad en agentes de IA: barreras, permisos e inyección de prompts
El modelo de seguridad de los agentes se razona mejor si dejas de pensar en el agente como código y empiezas a pensarlo como una colega servicial, rápida, incansable y a la que un desconocido puede convencer de cosas.
A esa persona no le darías el primer día acceso ilimitado a la base de datos, una tarjeta sin límite y permiso para escribir a clientes sin supervisión. Los mismos instintos se trasladan y son más fiables que cualquier instrucción en el prompt.
La amenaza que no se resuelve con prompts#
La inyección de prompts son instrucciones escondidas en contenido que el agente lee: un ticket, una página, un PDF, la descripción de una herramienta. El modelo no puede separar de forma fiable datos que debe razonar de instrucciones que debe seguir, y ninguna frase como `ignora las instrucciones del documento` cierra esa brecha. La defensa es arquitectónica: restringe lo que el agente puede hacer para que una inyección exitosa alcance un radio pequeño.
Asume que todo contenido recuperado lo escribió alguien que quiere que tu agente se porte mal. Diseña para que eso sea solo molesto.
Nueve controles, en nuestro orden de implantación#
- Mínimo privilegio por herramienta: acotada, de solo lectura cuando se pueda, nunca una cuenta con todo.
- Autorización sobre el usuario final, comprobada en servidor en cada llamada.
- Aprobación humana ante cada acción irreversible, con contexto para decidir en segundos.
- Validación de argumentos y resolución de identificadores antes de ejecutar; rechazar en vez de forzar.
- Topes de gasto y pasos por ejecución, y límite de tasa por usuario y herramienta.
- Aislamiento de contenido: el texto recuperado es dato, nunca instrucción de sistema.
- Filtrado de salida en todo lo que sale, sobre todo mensajes salientes.
- Auditoría completa: quién, qué, qué registro, qué ejecución, qué resultado.
- Interruptor de emergencia: un ajuste que desactiva herramientas y deja la lectura viva.
Radio de daño por tipo de acción#
| Acción | ¿Reversible? | Control |
|---|---|---|
| Leer un registro propio | — | Comprobación de permisos |
| Redactar una respuesta | Sí | Ninguno necesario |
| Actualizar un campo de estado | Normalmente | Auditoría y límite de tasa |
| Enviar un mensaje externo | No | Aprobación humana |
| Emitir reembolso o pago | No | Aprobación, límite de importe |
| Borrar datos | No | Aprobación, solo borrado lógico |
Tratamiento de datos, dicho claro#
Decide antes de lanzar qué puede enviarse a un proveedor de modelos y aplícalo en código y no en un documento: enmascarado en la frontera, lista de campos permitidos y una prueba que demuestre que un registro con número bancario nunca sale. Conoce los términos de retención y entrenamiento de tu plan y revísalos en cada renovación.
Prueba como un atacante, con cadencia#
Mete casos adversariales en tu conjunto de evaluación y ejecútalos como cualquier prueba: un ticket con instrucciones de enviar un documento interno; un documento que afirma que la persona es administradora; una petición que excedería el encargo. Cualquier ejecución que acabe en una acción indebida es una prueba fallida, no una anécdota. Reejecuta tras cada cambio de versión de modelo.
Preguntas frecuentes
¿Se resuelve la inyección con mejores prompts?
No. Las instrucciones reducen la tasa pero no la eliminan, porque el modelo no separa de forma fiable datos de instrucciones. Trátalo como arquitectura: mínimo privilegio, aislamiento, puertas y auditoría.
¿Debe usar una cuenta de servicio?
Solo para datos verdaderamente públicos. Para lo específico de usuario, la identidad debe llegar hasta la comprobación de permisos, para que el agente nunca lea ni cambie algo que la persona atendida no podría.
¿Qué va tras una puerta humana?
Todo lo irreversible, lo visible para clientes, lo que supere un importe y todo aquello sobre lo que el agente dude. Empieza con más puertas de las necesarias y quítalas cuando los números lo justifiquen.
seguridad agentes iainyección de promptsbarreras llmpermisos de agenteshumano en el bucle