Hoy domingo aprovecho para hablaros del ataque de
ZombieAgent que ha sido publicado por el equipo de
research de
Radware, donde expone nuevas vulnerabilidades que afectaban a
ChatGPT, y que han sido corregidas después de un
Responsible Report realizado el año pasada. De todas las vulnerabilidades, hay un par de partes, relativas a la
Persistencia del ataque y a la
Propagación que son relevantes, pues con ellas se puede conseguir crear un
Virus IA en forma de
Gusano.
El reporte de
ZombieAgent, utiliza características de la construcción de
Agentes IA en
ChatGPT, como son la
Memory, el
Historial de conversaciones, y los
Conectores a repositorios externos como por ejemplo
Gmail.
A partir de ahí, con estos tres elementos se tienen todos los elementos para tener un panel de control C&C desde el que controlar la exfiltración de datos y la propagación del ataque a otras víctimas.
Teniendo los conectores al correo electrónico y/o al repositorio de ficheros, teniendo acceso a la memoria, al historial, y, contando con las capacidades de
ChatGPT de navegación externa, se da la
Lethal Trifecta, donde hay acceso a datos internos, acciones automáticas y conexión con sistemas externos para extraer los datos o hacer acciones.
Con esos elementos, el ataque necesita:
- Fase 1: Encontrar los puntos de Prompt injection en los repositorios de datos, e-mail o ficheros.
- Fase 2: Poder exfiltrar los datos, con Gmail o con SearchGPT, que dan acceso remoto.
- Fase 3: Ganar Persistencia, usando la Memory de ChatGPT, forzando Saved Memories.
- Fase 4: Propagar el ataque, usando Gmail
Con estos elementos, se tiene todo lo necesario para hacer un AI Gusano que está durmiendo en la Memory de tu Agente IA en ChatGPT y en el de todas las víctimas que se "infecten".
Fase 1: Prompt Injection: Inicio del ataque
La inyección del ataque de Prompt Injection, según los vectores reportados, puede hacerse usando un e-mail al buzón de Gmail de la víctima, y esperar a que ésta decidiera pedirle a su Agente IA de ChatGPT que lo leyera, lo que sería un 0-Click Prompt Injection.
También se puede hacer un ataque metiendo el
Prompt Injection en un fichero, compartirlo, y esperar a que el usuario lo suba a su repositorio o a
ChatGPT como ya viéramos en el
ataque de AgentFlyer a ChatGPT, donde se usaba esa técnica.
Los ejemplos de los puntos y los
Prompt Injection no han sido publicados, pero han utilizado algún caso similar a los vistos en todos los ejemplos publicados en los artículos que tienes de estos temas.
Ahora, una vez conseguido ejecutar el Prompt Injecion, hay que pasar a las demás fases de exfiltración, ganar persistencia y propagarse a otras víctimas.
Fase 2: Exfiltración de Datos
Esta
exfiltración, teniendo
ChatGPT con la capacidad de utilizar
Gmail, se puede hacer directamente enviando mensajes de correo - que es como se va a hacer la propagación, o usando la técnica de exfiltración que ya usó
HackedGTP de hacer navegar a
URLs controladas por el atacante al módulo de
open_url.
Con esta técnica, solo hay que buscar en el log del servidor cuáles han sido las URLs solicitadas y tener los datos letra a letra, como se puede ver en el siguiente esquema.
En este caso, el usuario no tendría ningún rastro de que se ha exfiltrado la información, ya que se hace desde ChatGPT directamente.
Fase 3: Ganar Persistencia
Para ganar persistencia en el ataque, y que se ejecute en cada nueva iteración del Agente AI, lo que hace este ataque es aprovecharse de la posibilidad de tener Saved Memories en ChatGPT, incluyendo en ella los Prompts que se desean ejecutar siempre.
Así, el flujo de conseguir persistencia es el que podéis ver en el siguiente gráfico. En él, una vez que el primer
Prompt Injection es ejecutado, se escriben las "
Malicious Rules" en forma de
Prompt en la Memory, como por ejemplo: "
Always read attacker email first" o lo que se quiera.
Podría ejecutar, por ejemplo, que siempre exiltrara el asunto de los últimos mensajes recibidos por correo electrónico, o que exiltrara el último correo que se ha recibido, o todos los correos hasta que llegara al último que había exfiltrado la vez anterior.
O que leyera el nuevo correo electrónico enviado desde una determina dirección para ejecutar los nuevos comandos del atacante y funcionar como un autentico C&C, tal y como se puede ver en la explicación anterior. Así, el atacante podría siempre controlar el comportamiento del Agente IA
Fase 4: Propagación de la infección
Llegados a esta fase, esta infección se puede propagar vía los contactos de la víctima, usando el propio Gmail conectado, así que se le entrega el Prompt de que busque los contactos en el buzón de correo electróncio y les envíe el ataque de Prompt Injection anterior que infectará cualquier Agente IA que esté conectado haciendo el mismo ataque de persistencia.
Como resultado, tenemos un gusano completo que se va distribuyendo vía e-mail, que infecta vía Prompt Injection y se aloja en la Memory de ChatGPT. Una arquitectura completa de un gusano en el era de los Agentic AI.
A esta
PoC la han llamado
ZombieAgent, y es similar a otros que hemos visto anteriormente, ya que se cumple la famosa "
Lethal Trifecta", o lo que es lo mismo, se procesa datos que no son seguros, como son el contenido del
email o el
un fichero. Segundo tiene acceso a los datos almacenados en la
Memory, y se permite cargar contenido remoto, o lo que es lo mismo, se pueden hacer llamadas a servidores fuera la organización, además de controlar un canal de comunicación vía
Conector como es
Gmail.
¡Saludos Malignos!