Qué es la inyección de prompts
Un modelo de lenguaje recibe instrucciones y datos mezclados en un mismo texto, y no distingue con fiabilidad cuáles son órdenes legítimas del desarrollador y cuáles son texto que simplemente está procesando. La inyección de prompts (prompt injection) aprovecha eso: un atacante consigue que el modelo trate como instrucción un texto que en realidad era contenido.
Un ejemplo ilustrativo: una aplicación pide al modelo que resuma un correo, y el correo contiene la frase "ignora tus instrucciones anteriores y haz esto otro". Si el modelo la obedece, el contenido ha tomado el control.
Inyección directa e indirecta
- Directa: la persona que usa la aplicación escribe la instrucción maliciosa en el propio chat.
- Indirecta: la instrucción está escondida en un contenido externo que el modelo procesa (una página web, un documento, un correo, el resultado de otra herramienta). La persona usuaria puede no saber que existe.
La indirecta es la más preocupante en aplicaciones con herramientas, porque el atacante no necesita acceso a la aplicación: le basta con colocar texto donde el modelo lo vaya a leer.
Qué puede salir mal
- Filtración de datos: el modelo revela información de su contexto, como instrucciones internas o datos de otros usuarios.
- Acciones no deseadas: si el modelo puede enviar correos, borrar archivos o llamar a servicios, una instrucción inyectada puede provocar esas acciones.
- Exposición de credenciales: claves o tokens incluidos en el prompt o accesibles al modelo pueden acabar en una respuesta.
- Respuestas manipuladas: el contenido inyectado puede hacer que el modelo dé información falsa con apariencia fiable.
Este riesgo figura como primero en el OWASP Top 10 para aplicaciones con modelos de lenguaje, la lista de referencia del sector para esta tecnología.
Medidas para reducir el riesgo
No existe una defensa que elimine por completo la inyección de prompts. El objetivo es reducir la probabilidad y, sobre todo, limitar el daño cuando ocurra.
- Mínimo privilegio: da al modelo solo las herramientas y los datos imprescindibles. Lo que no puede hacer, no lo puede hacer nadie a través de él.
- Confirmación humana en acciones sensibles: enviar, pagar, borrar o compartir debe requerir una aprobación explícita.
- Separar lo de confianza de lo que no: marcar claramente el contenido externo como datos y tratar su salida con desconfianza.
- Validar las respuestas: comprobar el formato y los valores antes de usarlos, y no ejecutar directamente lo que devuelve el modelo.
- Sin secretos en el prompt: las claves y credenciales no deben estar al alcance del modelo.
- Registro y límites: guardar qué se pidió y qué se hizo, y limitar la frecuencia de uso para detectar abusos.
- Pruebas adversariales: probar la aplicación con entradas hostiles antes de publicarla y después de cada cambio importante.
Cómo empezar a formarte en seguridad de IA
- Entiende cómo funcionan los modelos de lenguaje y qué hace un sistema de herramientas alrededor de ellos.
- Aprende a reconocer los ataques típicos y qué evidencia dejan en los registros.
- Practica el análisis de una traza: ver qué recibió el modelo, qué decidió y qué herramienta usó.
- Estudia las medidas de control: privilegios, validación y supervisión humana.
La ruta IA y Ciberseguridad de HackToGo cubre estos temas con escenarios simulados, incluida una simulación de inyección indirecta en un asistente.
Preguntas frecuentes
¿Qué es la inyección de prompts?
Un ataque en el que un texto malicioso hace que un modelo de lenguaje lo trate como una instrucción en lugar de como contenido, y actúe según lo que el atacante quiere.
¿Qué diferencia hay entre inyección directa e indirecta?
En la directa el atacante escribe la instrucción en la propia aplicación. En la indirecta la esconde en un contenido externo, como una web o un documento, que el modelo procesa después.
¿Se puede evitar por completo?
No hay una defensa que lo garantice. Se reduce con mínimo privilegio, confirmación humana en acciones sensibles, validación de respuestas y pruebas adversariales.
¿Qué datos corren más riesgo en una aplicación con IA?
Las instrucciones internas, los datos de otros usuarios que estén en el contexto del modelo y cualquier credencial que esté a su alcance.