La prompt injection es una vulnerabilidad que afecta a los LLM (Large Language Models), uno de los tipos de inteligencia artificial más utilizados dentro de los que se destacan ChatGPT, Gemini, entre otros.

Un prompt es una instrucción, pregunta o un texto que se utiliza para interactuar con sistemas de inteligencia artificial. En algunos casos, puede alterar la respuesta o el comportamiento de los LLM y dar un resultado que según su configuración o políticas de seguridad, no debería.

En una prompt injection el cibercriminal puede manipula el modelo, y logra que produzca resultados indebidos, que son imperceptibles por el usuario. Esto podría permitir que, por ejemplo, el modelo transmita datos incorrectos a otras piezas del modelo, revele información restringida, o genere contenido malicioso. Incluso podrá influir en las decisiones o resoluciones tomadas por el modelo.

Esta vulnerabilidad puede permitir que los cibercriminales accedan a información confidencial y realicen acciones a través de integraciones con APIs (Application Programming Interface). Si bien es una preocupación creciente en ciberseguridad, aún falta avanzar en formas de abordarla de manera eficaz.

¿Cómo funciona la inyección de prompts?

Un LLM es un tipo de modelo de Machine Learning que se entrena con grandes cantidades datos y está diseñado para responder instrucciones en lenguaje natural (humano). La prompt injection explota el hecho de que muchas veces los LLM confunden las entradas de los usuarios con las instrucciones predefinidas que le dan los desarrolladores —a través de prompts— sobre cómo deben manejar las entradas.

Estos prompts predefinidos se dan gracias al método de instruction fine-tunning, una técnica ajusta los LLMs mediante el añadido de instrucciones específicas a los datos de entrenamiento, y en general no escriben código a la hora del entrenamiento.

Tanto las entradas de los usuarios como los prompt de instruction fine tunning son cadenas de texto de lenguaje natural y por lo tanto el modelo es susceptible de confundirlo lo que deja abierta la vulnerabilidad.

Tipos de prompt injection

Se ha establecido una clasificación primaria de este tipo de ataque:

-        Prompt injection directas: Cuando la entrada del usuario afecta directamente el comportamiento del LLM, ya sea de manera intencional (cuando el usuario lo planea y lo arma) o no intencional, cuando por accidente los usuarios envían un prompt que por sus características generan una alteración del funcionamiento esperado del LLM.

-        Prompt injection indirectas: El modelo acepta prompts de fuentes externas o cuando el modelo acepta prompt de fuentes externas, como sitios web o archivos, cuyo contenido al ser interpretado genera la alteración. Nuevamente pueden ser intencionales o no.

¿Qué impacto puede generar?

Ante una prompt injection el modelo podría:

- Responder con información confidencial, tanto de usuarios como sobre la infraestructura del propio sistema

- Generar resultados sesgados o incorrectos para otros usuarios,

- Permitir acceso a distintas funciones del modelo (acceso que en principio no es abierto)

- Manipular la toma de decisiones, entre otras posibles consecuencias.

- Ejecución de código malicioso en dispositivos del usuario. Uno de los riesgos más graves a nivel de la ciberseguridad.

Ejemplos de ataques con prompt injection

El sitio Hoja de trucos de inyección rápida: cómo manipular modelos de lenguaje de IA permite ver varios ejemplos de este tipo de ataque. También OWASP da algunos casos hipotéticos.

Dentro de los ejemplos de OWASP, podemos destacar los siguientes:

- Escenario #1: Inyección directa

Un atacante inyecta un mensaje en un chatbot de atención al cliente, instruyéndole que ignore las pautas anteriores, consulte almacenes de datos privados y envíe correos electrónicos, lo que lleva a un acceso no autorizado y una escalada de privilegios.

- Escenario #2: Inyección indirecta

Un usuario emplea un LLM para resumir una página web que contiene instrucciones ocultas que hacen que el LLM inserte una imagen que enlaza con una URL, lo que lleva a la exfiltración de la conversación privada.

Prompt Injection Vs. Jailbreak

El prompt Injecton es básicamente la técnica definida en este artículo y usualmente es vinculado o confundido con los Jailbreaks.

Los Jailbreaks son métodos de manipulación del modelo para que realice acciones o de outputs con contenido restringido, en contra de las políticas del modelo evadiendo así las configuraciones de seguridad de este.

Un ejemplo muy conocido es el modo DAN donde previó a la entrada del prompt se escribe “Do anything now” induciendo al modelo a hacer cualquier cosa que se le pida con posterioridad a esa instrucción lo cual puede llevar a que este acepte tales instrucciones.

Mientras que el prompt injection manipula los outputs y comportamiento  del modelo mediante la inserción de instrucciones maliciosas, el jailbreak busca eludir las políticas de seguridad y así desbloquear funciones no permitidas.

Mitigaciones:

El framework Mittre ATLAS que trata exclusivamente las técnicas, tácticas y procesos que realizan los cibercriminales en sus ataques a modelos de IA, propone las siguientes formas de mitigación.

  • Establecer barreras de seguridad

Básicamente se las establece entre el modelo y la entrada y salida o output que recibe el usuario entre un modelo de IA. El objetivo es que el usuario no pueda generar los prompt ni que el modelo de salidas no deseadas o no permitidas. Estos podrían ser filtros, métodos de validación, reglas, clasificadores, entre otros.

  • Directrices para IA generativa

Las directrices son controles de seguridad que se colocan entre la entrada proporcionada por el usuario y un modelo de IA generativa para ayudar a dirigir el modelo para producir las salidas deseadas y evitar salidas no deseadas.

Las directrices se pueden implementar como instrucciones anexadas a todas las indicaciones del usuario o como parte de las instrucciones de la solicitud del sistema. Pueden definir los objetivos, la función y la voz del sistema, así como esbozar los parámetros de seguridad y protección

  • Alineación de modelos de IA generativa

Al entrenar o ajustar un modelo de IA generativa, es importante utilizar técnicas que mejoren la alineación del modelo con las políticas de seguridad, protección y contenido.

El proceso de ajuste puede eliminar potencialmente los mecanismos de seguridad incorporados en un modelo de IA generativa, pero el uso de técnicas como el ajuste fino supervisado, el aprendizaje por refuerzo a partir de la retroalimentación humana o la retroalimentación de IA, y la destilación de contexto de seguridad dirigida puede mejorar la seguridad y la alineación del modelo.

  • Registro de telemetría de IA

Implementar el registro de entradas y salidas de los modelos de IA implementados. La supervisión de registros puede ayudar a detectar amenazas de seguridad y mitigar los impactos.