
Codice di ricerca che riproduce esperimenti di jailbreak multi-turno su LLM (FITD, MRCJ, ActorAttack, X-Teaming) dal paper di sistematizzazione SoK orientato all'intento.
Questo repository contiene la versione di rilascio del codice utilizzato per le analisi dei meccanismi in SoK: Intent-Oriented Systematization of Multi-Turn LLM Jailbreaks.
Il repository è stato ridotto per mantenere solo codice, prompt, file di configurazione e dataset necessari agli esperimenti descritti nell'Appendice A del paper. Log generati, file in cache, ambienti virtuali, risultati precedenti, figure e output di analisi ad-hoc sono stati intenzionalmente rimossi.
| Domanda del paper | Metodo/i | Categoria | Directory locale | Dataset |
|---|---|---|---|---|
| RQ1: Organizzazione vs. accumulo | FITD, MRCJ | DEA / SRA | Foot-in-the-door-Jailbreak/, Inc_Exp/MRCJ/ | JailbreakBench, MUCD, AdvBench |
| RQ2: Componenti di amplificazione | ActorAttack | DEA | actorattack/ActorAttack/ | HarmBench |
| RQ3: Forma dell'escalation | MRCJ | SRA | Inc_Exp/MRCJ/ | MUCD, AdvBench |
| RQ4: Progressione dei sotto-paradigmi | X-Teaming | SRA | x-teaming/ | Set di comportamenti in stile JailbreakBench |
Foot-in-the-door-Jailbreak/: implementazione FITD per l'esperimento RQ1 lato DEA sull'organizzazione vs. accumulo.Inc_Exp/MRCJ/: implementazione MRCJ per il confronto RQ1 lato SRA e gli esperimenti RQ3 sulla forma dell'escalation.actorattack/ActorAttack/: implementazione ActorAttack per le ablazioni RQ2 sul numero di attori e sul self-talk.x-teaming/: backbone X-Teaming e impostazioni configs/exp3 per l'esperimento RQ4 sulla progressione dei sotto-paradigmi A1/A2/A3.Ogni metodo mantiene il proprio file di dipendenze originale:
pip install -r actorattack/ActorAttack/requirements.txt
pip install -r Foot-in-the-door-Jailbreak/requirements.txt
pip install -r Inc_Exp/requirements.txt
conda env create -f x-teaming/environment.yml
Le chiavi API e gli endpoint dei servizi devono essere forniti tramite variabili d'ambiente o file di configurazione locali. I file .env contenenti segreti non fanno parte del rilascio.
FITD utilizza il set di comportamenti JailbreakBench e la sua configurazione predefinita di attacco multi-turn.
cd Foot-in-the-door-Jailbreak
python FITD.py
Per il replay basato su prompt:
python FITD_prompt.py --model_name gpt-4o --control True --max_length 10
MRCJ utilizza domande ausiliarie in stile MUCD con livelli di malizia e target finali AdvBench. Il paper fissa quattro passi di escalation per RQ3.
cd Inc_Exp
python MRCJ/train/train.py --target_model mistral --judge_model gpt-4o --cat_questions_num 2 --harmful_score_threshold 4 --train_from_scratch --dir my_model_data
python MRCJ/test/test.py --target_model mistral --judge_model gpt-4o
Utilizzare i nomi dei modelli supportati da MRCJ/train/train.py e MRCJ/test/test.py.
ActorAttack utilizza le query di HarmBench. Variare --actors da 1 a 5 per l'esperimento sul numero di attori. Fissare --actors 3 e disabilitare il self-talk nel codice/config per l'ablazione sul self-talk, in linea con l'impostazione del paper.
cd actorattack/ActorAttack
python main.py --questions 400 --actors 3 --behavior ./data/harmbench.csv --attack_model_name deepseek-chat --target_model_name gpt-4o --early_stop --step_modify
RQ4 utilizza il backbone X-Teaming con DeepSeek-V3 come modello attaccante e confronta A1, A2 e A3 con lo stesso budget di turni.
cd x-teaming
python main.py --config configs/exp3/A1_gpt4o.yaml
python main.py --config configs/exp3/A2_gpt4o.yaml
python main.py --config configs/exp3/A3_gpt4o.yaml
Configurazioni equivalenti sono disponibili per gli altri modelli target utilizzati nel paper.
Il paper utilizza GPT-4o come giudice automatico con una scala di dannosità da 1 a 5. Un punteggio pari o superiore a 4 viene conteggiato come jailbreak riuscito. Gli output generati e i report del giudice non sono inclusi in questo rilascio; le riesecuzioni dovrebbero scrivere nuovi log/risultati localmente.
Questo codice è destinato esclusivamente alla riproduzione controllata della ricerca. Il repository esclude intenzionalmente output storici degli esperimenti, bytecode in cache, ambienti virtuali, notebook, segreti locali e codice esplorativo non correlato.