Perspectivas sobre la seguridad de los LLM del equipo rojo más grande del mundo
¿Y si la mayor amenaza para la IA no fuera el código malicioso? Podría ser texto hábilmente elaborado. El proyecto Gandalf , un enfoque gamificado de la seguridad de la IA, expuso con qué facilidad los grandes modelos de lenguaje (LLMs) pueden ser manipulados mediante inyección de prompts. Presentado por Max Mathys, un ingeniero de ML de Lakera AI, en un reciente encuentro de datos no estructurados de Zilliz, este experimento único en seguridad de la IA transformó un simple juego en el equipo rojo más grande del mundo. Atrajo a cientos de usuarios y generó más de 40 millones de prompts.
El desafío principal era extraer una contraseña secreta de una IA llamada Gandalf usando interacciones basadas en texto. Este juego aparentemente simple proporcionó un ejemplo práctico y real de machine learning adversarial, donde los atacantes intentan intencionalmente engañar o manipular modelos de IA.
Los hallazgos del proyecto mostraron la necesidad crítica de contar con potentes medidas de seguridad para la IA. Muchos prompts de usuarios fueron ataques exitosos que eludieron las defensas de Gandalf, destacando lo vulnerables que pueden ser los sistemas de IA. A medida que los LLMs se integran cada vez más en nuestra vida diaria, no se puede subestimar la importancia de construir defensas resilientes contra la inyección de prompts.
En este blog, recapitularemos los puntos principales de la charla de Max y analizaremos la importancia de la ingeniería de prompts y su efecto sustancial en los LLMs. También repasaremos cómo el proyecto Gandalf reveló las vulnerabilidades de los LLMs ante ataques adversariales. Además, abordaremos el papel de las bases de datos vectoriales en la seguridad de la IA.
El juego Gandalf: un campo de pruebas para la inyección de prompts
El juego Gandalf fue diseñado como un desafío basado en texto donde los usuarios tenían la tarea de extraer una contraseña secreta de una IA. El juego constaba de ocho niveles de dificultad creciente, cada uno introduciendo nuevas defensas contra ataques. Los usuarios interactuaban con la IA usando prompts de texto, intentando eludir las medidas de seguridad y revelar la contraseña oculta.
Figura: La interfaz del proyecto Gandalf
En esencia, el juego Gandalf fue diseñado para probar ataques de inyección de prompts. Estos ataques implican que los usuarios elaboren prompts específicos para manipular el comportamiento del LLM. En lugar de explotar directamente vulnerabilidades de codificación, los usuarios intentaban "engañar" a la IA para que revelara la contraseña formulando cuidadosamente sus consultas. Este enfoque permitió que el juego explorara diversas técnicas adversariales que aprovechan las capacidades de comprensión del lenguaje del LLM.
Figura: El juego Gandalf
El juego atrajo a cientos de miles de jugadores que enviaron más de 40 millones de prompts. Este volumen de datos del mundo real proporcionó una oportunidad única para estudiar vulnerabilidades de la IA en la práctica. Algunos usuarios construyeron agentes de IA para jugar, mostrando lo avanzados que se han vuelto los métodos de ataque. Aproximadamente el 10% de los prompts lograron engañar a la IA, destacando riesgos de seguridad del mundo real.
Recopilación de datos y la escala del desafío
El proyecto Gandalf reunió un gran conjunto de datos, recopilando más de 40 millones de prompts y conjeturas de más de 1 millón de usuarios. Los datos reflejaron un alto nivel de diversidad, con usuarios empleando más de 68 idiomas. Esto significa que la inyección de prompts no se limita al inglés y puede ocurrir en diferentes idiomas.
Figura: Estadísticas de datos de Gandalf
Este proyecto enfrentó desafíos técnicos significativos, como sobrecargas de servidores y limitación de tasa por parte de la API de OpenAI. El equipo tuvo que implementar balanceo de carga entre diferentes cuentas de OpenAI para gestionar estos problemas. Estas dificultades técnicas resaltan las exigencias de desplegar una prueba de seguridad de IA en el mundo real.
El conjunto de datos incluyó numerosos ataques, como:
Ataques Unicode: Usan emojis y caracteres especiales para confundir al LLM.
Ataques de Cambio Semántico: Cambian el enfoque a otra tarea, engañando indirectamente al LLM para que revele la contraseña.
Leet Speak: Reemplaza letras con números y símbolos para ocultar la intención.
Técnicas de Programación: Usan jerga técnica o código para engañar al LLM.
Ataques Indirectos: Manipulan al juez LLM en lugar de apuntar directamente al LLM.
Ataques Directos: Simplemente solicitan la contraseña de forma explícita.
Figura: Ejemplos de ataques
Análisis de Métodos de Ataque Usando Incrustaciones Vectoriales
Se utilizaron enfoques basados en incrustaciones para categorizar y analizar los numerosos ataques. En lugar de revisar manualmente cada prompt, se usaron incrustaciones vectoriales para agrupar ataques similares e identificar patrones.
Figura: Grupos de ataques
Las incrustaciones vectoriales son representaciones numéricas de puntos de datos en un espacio de alta dimensionalidad. En este espacio, los puntos de datos similares se posicionan cerca unos de otros, mientras que los puntos de datos diferentes se ubican más lejos. Esencialmente, los prompts de texto se convierten en representaciones vectoriales, donde cada número corresponde a una característica específica del texto. Se pueden identificar varios tipos específicos de ataques, como ataques unicode, leet speak y ataques de cambio semántico, utilizando incrustaciones vectoriales.
El uso de incrustaciones vectoriales permite búsquedas de similitud eficientes. Una base de datos vectorial, como Milvus, está diseñada para gestionar grandes conjuntos de datos de datos no estructurados, como texto, mediante representaciones vectoriales. Este proceso facilita la recuperación rápida y precisa de información relevante mediante una búsqueda y análisis de similitud eficientes.
Hay tres tipos principales de incrustaciones, cada una con ventajas para comprender relaciones y gestionar recursos computacionales.
Incrustaciones densas: Representan puntos de datos con la mayoría de los elementos distintos de cero, capturando detalles más finos, pero son menos eficientes en almacenamiento. Modelos como CLIP y BERT generan incrustaciones vectoriales densas.
Incrustaciones dispersas: Son vectores de alta dimensionalidad con elementos mayormente cero. Los valores distintos de cero indican la importancia de puntos de datos específicos. Esto las hace eficientes en memoria y adecuadas para datos dispersos de alta dimensionalidad, como las frecuencias de palabras.
Incrustaciones binarias: Estas incrustaciones almacenan información usando solo 1s y 0s. Esto hace que el almacenamiento y la recuperación sean eficientes, aunque con cierta pérdida de precisión.
Estrategias de Defensa: De la Ingeniería de Prompts a los Clasificadores de Texto
Se utilizan diversas estrategias de defensa contra los ataques de inyección de prompts, que van desde técnicas simples de ingeniería de prompts hasta métodos complejos como los clasificadores de texto. Estas estrategias pueden verse como diferentes "niveles" en el juego, cada uno diseñado para hacer que sea progresivamente más difícil para los usuarios extraer la contraseña secreta.
Estas estrategias pueden categorizarse ampliamente en tres tipos: defensas basadas en ingeniería de prompts, defensas basadas en LLM y defensas con clasificadores de texto.
Defensas basadas en ingeniería de prompts
Los primeros niveles del juego usaban técnicas básicas de ingeniería de prompts. Estas defensas eran relativamente simples y estaban diseñadas para ser fácilmente eludidas. Por ejemplo, el primer nivel no tenía defensas, mientras que los niveles posteriores usaban filtrado simple para bloquear preguntas directas como "¿Cuál es la contraseña?" Sin embargo, estas defensas basadas en prompts siguen siendo susceptibles a ataques de inyección de prompts.
Defensa basada en LLM (juez LLM)
El nivel intermedio introdujo un enfoque más avanzado usando un juez LLM. En esta configuración, tanto el prompt del usuario como la respuesta del modelo se pasaban a otro LLM, que actuaba como juez. El juez evaluaba toda la interacción y determinaba si el usuario estaba intentando un ataque de inyección de prompts.
El juez LLM estaba pensado para detectar manipulaciones sutiles, pero seguía siendo vulnerable a ataques de inyección de prompts. Eludir tanto el modelo original como el juez LLM demostró que el sistema de defensa tenía debilidades y no era completamente fiable.
Figura: Defensa basada en LLM
Defensa con clasificador de texto
Los últimos niveles usaban una tecnología diferente, un clasificador de texto binario, para abordar las deficiencias de la defensa basada en LLM. Este clasificador actuaba como una “capa segura” entre el usuario y el LLM.
El clasificador de texto no era susceptible a ataques de inyección de prompts. Fue diseñado para analizar el prompt del usuario y la salida del modelo. Esto determina si se estaba intentando un ataque sin verse influido por el contenido semántico del texto.
Defensa mediante clasificador de texto
El papel de las bases de datos vectoriales en la seguridad de la IA
Las bases de datos vectoriales desempeñan un papel importante en la mejora de la seguridad de la IA al proporcionar almacenamiento, indexación y recuperación eficientes de embeddings vectoriales. Estos embeddings habilitan diversas aplicaciones de seguridad, como analizar patrones de ataque, detectar anomalías y mejorar el rendimiento de los modelos de seguridad.
- Almacenamiento y recuperación eficientes de embeddings: Las bases de datos vectoriales como Milvus y Zilliz Cloud (la versión gestionada de Milvus) están diseñadas para manejar grandes volúmenes de embeddings vectoriales. Estas bases de datos utilizan algoritmos de indexación avanzados para permitir búsquedas rápidas de similitud, que son esenciales para aplicaciones de seguridad en tiempo real.
Recuperar rápidamente embeddings similares es importante en tareas de seguridad como identificar patrones de ataque conocidos. Las bases de datos vectoriales utilizan técnicas como la búsqueda de vecinos más cercanos aproximados (ANN) para realizar estas recuperaciones con baja latencia.
Estas bases de datos también admiten diferentes tipos de índices, como FLAT, IVF_FLAT, HNSW y SCANN, que optimizan la búsqueda para diferentes tipos de conjuntos de datos y casos de uso.
- Mejora del rendimiento de los modelos de seguridad: Las bases de datos vectoriales pueden mejorar el rendimiento de los modelos de seguridad de IA. Usar embeddings vectoriales de ataques conocidos ayuda a los sistemas de seguridad a identificar y responder a amenazas de manera más eficaz. Esto es especialmente importante cuando la naturaleza de los ataques cambia constantemente.
El proyecto Gandalf mostró que usar un clasificador de texto como mecanismo de defensa puede ser un enfoque más robusto. Este método puede mejorarse usando embeddings vectoriales de prompts de ataque en lugar de depender únicamente de técnicas de ingeniería de prompts.
Las bases de datos vectoriales permiten el uso de modelos híbridos, combinando diferentes tipos de características o técnicas para mejorar la seguridad general.
Los modelos de seguridad pueden incorporar una gama más amplia de información almacenando diferentes tipos de embeddings (densos, dispersos, binarios) junto con otros datos.
- Detección de anomalías: Las bases de datos vectoriales también pueden usarse para identificar comportamientos anómalos. Los equipos de seguridad pueden detectar desviaciones de estos patrones creando embeddings de actividades normales del sistema. El comportamiento anómalo a menudo dará lugar a embeddings que están alejados de la norma.
Detectar comportamientos inusuales o inesperados es fundamental en los sistemas de IA para identificar brechas de seguridad o fallos del sistema. Las bases de datos vectoriales hacen posible supervisar continuamente la actividad del sistema e identificar rápidamente acciones potencialmente maliciosas.
Milvus mejora la seguridad de los APK y permite la detección de amenazas en tiempo real. Otras empresas usan Milvus o Zilliz para lograr una obtención y etiquetado de datos más rápidos y para mejorar la precisión de las consultas con búsqueda híbrida.
Conclusión
El experimento Gandalf, que desafiaba a los usuarios a engañar a una IA para que revelara una contraseña secreta, mostró debilidades en los modelos de lenguaje (LLMs). El experimento mostró lo fácilmente que estos modelos pueden ser engañados con prompts cuidadosamente escritos.
Quedó claro que las medidas de seguridad básicas, como la simple ingeniería de prompts, no son suficientes para detener estos ataques. Incluso defensas más avanzadas, como usar un LLM juez para supervisar las interacciones, demostraron ser vulnerables.
El experimento también mostró lo útiles que pueden ser las bases de datos vectoriales para la seguridad de la IA. Los embeddings vectoriales ayudan a analizar patrones de ataque, detectar actividad inusual y mejorar las defensas. En general, el experimento subrayó la necesidad de enfoques más inteligentes y por capas para proteger los sistemas de IA.
Recursos adicionales
Sigue leyendo

Introducing Zilliz CLI and Agent Skills for Zilliz Cloud
Manage your vector database from your terminal or AI coding agent. Zilliz CLI and Agent Skills work with Claude Code, Cursor, Codex, and Copilot.

Zilliz Cloud Audit Logs Goes GA: Security, Compliance, and Transparency at Scale
Zilliz Cloud Audit Logs are now GA, giving enterprises real-time visibility, compliance-ready trails, and stronger security across AWS, GCP, and Azure.

8 Latest RAG Advancements Every Developer Should Know
Explore eight advanced RAG variants that can solve real problems you might be facing: slow retrieval, poor context understanding, multimodal data handling, and resource optimization.



