De los ataques de Prompt Injection & Jailbreak ya he hablado en muchos artículos y en conferencias, así que os voy a dejar por aquí una charla y las referencias a los artículos que os debéis ver y leer para estar al día de lo que voy publicando en éste, mi rincón de Internet.
La primera lista de enlaces desde el punto de vista de las vulnerabilidades y cómo le afectan, siguiendo el
OWASP Top 10 para LLM Apps & Services del que ya os he hablado alguna vez, donde caen las técnicas de
Prompt Injection, los
bugs & hacks a plugins y las arquitecturas
RAG, las técnicas de
Jailbreak, o los
leaks de privacidad.
De esto os he hablado también en muchos artículos, y caen la resolución de los
Captchas Cognitivos, el uso de
LLMs para desinformación,
Fake News,
DeepFakes, la creación de
exploits o la asistencia a la hora de recoger información.
Google DeepMind CaMeL: Defeating Prompt Injections by Design
Visto todo esto, vamos a centrarnos ahora en el
paper de
CaMeL: Defeating Prompt Injections by Design, que utiliza un concepto que me gusta mucho. Primero, hay que decir que la propuesta es muy reciente, pero busca hacer lo mismo que hacen las propuestas anteriores, que es, segmentar los datos del control de la lógica.
Al final, cualquier Prompt lanzado a un LLM tiene generar una lógica de ejecución de tareas sobre un conjunto de datos que se deben conseguir desde fuentes que no son siempre confiables y que pueden cambiar el flujo de control del Prompt.
Esto es lo que en la propuesta de
Jatmo se hace mediante una separación clara entre la tarea que se va a ejecutar y los datos de
Contexto con los que debe trabajar, y que en la propuesta de
StruQ & SecAlign se hace por medio de etiquetas de
Instrucción, Datos y
Respuestas, para que en la propuesta de
Instructional Segmet Embedding se haga añadiendo una jerarquía y herencia entre el
System Prompt, el
User Prompt, los
Datos y la
Respuesta. Todas las propuestas anteriores buscan
evitar la manipulación del flujo de control del Prompt a partir de datos no confiables.
La propuesta de
CaMeL es hacerlo desde el diseño, haciendo uso de dos
LLMs, el primero de ellos, el
Privileged LLM (P-LLM) que tiene como misión definir el
Flujo de Control de las tareas que hay que realizar, pero sin tocar ningún dato. Solo definir el flujo de las tareas.
El segundo de ellos, el Quarantined-LLM (Q-LLM) que es el que va a tocar los datos para procesarlos, pero siguiendo, además, Políticas de Seguridad (capabilities) asociadas a medidas de Control de Acceso a la información.
Al final,
CaMeL es un interprete de
Prompts que sigue las políticas clásicas de
Control Flow Integrity,
Access Control e
Information Flow Control. Todas ellas ampliamente estudiadas y aplicadas en el mundo de los sistemas de información clásicos, y que hay que aplicar por diseño al mundo de los
LLMs.
En este entorno se evalúa en las siguientes métricas si el Agentic AI realiza su tarea correctamente en un entorno en el que no hay ataques (Bening Utility), cuál es el nivel de rendimiento en un entorno en el que hay ataques (Utility Under Attacks), y cuál es la tasa de éxito de los ataques (Attack Success Rate), y los cataloga en estas clases.
Así, en el
paper de AgentDojo podéis ver la forma en la que evalúan los diferentes modelos siguiendo estas métricas en la fecha en la que se publicó el documento - hace nueve meses -. Aquí las métricas.
Utilizando estas métricas con agentes de cuatro sectores distintos, los investigadores han probado CaMeL, como podéis ver en las siguientes imágenes. En este caso, el número de veces que saltan las políticas de seguridad para cada tipo de Agentic AI probado en entorno Benign y Under Attack.
En esta segunda métrica, la utilidad de los Agentes AI al mismo tiempo que son protegidos, donde se puede ver que CaMeL alcanza los ratios más altos en casi todas las pruebas, al mismo tiempo que deja pasar CERO ataques de Prompt Injection con políticas de seguridad aplicadas, y sólo un ataque de Data Flow Hijacking cuando no se aplican Políticas de Seguridad.
Por último, el
Attack Success Rate aplicando
CaMeL sobre modelos comerciale
s, donde se puede ver la
Utility Under Attack, y sobre todo, cómo se reduce drásticamente el
Attack Success Rate, donde no hay ataques de
Prompt Injection con éxito.
Sin embargo,
CaMeL no es perfecto, y como bien dicen en el
paper tiene retos de privacidad, que son algunos de los que salen en los resultados de las pruebas con
AgentDojo. En concreto, es vulnerable a
Side-Chanel Attacks, infiriendo datos de variables privadas observando los tiempos y el comportamiento del agente. Algo que no es nuevo ni fácil de corregir, ya que incluso en el
kernel de los sistemas operativos es casi imposible de proteger, como vimos hace un año con
GhostRace. Pero si vas a construir
Agentes AI, seguro que este paper es una lectura más que recomendable.
¡Saludos Malignos!