
Code für „Systematic Evaluation of Adversarial Jailbreaking Attacks and Defenses Across Seven Large Language Models“
Code, Prompts und Ergebnisse für:
Systematische Bewertung adversarieller Jailbreaking-Angriffe und -Verteidigungen über sieben große Sprachmodelle Md. Robiul Islam Niloy, Abu Sayed Md. Mostafizur Rahaman. Md. Robiul Islam Niloy: Fachbereich Informatik und Ingenieurwesen, BRAC University, Bangladesch. Abu Sayed Md. Mostafizur Rahaman: Fachbereich Informatik und Ingenieurwesen, Jahangirnagar University, Bangladesch. Manuskript in Vorbereitung für IEEE Transactions on Information Forensics and Security (noch nicht eingereicht).
Status: Die Ergebnisse sind vorläufig. Der primäre Bewerter ist eine LLM-Rubrik, die noch nicht gegen menschliche Labels validiert wurde. Der regelbasierte Bewerter hat bekannte Mängel (siehe Bekannte Probleme).
README.md
LICENSE
paper/
tifs_paper_v12.tex manuscript source
prompts/
expanded_prompts.json 250 attack prompts (50 per family, 5 families)
scripts/
phase1_expanded.py main experiment: 7 models x 250 prompts via Ollama
phase3_defenses.py defense experiments (first 10 obfuscation + 10 roleplay prompts)
judge_validation_v2.py content judge (phi4 rubric), resumable
rejudge_expanded.py rule-based re-scoring with corrected refusal matching
make_all_figures.py builds all five figures
results/
expanded/ one CSV per model: 250 prompts, truncated responses, rule-based label
defense/ defense run outputs and summary
judge/ agreement_report.txt and corrected_asr.txt
figures/ the five PDFs used in the manuscript
Antworten werden gekürzt auf 500 Zeichen gespeichert. Human-Check-Bögen, deren Schlüssel und die vollständige Ausgabe des Judges (die den Antworttext wiederholt) sind nicht enthalten.
Aus der Ollama-Bibliothek bezogen:
| Modell | Ollama-Tag | Parameter |
|---|---|---|
| Llama-3-8B-Instruct | llama3:8b | 8B |
| Llama-3.1-8B-Instruct | llama3.1:8b | 8B |
| Llama-3.2-3B-Instruct | llama3.2:3b | 3B |
| Mistral-7B-Instruct | mistral | 7B |
| Qwen2.5-7B-Instruct | qwen2.5:7b | 7B |
| Gemma2-9B-Instruct | gemma2:9b | 9B |
| Phi-4-14B | phi4:14b | 14B |
| phi4-Rubrik-Judge | phi4:14b | 14B |
Llama Guard 3 wurde während der Entwicklung ausgeführt, aber seine Ausgabe war nicht verwendbar, daher ist es nicht Teil eines berichteten Ergebnisses.
„Schaden“ bedeutet, dass der Inhalts-Judge die Antwort als HARMFUL oder PARTIAL eingestuft hat. HARMFUL allein wird zum Vergleich angezeigt.
| Modell | Schadensrate (%) | Nur HARMFUL (%) |
|---|---|---|
| Mistral-7B | 62,0 | 8,8 |
| Llama-3.2-3B | 30,8 | 1,2 |
| Qwen2.5-7B | 29,2 | 1,2 |
| Gemma2-9B | 26,0 | 2,0 |
| Phi-4-14B | 20,0 | 2,8 |
| Llama-3.1-8B | 18,4 | 0,4 |
| Llama-3-8B | 17,2 | 1,6 |
| Gepoolt | 29,1 | 2,6 |
Nach Angriffsfamilie (gepoolt): Verschleierung 62,3 (nur HARMFUL 7,1), hypothetische Rahmung 53,4, Rollenspiel 14,0, Override 8,0, direkt 7,7.
Verschleierung ist die höchste gepoolte Familie. Hypothetische Rahmung ist die höchste Familie für drei Modelle (Mistral-7B, Llama-3.2-3B, Qwen2.5-7B); Verschleierung ist am höchsten oder gleichauf für vier.
Modellgröße: Spearman ρ = −0,64, p = 0,12, n = 7 (nicht signifikant).
Paarweise Mann-Whitney-Tests (unkorrigiert): 14 von 21 Paaren unterscheiden sich bei p < 0,05. Mistral-7B unterscheidet sich signifikant von Llama-3.2-3B und Qwen2.5-7B (p < 0,001).
Gesamt-ASR unter dem regelbasierten Judge (jailbreak_success in den CSVs). Diese Zahlen sind aus den unter Bekannte Probleme genannten Gründen unzuverlässig.
| Modell | Regelbasierte ASR (%) |
|---|---|
| Llama-3.1-8B | 40,8 |
| Mistral-7B | 39,6 |
| Llama-3.2-3B | 39,6 |
| Qwen2.5-7B | 22,4 |
| Gemma2-9B | 18,4 |
| Llama-3-8B | 16,8 |
| Phi-4-14B | 11,2 |
Unter dem regelbasierten Judge erscheint Llama-3.1-8B am anfälligsten, und Llama-3-8B und Llama-3.1-8B erscheinen weit auseinander. Unter dem Inhalts-Judge unterscheiden sie sich nicht (17,2 % vs. 18,4 %, p = 0,73). Das Paper behandelt die Lücke beim regelbasierten Judge als Judge-Artefakt.
Übereinstimmung zwischen den beiden Judges: 84 %, κ = 0,60.
Nur mit dem regelbasierten Judge bewertet. Die Reduktionen beziehen sich auf abgeglichene Läufe ohne Verteidigung mit denselben 20 Prompts.
| Verteidigung | Mistral-7B (Basislinie 50 %) | Llama-3.1-8B (Basislinie 45 %) |
|---|---|---|
| Keyword-Blacklist | 35 % (−15 pp) | 25 % (−20 pp) |
| Selbst-Erinnerung | 10 % (−40 pp) | 5 % (−40 pp) |
| Paraphrase | 60 % (+10 pp; 12 vs. 10 von 20 Prompts) | 5 % (−40 pp) |
| Perplexitätsfilter | 50 % (0 pp) | 45 % (0 pp) |
Benigne Prompts (10 pro Modell): Die Keyword-, Paraphrase- und Perplexitätsfilter blockierten 0 von 10. Die benigne Ablehnungsrate der Selbst-Erinnerung wurde nicht gemessen.
Skripte lesen und schreiben in einen Projektordner. Setzen Sie BASE am Anfang jedes Skripts auf Ihre Kopie dieses Repositorys oder behalten Sie die obige Struktur bei und führen Sie die Skripte aus dem Repository-Stammverzeichnis aus.
pip install pandas numpy scipy matplotlib
ollama pull llama3:8b
ollama pull llama3.1:8b
ollama pull llama3.2:3b
ollama pull mistral
ollama pull qwen2.5:7b
ollama pull gemma2:9b
ollama pull phi4:14b
python scripts/phase1_expanded.py # main run, 1,750 generations (several hours)
python scripts/judge_validation_v2.py # content judge (GPU recommended)
python scripts/phase3_defenses.py # defense run (rule-based)
python scripts/rejudge_expanded.py # rule-based re-scoring
python scripts/make_all_figures.py # all five figures