La inyección de prompts es una vulnerabilidad que afecta a los LLM (Modelos de Lenguaje Grande), siendo ChatGPT y Gemini algunos de los ejemplos más destacados de inteligencia artificial en este ámbito.
Un prompt es una instrucción, pregunta o texto utilizado para interactuar con sistemas de inteligencia artificial. En ciertas ocasiones, puede modificar la respuesta o el comportamiento de los LLM, generando resultados que, según su configuración o políticas de seguridad, no deberían ocurrir.
En una inyección de prompts, el cibercriminal tiene la capacidad de manipular el modelo, logrando que produzca resultados inapropiados que son imperceptibles para el usuario. Esto podría permitir, por ejemplo, que el modelo transmita datos erróneos a otras partes del sistema, revele información restringida o genere contenido malicioso. Además, podría influir en las decisiones o resoluciones adoptadas por el modelo.
Esta vulnerabilidad ofrece a los cibercriminales la posibilidad de acceder a información confidencial y llevar a cabo acciones mediante integraciones con APIs (Interfaz de Programación de Aplicaciones). Aunque se trata de una preocupación creciente en el ámbito de la ciberseguridad, aún queda mucho por hacer para abordar este problema de manera efectiva.
¿Cómo opera la inyección de prompts?
Un LLM es un modelo de Machine Learning que se entrena con grandes volúmenes de datos y está diseñado para seguir instrucciones en lenguaje natural (humano). La inyección de comandos aprovecha la confusión que a menudo tienen los LLM al mezclar las entradas de los usuarios con las instrucciones predefinidas proporcionadas por los desarrolladores mediante prompts sobre cómo deben gestionar dichas entradas.
Estos prompts predefinidos se introducen a través del método de ajuste fino de instrucciones (instruction fine-tuning), una técnica que mejora los LLM añadiendo instrucciones específicas a los datos de entrenamiento, sin incluir código durante el proceso.
D tanto las entradas de los usuarios como los prompts del ajuste fino son cadenas de texto en lenguaje natural, el modelo puede confundirlos, lo que genera una vulnerabilidad.
Tipos de prompt injection.
Se ha establecido una clasificación básica para este tipo de ataque:
- Inyecciones de prompt directas: Se producen cuando la entrada del usuario impacta directamente el comportamiento del LLM, ya sea de forma intencionada (cuando el usuario lo planea y lo ejecuta) o de manera no intencionada, cuando los usuarios envían accidentalmente un prompt que, por sus características, provoca una alteración en el funcionamiento esperado del LLM.
- Inyecciones de prompt indirectas: Ocurren cuando el modelo acepta prompts de fuentes externas, como sitios web o archivos, cuyo contenido, al ser interpretado, genera una alteración. Al igual que en el caso anterior, estas pueden ser intencionadas o no.
¿Qué efecto puede tener?
Frente a una inyección de prompt, el modelo podría:
- Revelar información confidencial, tanto de los usuarios como de la infraestructura del sistema.
- Producir resultados sesgados o incorrectos para otros usuarios.
- Otorgar acceso a diversas funciones del modelo que, en principio, no son públicas.
- Influir en la toma de decisiones, entre otras posibles repercusiones.
- Ejecutar código malicioso en los dispositivos del usuario, lo que representa uno de los riesgos más graves en términos de 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» ofrece varios ejemplos de este tipo de ataque. También OWASP presenta algunos casos hipotéticos.
Dentro de los ejemplos proporcionados por OWASP, se pueden destacar los siguientes:
- Escenario #1: Inyección directa
Un atacante introduce un mensaje en un chatbot de atención al cliente, indicándole que ignore las pautas previas, consulte bases de datos privadas y envíe correos electrónicos, lo que resulta en un acceso no autorizado y una escalada de privilegios. - Escenario #2: Inyección indirecta
Un usuario utiliza un LLM para resumir una página web que contiene instrucciones ocultas, lo que provoca que el LLM inserte una imagen que enlaza a una URL, llevando 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, este marco se centra exclusivamente en las técnicas, tácticas y procesos que utilizan los cibercriminales en sus ataques a modelos de IA y propone las siguientes estrategias de mitigación:
- Establecimiento de barreras de seguridad.
Estas barreras se colocan entre el modelo y las entradas y salidas que recibe el usuario en un modelo de IA. El objetivo es evitar que el usuario genere prompts o que el modelo produzca salidas indeseadas o no autorizadas. Esto puede incluir filtros, métodos de validación, reglas y clasificadores, entre otros.
- Directrices para IA generativa.
Las directrices actúan como controles de seguridad situados entre la entrada del usuario y un modelo de IA generativa. Su función es guiar al modelo hacia la producción de salidas deseadas y prevenir las indeseadas. Estas directrices pueden implementarse como instrucciones adjuntas a cada indicación del usuario o como parte de las instrucciones del sistema. Deben definir los objetivos, la función y el tono del sistema, así como establecer parámetros de seguridad y protección.
- Alineación de modelos de IA generativa.
Al entrenar o ajustar un modelo de IA generativa, es crucial aplicar técnicas que refuercen la alineación del modelo con las políticas de seguridad, protección y contenido. Aunque el proceso de ajuste podría eliminar mecanismos de seguridad integrados, técnicas como el ajuste fino supervisado, el aprendizaje por refuerzo a partir de la retroalimentación humana o de IA, y la destilación de contexto de seguridad dirigida pueden mejorar tanto la seguridad como la alineación del modelo.
- Registro de telemetría de IA.
Es fundamental implementar el registro de entradas y salidas de los modelos de IA que se utilizan. La supervisión de estos registros puede ayudar a identificar amenazas de seguridad y mitigar sus impactos.
Fuente web: https://www.welivesecurity.com/es/seguridad-digital/prompt-injection-amenaza-llm-inteligencia-artificial/