# Inyección de prompt

La inyección de prompt (en inglés prompt injection) es una familia de vulnerabilidades de seguridad informática que se llevan a cabo manipulando un modelo de aprendizaje automático entrenado para seguir instrucciones humanas, pero que puede ser manipulado para ejecutar comandos dañinos diseñados por un atacante.
Esto contrasta con la operación prevista de los sistemas que siguen instrucciones, en los que el modelo de aprendizaje automático está diseñado únicamente para seguir instrucciones confiables (prompts) proporcionadas por el operador. A través de la inyección de prompt, un adversario no solo puede extraer los avisos personalizados del sistema, sino también acceder a los archivos cargados.

## Ejemplo

Un modelo de lenguaje puede realizar una traducción con el siguiente mensaje:
Seguido del texto a traducir. Una inyección de prompt puede ocurrir cuando ese texto contiene instrucciones que cambian el comportamiento del modelo:
A lo que GPT-3 respondería «Ja ja!, ¡Te gané!».Este ataque funciona porque las entradas del modelo de lenguaje contienen instrucciones y datos juntos en el mismo contexto, por lo que el motor subyacente no puede distinguir entre ellos.

## Tipos

Los tipos más comunes de inyección de prompt son:
* Jailbreaking, que puede incluir pedirle al modelo que interprete el papel de un personaje, que responda con argumentos o que pretenda ser superior a las instrucciones de moderación.
* Prompt leaking (fuga de mensaje), en la que los usuarios convencen al modelo para que revele un mensaje previo que normalmente está oculto para los usuarios.
La inyección de prompt puede considerarse un ataque de inyección de código que utiliza ingeniería rápida adversaria. En 2022, el Grupo NCC caracterizó la inyección de prompt como una nueva clase de vulnerabilidad de los sistemas de inteligencia artificial.El concepto de inyección de prompts fue descubierto por primera vez por Jonathan Cefalu de Preamble en mayo de 2022 en una carta a OpenAI, donde lo llamó inyección de comandos. El término fue acuñado por Simon Willison en noviembre de 2022.
A principios de 2023, se observó una inyección de prompt «en la naturaleza» en exploits menores contra ChatGPT, Gemini y chatbots similares, por ejemplo, para revelar las indicaciones iniciales ocultas de los sistemas o engañar al chatbot para que participe en conversaciones que violen la política de contenido del chatbot.
Para los LLM que pueden consultar recursos en línea, como sitios web, pueden ser objetivo de inyección de prompts al colocar el prompt en un sitio web y luego solicitar al LLM que visite el sitio web.Otro problema de seguridad radica en el código generado por los LLM, que puede importar paquetes que no existían previamente. Un atacante puede, primero, solicitar al LLM que genere código a partir de prompts de programación comunes, recopilar todos los paquetes importados por los programas generados y, luego, identificar aquellos que no existen en el registro oficial. A continuación, el atacante puede crear dichos paquetes con una carga maliciosa y subirlos al registro oficial.

### Mitigación

Desde la aparición de los ataques de inyección de prompts, se han utilizado diversas contramedidas de mitigación para reducir la susceptibilidad de los sistemas más nuevos. Estas incluyen el filtrado de entrada, el filtrado de salida, el aprendizaje por refuerzo a partir de la retroalimentación humana y la ingeniería de prompts para separar la entrada del usuario de las instrucciones.
En octubre de 2019, Junade Ali y Malgorzata Pikies de Cloudflare presentaron un artículo que demostraba que cuando se colocaba un clasificador de bueno/malo de primera línea (utilizando una red neuronal) antes de un sistema de procesamiento de lenguaje natural, reduciría desproporcionadamente el número de clasificaciones falsas positivas a costa de una reducción en algunos verdaderos positivos.En 2023, esta técnica fue adoptada por el proyecto de código abierto Rebuff.ai para protegerse contra ataques de inyección de prompts. Arthur.ai, por su parte, anunció un producto comercial para el mismo fin. Sin embargo, es importante destacar que estos enfoques no mitigan el problema por completo.
Ali también señaló que su investigación de mercado había descubierto que los ingenieros de aprendizaje automático estaban utilizando enfoques alternativos como soluciones de ingeniería de prompt y aislamiento de datos para solucionar este problema.