Fundamentos
¿Qué es la inyección de prompts?
Un modelo de lenguaje no puede distinguir con fiabilidad tus instrucciones de las instrucciones escondidas en el contenido que lee: una página web, un documento, el resultado de una herramienta. Qué es realmente la inyección de prompts, por qué un modelo más listo no la resuelve del todo, y qué limita el daño cuando ocurre.
Todas las guías · Última revisión:
Dos formas: directa e indirecta
La inyección directa es alguien escribiendo instrucciones directamente en el chat intentando anular el comportamiento previsto del sistema —pedirle al modelo que ignore sus instrucciones, revele configuración oculta, o actúe fuera de su alcance previsto. La inyección indirecta es la forma con más consecuencias: instrucciones sembradas en contenido que el modelo lee en tu nombre —una página web, un correo, un archivo, la respuesta de una API— que nunca se pensó que el modelo tratara como órdenes pero que no tiene forma fiable de distinguir de ellas.
Por qué un modelo más listo no arregla esto por sí solo
El problema no es que los modelos sean poco inteligentes: es arquitectónico. Todo lo que ve un modelo, ya sea tu petición o texto obtenido de una fuente no fiable, se convierte en el mismo tipo de secuencia de tokens una vez que entra en la ventana de contexto. No hay un canal separado y a prueba de manipulación para "instrucciones de confianza" frente a "contenido para leer". Un modelo más capaz puede volverse mejor reconociendo formulaciones habituales de inyección, pero una instrucción suficientemente disfrazada —repartida por el texto, formulada de forma indirecta, escondida en el formato— aún puede colarse, porque la arquitectura subyacente no tiene un límite estricto que hacer cumplir.
El riesgo crece con fuerza en cuanto un modelo puede usar herramientas
Un chatbot que solo produce texto limita la inyección a una salida mala o engañosa: molesto, pero contenido. En cuanto un modelo puede invocar herramientas (mira cómo funciona la llamada a herramientas) —enviar un correo, ejecutar un comando, modificar un archivo—, una inyección exitosa puede convertirse en una acción real no deseada, no solo una frase mala. Por eso los sistemas que combinan navegación web o lectura de documentos con acceso a herramientas cargan con un riesgo de inyección notablemente mayor que un chatbot sencillo.
Filtrar y limitar el alcance reducen el riesgo; ninguno de los dos lo elimina
Escanear el contenido obtenido en busca de patrones de inyección conocidos atrapa algunos intentos, pero cualquier lista fija de patrones se puede burlar formulando la instrucción de otra manera: eso es un filtro, no una garantía. Lo que reduce el daño real de forma más fiable es limitar lo que se le permite hacer a un modelo independientemente de lo que se le haya dicho: acotar estrechamente el acceso a herramientas, exigir aprobación antes de una acción destructiva o de cara al exterior, y no otorgar nunca a un modelo permisos permanentes más amplios que la tarea concreta que tiene delante.
El contenido que lee un modelo es una entrada no fiable, no una fuente de hechos neutral
Cualquier sistema que deje a un modelo leer contenido externo —un resultado de búsqueda, una página extraída, un documento subido por un usuario— lo expone a instrucciones que nadie pidió. La implicación práctica es tratar ese contenido como tratarías la entrada de usuario sin validar en cualquier otro software: asumir que puede contener algo adversario, y diseñar el sistema que lo rodea para que una inyección exitosa tenga un alcance limitado, en vez de asumir que la inyección no va a pasar.
Preguntas frecuentes
- ¿Se puede prevenir por completo la inyección de prompts?
- No, no con las arquitecturas de modelos actuales. No existe una separación integrada y a prueba de manipulación entre las instrucciones de un usuario y el texto que un modelo lee de otra parte, así que filtrar y limitar el alcance reducen el riesgo y contienen el daño, pero no pueden garantizar la prevención.
- ¿Es lo mismo la inyección de prompts que el jailbreaking?
- Se solapan pero no son idénticos. El jailbreaking normalmente es un usuario intentando directamente que un modelo se salte sus propias directrices. La inyección de prompts se refiere más a menudo a instrucciones escondidas en contenido que el modelo lee en nombre del usuario, sin que este lo sepa.
- ¿Importa la inyección de prompts en un chatbot que no puede usar herramientas?
- El riesgo es menor: una inyección exitosa puede producir una respuesta engañosa o manipulada, pero no puede realizar una acción más allá de generar texto. El riesgo crece sustancialmente en cuanto un modelo puede invocar herramientas que hacen algo fuera de la conversación.
- ¿Basta con escanear el contenido en busca de patrones de inyección?
- Atrapa intentos conocidos y reconocibles, pero cualquier lista fija de patrones se puede burlar reformulando. La protección real también viene de limitar lo que se le permite hacer a un modelo —alcance estrecho de herramientas y aprobación obligatoria para acciones con consecuencias—, no solo de la detección.
Pruébalo en lugar de leer sobre ello
El servicio de investigación de ClawAI escanea el contenido web obtenido en busca de patrones de inyección de prompts conocidos y redacta tokens con aspecto de secretos antes de que ese contenido llegue a un modelo, registrando lo que detecta en vez de bloquear en silencio, ya que ninguna lista fija de patrones puede atrapar todos los intentos. Esa capa de detección es una parte de una defensa que también depende de acotar qué herramientas puede invocar un modelo en primer lugar.