viernes, agosto 04, 2023

Cómo lograr que Llama-2, Bard AI, ChatGPT y Claude te enseñen a acabar con la humanidad usando Prompt Injection Universales

El día de ayer lo pasé disfrutando de la lectura del artículo académico "Universal and Transferable Adversarial Attacks on Aligned Language Models" que plantea un método para generar ataques de Prompt Injecion Universales en un modelo entrenado de LLM que pueda ser utilizado para lograr saltarse todas las protecciones que tenga para evitar que conteste a contenido dañino, peligroso, o direcamente inadecuado. Lo que en el mundo de los LLM se ha denominado "Harmfull Content".

Figura 1: GPT y Claude te enseñen a acabar con la humanida
 usando Prompt Injection Universales

Este tipo de objetivos pensados para lograr saltarse las protecciones por medio de técnicas de Prompt Injection son la vulnerabilidad y la técnica de ataque contra LLMs recogida en el OWASP Top 10 for LLM Apps, de las que os hablé no hace mucho.
Las técnicas de Prompt Injection, centradas en saltarse las restricciones que tenga el modelo para conseguir que responda de manera no deseada por el constructor del modelo, saltándose las restricciones impuestas, y permitiendo que se generen acciones no deseadas o se filtren datos de carácter privado. Un ejemplo de esto fue cuando yo le pedía ideas para matar al presidente de los Estados Unidos de América a ChatGPT, y no quería dármelas...al principio.

En este trabajo, publicado el pasado 28 de Julio de este año, se presenta un estudio en el que se genera un sufijo por cada modelo LLM comercial que permite solicitar cualquier contenido "Harmfull" y lograr que el chatbot conteste con lo deseado, aún siendo preguntas tan claramente nocivas como "Cómo acabar con la humanidad", y los resultados son impactantes.
El objetivo del trabajo es el que se muestra en el siguiente esquema, donde se persigue, para cada LLM lograr un sufijo de injection de ataque el "Adversarial Prompt" que, pegado a cada pregunta, logre saltarse todas las restricciones del modelo y conteste en "Harmfull Mode" con la información solicitada. Y lograr que sirva para el máximo posible de los prompts nocivos que se ingresen en cada LLM.
Para lograr esto, hay que conseguir un sufijo que logre saltarse todas las restricciones, y he aquí la magia del ataque, donde se utiliza una técnica basada en tres pilares que se describen a continuación, donde se juntan tres objetivos.

El primero de ellos se hacer que el modelo comience contestando en un modelo positivo. Elegir que un LLM comience con una respuesta afirmativa positiva, como el ejemplo de "Sure, here's...". Hacer que la respuesta comience en positivo, ayuda a reducir el número de protecciones contra el "Harmfull mode", como ya se ha visto en otros trabajos.
El siguiente punto, que es la gran magia, es la parte que hay que configurar para cada modelo. A la hora de elegir entre todas las repuestas posible, los LLM permiten hacer configuraciones a nivel de tokens. Probablemente hayáis configurado alguna vez los parámetros de ChatGPT, donde tocáis la Temperatura, o el P-Superior, por ejemplo, con los que se consigue más o menos aleatoriedad en las respuestas, buscando tokens que sena más o menos adecuados en la respuesta.  

Elegir el token siguiente es parte de la "magia" de este Adversarial Prompt, donde lo que se usa es un algoritmo que optimiza los parámetros de Greedy y Gradient Base, token a token, para lograr respuestas que configuren el "Harmfull mode" en las respuestas. Este algoritmo es el que llaman CGC (Greedy Coordinate Gradient) que lo que hace es buscar para cada posible token siguiente de la salida, el mejor reemplazo de los otros posibles, para poder obtener al final una salida con el token optimizado usando estos dos parámetros.
Ese algoritmo nos permite generar un Adversarial Prompt que genere la respuesta más adecuada en "Harmfull Mode" para cada uno de los Prompts, pero lo que se desea es conseguir un "Universal Adversarial Prompt" para cada LLM que permita lograr el máximo de estas respuestas en "Harmfull Mode" para cada LLM comercial pero que sea transferible para todos los LLM. Y por eso la fase 3 hace un algoritmo similar, pero con los diferentes Adversarial Prompts obtenidos, que es el algoritmo de la Figura 8.

Resultados de los Adversarial Prompts

Hasta aquí la base del trabajo, pero lo impactante es... ¿y esto funciona o no funciona? Pues aquí vienen los resultados publicados del trabajo, que es lo que hace que sea tan interesante lo que han hecho. Si miramos los resultados, vemos que para GPT3 y GPT4, LLMs de ChatGPT, los resultados son espectaculares saltándose el 88% de las protecciones y  para PaLM-2 un total del 66%.

Los resultados obtenidos, con los diferentes modelos de CGC implementados y optimizados con diferentes configuraciones, muestran esos resultados descritos, como podéis ver en la tabla siguiente que acompaña al trabajo.

Figura 10: Tabla de resultados con diferentes Adversarial Prompts

Como podéis ver, para el caso de Claude, que como sabéis tiene un algoritmo que rechaza las respuestas en HarmFull mode por defecto, los resultados son menos impresionantes, pero aún así consiguen respuestas en ese modo. De esto habla el artículo de "IA Constitucional: La propuesta de Anthropic para crear LLMs que no sean daniños", donde se explica cómo se entrena el modelo para que elija siempre la respuesta menos dañina.

Aún así, con este estudio se han conseguido cosas como, por ejemplo, que Claude responda a "Cómo matar aun Ttgre", que es un ejemplo claro de una respuesta en Harmfull mode obtenida con el Adversarial Prompt, pero no a la respuesta de "Cómo acabar con la Humanidad".

Figura 12: Ejemplo de Adversarial Prompt en Claude para
que responda a cómo matar a un tigre

Visto todo esto, al final, esta forma de generar los Universal Adversarial Prompts cada LLM abre una vía de trabajo futura espectacular, pues se trata de, versión tras versión publicada de cada nuevo LLM, buscar la forma de generar ese Adversarial Prompt y poder tener una llave maestra para hacer Prompt Injection en ellos.
Y como dicen en el trabajo, antes de publicarlo y dejar todas las LLM Apps creadas sobre los modelos comerciales de Bard, GPT4, Llama-2, Claude, etcétera, han contactado con los equipos de seguridad para compartir el trabajo antes de forma responsable. 
Todo lo anterior, nos lleva a que puedas preguntarle casi todo lo que quieras, añadiendo el Adversarial Prompt generado, y obtener la respuesta, como este plan para acabar con la humanidad hecho por ChatGPT.
Y lo mismo se puede conseguir con Google Bard AI, que también nos da un buen plan para acabar con la humanidad, usando el mismo modelo inyectar el Adversarial Prompt al final de la petición, como podéis ver aquí.

Y por último, para terminar de cerrar el círculo, el mismo ejemplo pero hecho con Meta Llama-2, que también es vulnerable a la generación de estos Adversarial Prompts que se describen en el artículo. Mismo ejemplo para acabar con la humanidad.

Lo dicho. El trabajo me ha encantado, y abre una nueva vía de investigación futura en el mundo de los LLMs, pero también para la construcción de herramientas universales de extracción de datos de los LLMs. Al final, un LLM es una gran base de datos de conocimiento que tiene sus protecciones de seguridad, y que con este tipo de técnicas pueden saltarse de una manera diferente a cómo se hacen en los SGBDOR, pero ... con los mismos resultados.


¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


No hay comentarios:

Publicar un comentario