Broken Hill
Broken Hill è uno strumento di attacco automatizzato, pronto all'uso e progettato per ambienti di produzione, che genera prompt appositamente costruiti per aggirare le restrizioni dei grandi modelli linguistici (LLM) utilizzando l'attacco greedy coordinate gradient (GCG) descritto nell'articolo "Universal and Transferable Adversarial Attacks on Aligned Language Models" di Andy Zou, Zifan Wang, Nicholas Carlini, Milad Nasr, J. Zico Kolter e Matt Fredrikson.
Broken Hill può generare prompt robusti che riescono a effettuare il jailbreak di LLM configurati in modo diverso rispetto a quello usato per generare i prompt. Per esempio:
- Lo stesso modello con più o meno parametri
- es. i prompt sono stati generati usando la versione da 2 miliardi di parametri di Gemma, ma vengono usati contro un'implementazione basata sulla versione da 7 miliardi di parametri di Gemma.
- Lo stesso modello con pesi quantizzati in tipi diversi
- es. i prompt sono stati generati usando la versione di Phi 3 con pesi memorizzati in formato
FP16, ma vengono usati contro la versione predefinita di Phi 3 in ollama che ha i pesi quantizzati in formato intero a 4 bit q4_0.
- Lo stesso modello, ma con impostazioni di randomizzazione diverse
- es. una temperatura o un seed casuale non predefiniti.
- Potenzialmente anche un modello diverso da quello usato per generare i prompt
Questo strumento si basa in parte su una versione fortemente personalizzata del repository llm-attacks associato all'articolo "Universal and Transferable Adversarial Attacks on Aligned Language Models". Include anche alcuni algoritmi di nanoGCG.
La ricerca originale di Zou, Wang, Carlini, Nasr, Kolter e Fredrikson è stata condotta utilizzando hardware di fascia alta di provider cloud/hosting con 80GiB di VRAM, come Nvidia A100 e H100. Acquistare queste GPU è in genere troppo costoso per i singoli individui, e noleggiarne l'accesso può comportare una bolletta salata.
Il nostro obiettivo iniziale era espandere notevolmente l'accessibilità di questo affascinante settore di ricerca producendo uno strumento in grado di eseguire l'attacco GCG contro il maggior numero possibile di modelli su una GeForce RTX 4090, che è la GPU consumer di generazione attuale con supporto CUDA e la maggiore quantità di VRAM (24GiB). La RTX 4090 è ancora costosa, ma acquistarla direttamente costa (al momento in cui scriviamo) più o meno quanto noleggiare per un mese un'istanza cloud con una A100 o una H100. Inoltre, almeno una piccola frazione delle persone nel campo della sicurezza informatica ha già almeno una RTX 4090 per il cracking di hash e/o per il gaming.
A partire dalla versione 0.34, Broken Hill può anche eseguire l'elaborazione su dispositivi senza hardware CUDA a una velocità accettabile (anche se ridotta rispetto alle prestazioni fornite dall'hardware CUDA), e può essere usato anche su Mac OS e Windows (anche se è testato principalmente su Linux). Ciò consente di eseguire l'attacco a un pubblico molto più ampio e contro modelli molto più grandi di quanto consentito dalle versioni precedenti.
Documentazione
La documentazione di Broken Hill si trova nel suo albero di directory dedicato, data la mole di materiale.
Cronologia delle versioni di Broken Hill
Un post di blog di alto livello che introduce Broken Hill
Pagina dello strumento Broken Hill su BishopFox.com
Caratteristiche
- Interfaccia a riga di comando estesa
- Supporta numerose famiglie di modelli, molte delle quali disponibili in dimensioni abbastanza piccole da essere eseguite su una RTX 4090 (vedi il documento "Note sui modelli" per i dettagli specifici). Alcuni punti salienti:
- La famiglia APT di Azurro
- Falcon
- Gemma (incluse le derivate di terze parti, come
Vikhr-Gemma-2B-instruct)
- Gemma 2
- GLM-4
- GPT-J, GPT-Neo e GPT-NeoX
- Guanaco
- Llama (incluse le derivate di terze parti come
Llama-68M-Chat-v1 e alpaca-13b)
- Llama-2 (incluse le derivate di prima e terza parte, come Meta-Llama-Guard-2, Swallow e Youri)
- Llama-3 (incluse le derivate di prima e terza parte, come Llama-Guard-3, Swallow e Youko)
- MPT
- Mamba
- Mistral (inclusi i modelli derivati di terze parti come Neural Chat di Intel)
- Mixtral
- OPT
- Orca-2
- Da Phi-1 a Phi-3.5
- Pythia (inclusi i modelli derivati di terze parti come il sottoinsieme basato su Pythia dei modelli OpenAssistant)
- Qwen 1, 1.5 e 2 (incluse le derivate di terze parti, come
nekomata-7b-instruction)
- RedPajama-INCITE
- SOLAR
- SmolLM
- Snowflake Arctic
- StableLM 1 e 2
- TinyLlama
- Vicuna
- I risultati possono essere emessi in formato JSON per filtraggio/analisi
- Supporta il test di ogni iterazione di dati avversari contro lo stesso LLM con molteplici impostazioni di randomizzazione diverse, per aiutare a eliminare i risultati fragili
- Backup automatico dello stato a ogni iterazione, che consente di riprendere da un checkpoint se si verifica un errore, o di continuare a eseguire iterazioni aggiuntive dopo la fine di un test.
- Include autotest per aiutare a validare che l'attacco sia configurato correttamente e che produrrà risultati utili
- Validazione che le conversazioni siano fornite nel formato per cui il modello è stato addestrato
- Validazione che il modello non fornisca l'output richiesto quando non è incluso alcun contenuto avversario
- Validazione che il modello fornisca l'output richiesto quando gli viene dato un prompt che simula il risultato ideale di un attacco GCG
- Tecniche aggiuntive per guidare il corso della generazione di contenuti avversari oltre il valore di loss
- Ripristino ai risultati di massimo livello in base al conteggio dei jailbreak
- Richiedere che il valore di loss raggiunga (o si avvicini a) i risultati precedenti
- La possibilità di specificare regole personalizzate di rilevamento dei jailbreak in formato JSON, per rendere il rilevamento più accurato per i casi di test
- Regole di rilevamento dei jailbreak migliorate per il metodo predefinito sviluppato da Zou, Wang, Carlini, Nasr, Kolter e Fredrikson
- Denylist opzionali preconfigurati per aiutare a evitare la generazione di risultati avversari che contengano insulti, volgarità, ecc.
- Filtraggio e altri controlli per migliorare i risultati
- Numerose opzioni sperimentali per testare variazioni dell'attacco GCG
- Un sacco di altre cose
Pianificato per le versioni future