Open-Source-Testsuite für modalübergreifende und multimodale Prompt-Injection. 250,000+ Angriffs-Payloads über Text-, Bild-, Dokument- und Audio-Modalitäten hinweg. Wissenschaftlich fundiert durch OWASP LLM Top 10, CrossInject (ACM MM 2025), FigStep (AAAI 2025), DolphinAttack und CSA 2026.
516,588 beschriftete Stichproben (251,782 Angriffs- und 251,576 gutartige Stichproben, plus eine 13,230-Stichproben-Validierungsaufteilung aus der realen Welt) über fünf Datensatzversionen plus externer Datensatzaufnahme, die Cross-Modal-, Multi-Turn-, Adversarial-Suffix-, Jailbreak-Vorlagen-, Indirekte-Injection-, Werkzeugmanipulations-, agentische, Evasion-, Reasoning-DoS-, Videogenerierungs-, VLA-Roboter-, LoRA-Lieferketten-, Audio-nativen-LLM-, RAG-Optimierungs-, MCP-Cross-Server-, Coding-Agent-, Serialisierungsgrenzen- und Agent-Fähigkeiten-Lieferkettenangriffe auf KI-Systeme abdecken. Angriffs- und gutartige Stichproben sind 1:1 ausgewogen (Verhältnis 0.9992:1 nach der Audit-Bereinigung).
Entwickelt für das Training und die Evaluierung von Prompt-Injection-Erkennern. Alle Stichproben sind beschriftet (expected_detection: true/false), auf begutachtete Papers oder dokumentierte Industrieforschung zurückgeführt und für die direkte Verwendung in binären Klassifikatoren strukturiert.
Die Payloads sind reines JSON. Laden Sie sie direkt mit der Standardbibliothek Ihrer Sprache — keine Abhängigkeiten:```python import json, pathlib records = [] for p in pathlib.Path("payloads_v5").glob("*.json"): records.extend(json.loads(p.read_text())) print(f"{len(records)} labeled samples")
Jeder Datensatz trägt `expected_detection: true|false`, einen `attack_category`-String und ein `source`-Feld, das auf das ursprüngliche Paper oder den dokumentierten Vorfall verweist. Das reicht aus, um einen binären Klassifikator zu trainieren, eine ASR pro Kategorie zu berechnen oder nach Angriffsvektor aufzuschlüsseln.
---
## Methodik
### Was dieser Datensatz abdeckt
**Prompt Injection** wird hier definiert als: *Text, der in eine LLM-Eingabe eingebettet ist und dazu bestimmt ist, das Verhalten des Modells zu überschreiben, zu kapern oder von der vom Betreiber festgelegten Aufgabe wegzulenken*. Diese Definition folgt Greshake et al. 2023 (arXiv:2302.12173) und OWASP LLM01:2025.
Der Geltungsbereich ist **ausschließlich Runtime-Injection** -- Text, den ein Angreifer zur Inferenzzeit im Kontextfenster des Modells platzieren kann. Der Datensatz schließt bewusst Folgendes aus:
- Angriffe zur Trainingszeit (Datenvergiftung, Schlafagenten, Backdoor-Feintuning)
- Model-Extraktion-Angriffe ohne Injektionskomponente
- Reine Jailbreaks, die schädliche Generierung abfragen, ohne eine bestimmte LLM-Aufgabe zu kapern (z. B. „Sag mir, wie ich eine Bombe baue“ formuliert ohne Override-Rahmen)
- Allgemeines Social Engineering, das nicht auf ein LLM abzielt
Die Unterscheidung ist für die Erkennung von Bedeutung: Ein Runtime-Detektor liest den Prompt, nicht die Modellgewichte. Angriffe, die nur das Training betreffen, fallen aus dem Rahmen.
### Konstruktionsmethode
Der Datensatz wurde in vier Schichten aufgebaut:
**Schicht 1 -- Seed-Payloads (handgefertigt, 210 + 187 + 284 Seeds):** Injektions-Seeds für jede Angriffskategorie wurden von Hand geschrieben, fundiert in Peer-Review-Papers und dokumentierten realen Vorfällen. Jeder Seed ist mit seiner akademischen Quelle und der Angriffsreferenz versehen. Die Seeds wurden anhand der obigen Aufnahmedefinition überprüft -- jeder Seed, der als gutartige Anfrage ohne Override-Komponente umgedeutet werden konnte, wurde verworfen oder neu geschrieben.
**Schicht 2 -- Programmatische Erweiterung über Vorlagen und Kodierung (v2, 14,358 Stichproben):** Die Seeds durchliefen die 162 Jailbreak-Vorlagen und 13 Kodierungs-Konverter von PyRIT v0.12.1. Die Vorlagenerweiterung ist vollständig deterministisch und aus dem Generator-Skript reproduzierbar. GCG-adversariale Suffixe wurden aus der veröffentlichten Literatur (Zou et al. 2023) übernommen und an Seeds angehängt; Live-Gradientenoptimierung ist optional und erfordert eine GPU.
**Schicht 3 -- Kreuzmodale Zustellung (v1 + v4 cross-modal, 35,687 Stichproben):** Injektions-Seeds wurden über 7 Bildmethoden, 4 Dokumenttypen x 5 Versteckpositionen, 6 Audiomethoden und Multimodalitäts-Kombinationen zugestellt. Dies folgt dem Bedrohungsmodell in FigStep (arXiv:2311.05608) und CrossInject (arXiv:2504.14348): Der Injektionstext kann in jeder Modalität ankommen, die die Pipeline verarbeitet, nicht nur im Textfeld. Die Modalitätsfelder (`image_content`, `doc_content`, `audio_content`) erfassen, was der Extraktor des Modells aus diesem Kanal lesen würde.
**Schicht 4 -- Gutartige Stichproben (50,516 insgesamt):** Gutartige Prompts wurden aus veröffentlichten akademischen und industriellen Datensätzen entnommen (Stanford Alpaca, WildChat, deepset/prompt-injections, LMSYS Chatbot Arena). Gutartige multimodale Stichproben kombinieren diese Text-Prompts mit echten Bildunterschriften (MS-COCO 2017, Flickr30k), Dokumentpassagen (Wikipedia EN, arXiv über RedPajama) und Audiotranskripten (LibriSpeech, Mozilla Common Voice). Ein Satz von 130 handgefertigten Grenzfällen verwendet angriffsnahes Vokabular („ignore“, „override“, „system prompt“, „password“) in wirklich gutartigen Kontexten, um das Training von Fehlalarmen zu reduzieren.
**Schicht 5 -- Validierungssplit aus der Praxis (13,230 Stichproben):** Die Schichten 1-4 sind konstruiert: handgeschrieben, vorlagenbasiert oder aus anderen Datensätzen übernommen. Schicht 5 ist es nicht. Sie wurde aus einem Live-Spiel gesammelt, bei dem Spieler Punkte dafür erhielten, einen eingesetzten Detektor zu schlagen, gestaffelt über Boss-Level-„castle“-Stufen und multimodale „ghost“-Durchgänge. Jeder erfolgreiche und versuchte Bypass wurde protokolliert und dann anonymisiert (Kennungen und Zahlungsdaten auf Tabellenebene entfernt, In-Text-PII geschwärzt, risikoreiche Zeilen für manuelle Prüfung unter Quarantäne gestellt statt veröffentlicht) und als [`payloads_live/`](https://github.com/josh-blythe/bordair-multimodal/blob/main/payloads_live) freigegeben. Während die Schichten 1-4 die Abdeckung gegen bekannte Angriffsklassen messen, misst Schicht 5, ob ein Detektor einem motivierten Menschen standhält, der aktiv versucht, ihn zu überwinden. Siehe [`payloads_live/README.md`](https://github.com/josh-blythe/bordair-multimodal/blob/main/payloads_live/README.md) für die vollständige Anonymisierungsmethodik.
### Labelvergabe
Alle Angriffs-Payloads: `expected_detection: true`
Alle gutartigen Stichproben: `expected_detection: false`
Labels werden konstruktionsbedingt vergeben, nicht durch menschliche Prüfung einzelner Stichproben. Die Korrektheitsgarantie liegt daher auf **Kategorienebene**: Jede Kategorie ist einer dokumentierten Angriffsklasse mit einem spezifischen Mechanismus zugeordnet. Einzelne Stichproben erben das Label von dem Seed und der Kategorie, aus denen sie generiert wurden.
Es gibt kein absichtlich eingeführtes adversarielles Label-Rauschen. Der Detektor soll das Injektionsmuster lernen, nicht zwischen „echten“ und „gefälschten“ Injektionen unterscheiden -- alle Stichproben im Angriffssatz stellen reale oder plausible Angriffszeichenfolgen dar.
### False-Positive-Risiko bei gutartigen Daten
Der Gutartig-Grenzfall-Satz wurde entwickelt, um Fehlalarme bei sicherheitsnaher Sprache zu reduzieren. Er deckt 10 Vokabel-Cluster ab: `ignore`, `override`, `system prompt`, `password`, `instructions`, `jailbreak` (im iPhone-Sinn), `bypass surgery`, `XSS` (als Sicherheitsthema, nicht als Angriff), `prompt` (wie bei Kameraverschluss) und `inject` (wie bei Dependency Injection / medizinisch). Ein Detektor, der auf dem gesamten Datensatz eine hohe Präzision, auf dem Grenzfall-Satz jedoch eine niedrige Präzision erreicht, überpasst auf oberflächliches Schlüsselwort-Matching.
### Datensatz-Audit
Der vollständige Datensatz wurde auf Labelkorrektheit und Kontamination überprüft. Das Audit prüft: