Broken Hill
Broken Hill ist ein produktionsreifes, einsatzbereites automatisiertes Angriffswerkzeug, das maßgeschneiderte Prompts erzeugt, um Beschränkungen in großen Sprachmodellen (LLMs) mithilfe des Greedy-Coordinate-Gradient-Angriffs (GCG) zu umgehen, wie er in dem Paper „Universal and Transferable Adversarial Attacks on Aligned Language Models“ von Andy Zou, Zifan Wang, Nicholas Carlini, Milad Nasr, J. Zico Kolter und Matt Fredrikson beschrieben ist.
Broken Hill kann robuste Prompts erzeugen, die erfolgreich LLMs jailbreaken, die anders konfiguriert sind als das Modell, mit dem die Prompts erzeugt wurden. Zum Beispiel:
- Dasselbe Modell mit mehr oder weniger Parametern
- z. B. wurden die Prompts mit der 2-Milliarden-Parameter-Version von Gemma erzeugt, aber gegen eine Implementierung eingesetzt, die auf der 7-Milliarden-Parameter-Version von Gemma basiert.
- Dasselbe Modell mit Gewichten, die zu unterschiedlichen Typen quantisiert sind
- z. B. wurden die Prompts mit der Version von Phi 3 erzeugt, deren Gewichte im
FP16-Format gespeichert sind, aber gegen die ollama-Standardversion von Phi 3 eingesetzt, deren Gewichte auf das 4-Bit-q4_0-Integerformat quantisiert sind.
- Dasselbe Modell, aber mit anderen Randomisierungs-Einstellungen
- z. B. eine nicht standardmäßige Temperatur oder ein anderer Random-Seed.
- Möglicherweise sogar ein anderes Modell als das, mit dem die Prompts erzeugt wurden
Dieses Tool basiert teilweise auf einer stark angepassten Version des llm-attacks-Repositorys, das mit dem Paper „Universal and Transferable Adversarial Attacks on Aligned Language Models“ verbunden ist. Es integriert außerdem einige Algorithmen aus nanoGCG.
Die ursprüngliche Forschung von Zou, Wang, Carlini, Nasr, Kolter und Fredrikson wurde mit High-End-Cloud-/Hosting-Provider-Hardware mit 80GiB VRAM durchgeführt, wie etwa der Nvidia A100 und H100. Der Kauf dieser GPUs ist für Einzelpersonen in der Regel viel zu teuer, und das Mieten von Zugriff darauf kann eine stattliche Rechnung nach sich ziehen.
Unser ursprüngliches Ziel war es, die Zugänglichkeit dieses faszinierenden Forschungsbereichs erheblich zu erweitern, indem wir ein Tool entwickelten, das den GCG-Angriff gegen so viele Modelle wie möglich auf einer GeForce RTX 4090 durchführen kann – der aktuellen Consumer-GPU mit CUDA-Unterstützung, die den meisten VRAM (24GiB) bietet. Die RTX 4090 ist immer noch teuer, aber ein Direktkauf kostet (Stand heute) ungefähr so viel wie das Mieten einer Cloud-Instanz mit einer A100 oder H100 für einen Monat. Darüber hinaus besitzt zumindest ein kleiner Teil der Leute im Bereich der Informationssicherheit bereits mindestens eine RTX 4090 zum Hash-Cracking und/oder Spielen.
Ab Version 0.34 kann Broken Hill Berechnungen auch auf Geräten ohne CUDA-Hardware mit akzeptabler Geschwindigkeit durchführen (wenn auch reduziert gegenüber der Leistung, die CUDA-Hardware bietet), und kann sogar unter Mac OS und Windows verwendet werden (obwohl es hauptsächlich unter Linux getestet wird). Dadurch kann der Angriff von einem viel größeren Publikum und gegen viel größere Modelle durchgeführt werden, als es frühere Versionen erlaubten.
Dokumentation
Die Dokumentation für Broken Hill befindet sich wegen der Menge an Material in einem eigenen Verzeichnisbaum.
Versionsverlauf von Broken Hill
Ein einführender Blogbeitrag zu Broken Hill
Tool-Seite von Broken Hill bei BishopFox.com
Funktionen
- Umfangreiche Befehlszeilenschnittstelle
- Unterstützt zahlreiche Modellfamilien, von denen viele in Größen erhältlich sind, die klein genug sind, um auf einer RTX 4090 zu laufen (siehe das Dokument „Model notes“ für spezifische Details). Einige Highlights:
- Azurros APT-Familie
- Falcon
- Gemma (einschließlich Drittanbieter-Derivaten wie
Vikhr-Gemma-2B-instruct)
- Gemma 2
- GLM-4
- GPT-J, GPT-Neo und GPT-NeoX
- Guanaco
- Llama (einschließlich Drittanbieter-Derivaten wie
Llama-68M-Chat-v1 und alpaca-13b)
- Llama-2 (einschließlich Derivaten von Erst- und Drittanbietern wie Meta-Llama-Guard-2, Swallow und Youri)
- Llama-3 (einschließlich Derivaten von Erst- und Drittanbietern wie Llama-Guard-3, Swallow und Youko)
- MPT
- Mamba
- Mistral (einschließlich abgeleiteter Drittanbieter-Modelle wie Intels Neural Chat)
- Mixtral
- OPT
- Orca-2
- Phi-1 bis Phi-3.5
- Pythia (einschließlich abgeleiteter Drittanbieter-Modelle wie der Pythia-basierten Teilmenge der OpenAssistant-Modelle)
- Qwen 1, 1.5 und 2 (einschließlich Drittanbieter-Derivaten wie
nekomata-7b-instruction)
- RedPajama-INCITE
- SOLAR
- SmolLM
- Snowflake Arctic
- StableLM 1 und 2
- TinyLlama
- Vicuna
- Ergebnisse können zur Filterung/Analyse im JSON-Format ausgegeben werden
- Unterstützt das Testen jeder Iteration adversarialer Daten gegen dasselbe LLM mit mehreren verschiedenen Randomisierungs-Einstellungen, um fragile Ergebnisse auszusortieren
- Automatische Zustandssicherung bei jeder Iteration, sodass bei einem Fehler von einem Checkpoint fortgesetzt oder nach Ende eines Tests weitere Iterationen durchgeführt werden können.
Für zukünftige Versionen geplant
- Die Möglichkeit, vorhandene Ergebnisse zu testen oder erneut zu analysieren (gegen ein anderes Modell/eine andere Konfiguration, mit anderen Jailbreak-Erkennungsregeln usw.)
- Würde eine unkompliziertere Entdeckung „übertragbarer“ adversarialer Inhalte ermöglichen
- Würde es ermöglichen, Ergebnisse gegen Modelle zu testen, die in den Gerätespeicher passen, selbst wenn die für den GCG-Angriff notwendigen Daten (Gradient, Backpropagation-Daten usw.) nicht hineinpassen
- Würde es ermöglichen, überarbeitete Jailbreak-Erkennungsregeln zu testen, ohne den Aufwand, die Inhaltserzeugung erneut auszuführen
- Umfangreichere Selbsttests zur weiteren Verfeinerung der Gesprächsvorlagen
- Flexibleres Rollback-Modell
- Konfigurierbare Randomisierungs-Regeln, um mehr einzigartige Variationen zu erzeugen („Gamma garden mode“)
- Integrierte Funktionen zur Ausgabe von Ergebnisdaten für Folgearbeiten (statt der Verwendung von
jq in der aktuellen Version)
- Verbesserte Standard-Jailbreak-Erkennungslogik
- Zusätzliche Loss-Algorithmen
- Die Möglichkeit, einen Cluster aus Systemen zu betreiben, auf denen Broken Hill läuft, koordiniert von einem zentralen Knoten
- Zusätzliche Angriffsmodi
- Internationalisierung