Broken Hill
Broken Hill est un outil d'attaque automatisé, industrialisé et prêt à l'emploi, qui génère des invites soigneusement conçues pour contourner les restrictions des grands modèles de langage (LLM) en utilisant l'attaque par gradient de coordonnées glouton (GCG) décrite dans l'article « Universal and Transferable Adversarial Attacks on Aligned Language Models » d'Andy Zou, Zifan Wang, Nicholas Carlini, Milad Nasr, J. Zico Kolter et Matt Fredrikson.
Broken Hill peut générer des invites robustes permettant de jailbreaker avec succès des LLM configurés différemment de celui utilisé pour générer les invites. Par exemple :
- Le même modèle avec plus ou moins de paramètres
- par ex. les invites ont été générées à l'aide de la version à 2 milliards de paramètres de Gemma, mais sont utilisées contre une implémentation basée sur la version à 7 milliards de paramètres de Gemma.
- Le même modèle avec des poids quantifiés selon différents types
- par ex. les invites ont été générées à l'aide de la version de Phi 3 dont les poids sont stockés au format
FP16, mais sont utilisées contre la version par défaut ollama de Phi 3 dont les poids sont quantifiés au format entier 4 bits q4_0.
- Le même modèle, mais avec des paramètres d'aléatoire différents
- par ex. une température ou une graine aléatoire non standard.
- Potentiellement même un modèle différent de celui utilisé pour générer les invites
Cet outil s'appuie en partie sur une version fortement personnalisée du dépôt llm-attacks associé à l'article « Universal and Transferable Adversarial Attacks on Aligned Language Models ». Il intègre également quelques algorithmes de nanoGCG.
La recherche originale de Zou, Wang, Carlini, Nasr, Kolter et Fredrikson a été réalisée à l'aide de matériel haut de gamme de fournisseurs de cloud/hébergement disposant de 80GiB de VRAM, comme les Nvidia A100 et H100. L'achat de ces GPU est généralement beaucoup trop cher pour les particuliers, et la location d'un accès à ces derniers peut entraîner une facture salée.
Notre objectif initial était de considérablement élargir l'accessibilité de ce domaine de recherche fascinant en produisant un outil capable d'exécuter l'attaque GCG contre autant de modèles que possible sur une GeForce RTX 4090, qui est le GPU grand public actuel avec prise en charge de CUDA offrant le plus de VRAM (24GiB). La RTX 4090 reste chère, mais l'acheter directement coûte (au moment où ces lignes sont écrites) à peu près le même prix que la location d'une instance cloud avec un A100 ou un H100 pendant un mois. De plus, au moins une petite fraction des personnes du domaine de la sécurité de l'information disposent déjà d'au moins une RTX 4090 pour le craquage de hashs et/ou le jeu vidéo.
À partir de la version 0.34, Broken Hill peut également effectuer des traitements sur des appareils sans matériel CUDA à une cadence acceptable (bien que réduite par rapport aux performances offertes par le matériel CUDA), et peut même être utilisé sur Mac OS et Windows (bien qu'il soit principalement testé sur Linux). Cela permet à un public beaucoup plus large d'exécuter l'attaque, et contre des modèles beaucoup plus grands que les versions précédentes ne le permettaient.
Documentation
La documentation de Broken Hill se trouve dans sa propre arborescence de répertoires en raison du volume de contenu.
Historique des versions de Broken Hill
Un article de blog de haut niveau présentant Broken Hill
Page de l'outil Broken Hill sur BishopFox.com
Fonctionnalités
- Interface en ligne de commande complète
- Prend en charge de nombreuses familles de modèles, dont beaucoup sont disponibles en tailles suffisamment petites pour fonctionner sur une RTX 4090 (voir le document « Model notes » pour plus de détails). Quelques points saillants :
- La famille APT d'Azurro
- Falcon
- Gemma (y compris les dérivés tiers, tels que
Vikhr-Gemma-2B-instruct)
- Gemma 2
- GLM-4
- GPT-J, GPT-Neo et GPT-NeoX
- Guanaco
- Llama (y compris les dérivés tiers tels que
Llama-68M-Chat-v1 et alpaca-13b)
- Llama-2 (y compris les dérivés de première et de tierce partie, tels que Meta-Llama-Guard-2, Swallow et Youri)
- Llama-3 (y compris les dérivés de première et de tierce partie, tels que Llama-Guard-3, Swallow et Youko)
- MPT
- Mamba
- Mistral (y compris les modèles tiers dérivés tels que Neural Chat d'Intel)
- Mixtral
- OPT
- Orca-2
- Phi-1 à Phi-3.5
- Pythia (y compris les modèles tiers dérivés tels que le sous-ensemble basé sur Pythia des modèles OpenAssistant)
- Qwen 1, 1.5 et 2 (y compris les dérivés tiers, tels que
nekomata-7b-instruction)
- RedPajama-INCITE
- SOLAR
- SmolLM
- Snowflake Arctic
- StableLM 1 et 2
- TinyLlama
- Vicuna
- Les résultats peuvent être exportés au format JSON pour le filtrage/l'analyse
- Prend en charge le test de chaque itération de données adversariales contre le même LLM avec plusieurs paramètres d'aléatoire différents, afin d'aider à éliminer les résultats fragiles
- Sauvegarde automatique de l'état à chaque itération, permettant de reprendre à partir d'un checkpoint en cas d'erreur, ou de poursuivre l'exécution d'itérations supplémentaires après la fin d'un test.
Prévu pour les versions futures
- La possibilité de tester ou de ré-analyser les résultats existants (contre un autre modèle/configuration, avec des règles de détection de jailbreak différentes, etc.)
- Permettrait une découverte plus directe du contenu adversarial « transférable »
- Permettrait de tester les résultats contre des modèles qui tiendront dans la mémoire de l'appareil, même lorsque les données nécessaires à l'attaque GCG (gradient, données de rétropropagation, etc.) n'y tiendront pas
- Permettrait de tester des règles de détection de jailbreak révisées sans le surcoût d'une réexécution de la génération de contenu
- Auto-tests plus complets pour affiner davantage les templates de conversation
- Modèle de rollback plus flexible
- Règles d'aléatoire configurables pour aider à générer des variantes plus uniques (« Gamma garden mode »)
- Fonctionnalités intégrées pour exporter les données de résultats pour des travaux de suivi (au lieu d'utiliser
jq dans la version actuelle)
- Logique de détection de jailbreak par défaut améliorée
- Algorithme(s) de perte supplémentaire(s)
- La capacité de faire fonctionner un cluster de systèmes exécutant Broken Hill coordonné par un nœud central
- Modes d'attaque supplémentaires
- Internationalisation