Inyección de prompts y seguridad de agentes
En una frase: un texto desvía a una IA de lo que debía hacer.
Puede ser un ataque a propósito o pasar sin querer.
Un prompt es el texto con el que le pides algo a una IA. El texto que la desvía puede escribirlo quien usa la IA. También puede venir escondido en una web, un archivo o un correo.
Es el primer riesgo en la lista de OWASP para apps con IA. Y no se conoce ninguna defensa infalible.
Cómo se ve
Qué pasa, paso a paso
- Le pides a una IA que lea algo por ti, como una web.
- Dentro, alguien ha escondido una orden. A veces una persona ni la ve.
- La IA no distingue bien tus órdenes de las que vienen dentro del texto.
- Si obedece la orden escondida, hace algo que tú no pediste.
- Puede cambiar la respuesta o destapar datos que la IA tenía delante.
- En un agente que actúa, además, puede borrar o enviar datos sin permiso.
Es como encontrar en tu agenda una nota falsa que parece de tu profe. Tú quizá sospechas. La IA no siempre se da cuenta.
Tipos de inyección
- Directa: la orden la escribe quien usa la IA, a propósito o sin querer.
- Indirecta: la orden viene escondida en lo que la IA lee por ti. Puede ser una web, un archivo, un correo o lo que devuelve una herramienta.
- Jailbreak: intento de saltarse las protecciones de seguridad de la IA.
OWASP lo ve como un tipo de inyección. A veces los dos nombres se usan como si fueran lo mismo. Simon Willison dice que él inventó el nombre «prompt injection» en 2022. Para él son problemas distintos, y confundirlos hace que el riesgo parezca menor.
Ni darle documentos de consulta ni volver a entrenarla elimina el problema.
Dos casos que cuentan los expertos:
- Ejemplo de OWASP: una web con órdenes ocultas logra sacar la conversación fuera.
- Ejemplo de Anthropic: en pruebas de Claude en Chrome, un correo falso pidió borrar correos. Se hacía pasar por un aviso de seguridad. Antes de las nuevas defensas, Claude los borró sin pedir confirmación.
Las tres piezas peligrosas
Simon Willison explica cuándo se puede usar un agente para robar datos. Pasa cuando junta tres cosas a la vez. Él lo llama la «tríada letal».
- Acceso a tus datos privados.
- Contenido no fiable: textos o imágenes que puede controlar un atacante.
- Una vía para mandar cosas hacia fuera.
- Con las tres, un texto trampa puede sacar tus datos si logra desviar al agente. Eso no quiere decir que cualquier texto lo consiga.
- La defensa principal es no juntarlas nunca: quita una de las tres.
- MCP, la forma común de conectar una IA con otras apps, lo empeora. Anima a mezclar conexiones de sitios distintos. A veces una sola herramienta reúne las tres.
- Un filtro que para 95 de cada 100 ataques no basta. En seguridad, eso es suspender.
Es como un robo: hace falta algo valioso, una entrada y una salida. Cierra una de las tres y el plan se rompe.
Cómo protegerse
OWASP propone varias defensas:
- Dar a la IA una tarea estrecha y bien acotada.
- Comprobar con un programa fijo que la respuesta tiene el formato esperado.
- Que las acciones delicadas las controle el programa, no la IA.
- Que una persona apruebe las acciones de riesgo.
- Separar lo que viene de fuera y marcarlo como no fiable.
- Hacer pruebas tratando a la IA como a alguien que no es de fiar.
Anthropic da más consejos a quien construye apps con Claude. Por ejemplo, marcar lo que traen las herramientas como datos, no como órdenes. Ojo: eso no garantiza que la IA ignore las órdenes escondidas. También filtrar lo que entra y lo que sale antes de actuar. El detalle técnico está en la versión adulta.
Claude Code, en su modo manual, pide permiso antes de editar archivos o lanzar órdenes. No lo pide para lo que ya está permitido. En el modo automático, algunas decisiones las toma otro programa que clasifica las acciones. El sandbox añade límites del propio sistema.
Lo que hace depende de cómo esté configurado. Al abrir una carpeta nueva, pregunta si te fías de ella. Aun así, su propia ayuda avisa: ningún sistema es inmune. Estas defensas bajan el riesgo, pero hay que comprobarlas en cada caso.
En Claude en Chrome, las defensas bajaron los ataques que funcionaban. Pasaron de casi uno de cada cuatro a uno de cada nueve, en pruebas. Es la mitad, más o menos, pero no es cero. Además, pide confirmación antes de publicar, comprar o compartir datos personales. Y bloquea tipos de webs de alto riesgo.
Por qué importa
- Cuanto más puede hacer el agente, más daño hace un texto ajeno. Piensa en el correo, el navegador o tus archivos.
- Según OWASP, puede filtrar datos privados o usar funciones sin permiso. Incluso puede ejecutar órdenes en sistemas conectados.
- Revisar lo que propone el agente sigue siendo cosa tuya.
Un ejemplo de la vida real
Imagina un asistente de IA conectado a un correo electrónico:
- Lee los mensajes: tiene datos privados.
- Recibe correos de cualquiera: contenido no fiable.
- Puede enviar y reenviar: tiene salida hacia fuera.
Ese asistente reúne él solo las tres piezas. Un navegador con IA suma otro riesgo: lee webs de cualquiera y puede actuar.
Para protegerte:
- No mezcles en la misma tarea leer correos que llegan y enviar.
- Confirma tú cualquier envío antes de que salga.
- Conectar una IA a tu correo es algo que se decide con un adulto.
Pruébalo tú
- Le pides a una IA que resuma una web con una orden escondida. ¿Qué tipo de inyección es?
- ¿Cuáles son las tres piezas de la tríada letal? ¿Cuál es la defensa principal?
Respuestas
- Indirecta. La orden no la escribes tú: viene dentro de lo que la IA lee por ti.
- Datos privados, contenido no fiable y una salida hacia fuera. La defensa es no juntarlas nunca: quitar una.
Palabras clave
- Prompt: el texto con el que le pides algo a una IA.
- Inyección indirecta: orden escondida en algo que la IA lee por ti.
- Jailbreak: intento de saltarse las protecciones de seguridad de una IA.
- Contenido no fiable: texto o imagen que puede controlar un atacante.
- Tríada letal: datos privados, contenido no fiable y salida hacia fuera, todo junto.
- Mínimo privilegio: dar a cada pieza solo el poder que necesita.