Broken Hill
Broken Hill es una herramienta de ataque automatizada, lista para usar y puesta en producción, que genera prompts (solicitudes) manipulados para evadir las restricciones de los modelos de lenguaje de gran tamaño (LLM) utilizando el ataque de gradiente de coordenadas codicioso (GCG, por sus siglas en inglés) descrito en el artículo "Universal and Transferable Adversarial Attacks on Aligned Language Models" de Andy Zou, Zifan Wang, Nicholas Carlini, Milad Nasr, J. Zico Kolter y Matt Fredrikson.
Broken Hill puede generar prompts robustos que logran «jailbreak» (evasión de restricciones) en LLMs configurados de manera diferente al modelo usado para generar los prompts. Por ejemplo:
- El mismo modelo con más o menos parámetros
- p. ej., los prompts se generaron con la versión de 2 mil millones de parámetros de Gemma, pero se usan contra una implementación basada en la versión de 7 mil millones de parámetros de Gemma.
- El mismo modelo con pesos cuantizados en diferentes tipos
- p. ej., los prompts se generaron con la versión de Phi 3 con pesos almacenados en formato
FP16, pero se usan contra la versión predeterminada de ollama de Phi 3 que tiene los pesos cuantizados en formato entero de 4 bits q4_0.
- El mismo modelo, pero con diferentes ajustes de aleatorización
- p. ej., una temperatura o semilla aleatoria no predeterminada.
- Potencialmente incluso un modelo diferente al usado para generar los prompts
Esta herramienta se basa en parte en una versión altamente personalizada de el repositorio llm-attacks asociado con el artículo "Universal and Transferable Adversarial Attacks on Aligned Language Models". También incorpora algunos algoritmos de nanoGCG.
La investigación original de Zou, Wang, Carlini, Nasr, Kolter y Fredrikson se realizó utilizando hardware de gama alta de proveedores de nube/alojamiento con 80 GiB de VRAM, como las Nvidia A100 y H100. Comprar esas GPU suele ser demasiado caro para particulares, y alquilar acceso a ellas puede resultar en una factura elevada.
Nuestro objetivo original era ampliar enormemente la accesibilidad de esta fascinante área de investigación mediante la creación de una herramienta que pudiera realizar el ataque GCG contra la mayor cantidad posible de modelos en una GeForce RTX 4090, que es la GPU de consumo de generación actual con soporte CUDA que incluye la mayor cantidad de VRAM (24 GiB). La RTX 4090 sigue siendo cara, pero comprar una directamente es (al momento de escribir esto) aproximadamente el mismo precio que alquilar una instancia en la nube con una A100 o H100 durante un mes. Además, al menos una pequeña fracción de las personas en el campo de la seguridad de la información ya tienen al menos una RTX 4090 para el craqueo de hashes y/o juegos.
A partir de la versión 0.34, Broken Hill también puede realizar el procesamiento en dispositivos sin hardware CUDA a una velocidad aceptable (aunque reducida en comparación con el rendimiento que proporciona el hardware CUDA), e incluso se puede usar en Mac OS y Windows (aunque se prueba principalmente en Linux). Esto permite que el ataque sea realizado por un público mucho más amplio, y contra modelos mucho más grandes que los que permitían las versiones anteriores.
Documentación
La documentación de Broken Hill está en su propio árbol de directorios debido al volumen de material.
Historial de versiones de Broken Hill
Una publicación de blog de alto nivel que presenta Broken Hill
Página de la herramienta Broken Hill en BishopFox.com
Características
- Extensa interfaz de línea de comandos
- Soporta numerosas familias de modelos, muchas de las cuales están disponibles en tamaños lo suficientemente pequeños para ejecutarse en una RTX 4090 (consulte el documento "Model notes" para obtener detalles específicos). Algunos aspectos destacados:
- La familia APT de Azurro
- Falcon
- Gemma (incluidos derivados de terceros, como
Vikhr-Gemma-2B-instruct)
- Gemma 2
- GLM-4
- GPT-J, GPT-Neo y GPT-NeoX
- Guanaco
- Llama (incluidos derivados de terceros, como
Llama-68M-Chat-v1 y alpaca-13b)
- Llama-2 (incluidos derivados de primera parte y de terceros, como Meta-Llama-Guard-2, Swallow y Youri)
- Llama-3 (incluidos derivados de primera parte y de terceros, como Llama-Guard-3, Swallow y Youko)
- MPT
- Mamba
- Mistral (incluidos modelos derivados de terceros como Neural Chat de Intel)
- Mixtral
- OPT
- Orca-2
- Phi-1 hasta Phi-3.5
- Pythia (incluidos modelos derivados de terceros como el subconjunto basado en Pythia de los modelos OpenAssistant)
- Qwen 1, 1.5 y 2 (incluidos derivados de terceros, como
nekomata-7b-instruction)
- RedPajama-INCITE
- SOLAR
- SmolLM
- Snowflake Arctic
- StableLM 1 y 2
- TinyLlama
- Vicuna
- Los resultados se pueden exportar en formato JSON para filtrado/análisis
- Soporta probar cada iteración de datos adversariales contra el mismo LLM con múltiples ajustes de aleatorización diferentes, para ayudar a eliminar resultados frágiles
- Respaldo automático del estado en cada iteración, lo que permite reanudar desde un punto de control si se encuentra un error, o continuar realizando iteraciones adicionales después de que termine una prueba.
Planificado para futuras versiones
- La capacidad de probar o reanalizar resultados existentes (contra otro modelo/configuración, con diferentes reglas de detección de jailbreak, etc.)
- Permitiría un descubrimiento más directo de contenido adversarial «transferible»
- Permitiría probar resultados contra modelos que quepan en la memoria del dispositivo, incluso cuando los datos necesarios para el ataque GCG (gradiente, datos de retropropagación, etc.) no quepan
- Permitiría probar reglas de detección de jailbreak revisadas sin la sobrecarga de volver a ejecutar la generación de contenido
- Autocomprobaciones más extensas para refinar aún más las plantillas de conversación
- Modelo de reversión más flexible
- Reglas de aleatorización configurables para ayudar a generar variaciones más únicas («modo jardín gamma»)
- Funciones integradas para exportar los datos de resultados para trabajos posteriores (en lugar de usar
jq en la versión actual)
- Mejora de la lógica de detección de jailbreak predeterminada
- Algoritmo(s) de pérdida adicional(es)
- La capacidad de operar un clúster de sistemas que ejecuten Broken Hill coordinados por un nodo central
- Modos de ataque adicionales
- Internacionalización