
Das vollständige Repository aller Labs, die im Rahmen des Benchmarks verfügbar sind.
Ein Benchmark zur Bewertung von KI-Agenten bei Web-Sicherheitsherausforderungen, generiert von der TarantuLabs-Engine.
TarantuBench ist eine Sammlung von 100 angreifbaren Webanwendungen, die jeweils eine versteckte Flagge (TARANTU{...}) enthalten. Die Aufgabe eines Agenten ist es, die Flagge zu finden und zu extrahieren, indem er über HTTP mit der Anwendung interagiert – genau wie ein menschlicher Pentester.
Die Herausforderungen reichen von SQL-Injection-Login-Bypässen auf Anfängerniveau bis hin zu fortgeschrittenen mehrstufigen Angriffsketten, die das Ausnutzen von bis zu 5 Schwachstellen in Folge erfordern – darunter Missbrauch von Geschäftslogik, gespeichertes XSS zum Diebstahl von Sitzungen, JWT-Fälschung, SSRF und SQL-Injection auf internen APIs.
Jedes Labor ist eine eigenständige Node.js/Express-Anwendung mit einer SQLite-In-Memory-Datenbank. Keine externen Abhängigkeiten, kein Netzwerkzugriff erforderlich – einfach den Server starten und mit dem Sondieren beginnen.
Alle Herausforderungen in dieser Version wurden mit der proprietären Lab-Generierungs-Engine von TarantuLabs erstellt.
TarantuBench v1 stellt einen ausgereiften, skalierbaren Benchmark dar, der von einer bewährten Generierungspipeline unterstützt wird:
Node-Harness-Anforderungen: Node.js 18+ und npm.
Inspect AI-Aufgabenanforderungen: Python 3.11+, Docker und uv oder ein anderer PEP 517-kompatibler Installer.
Der ausführbare Lab-Datensatz ist auf Hugging Face unter tarantulabs/TarantuBench veröffentlicht. Dieses GitHub-Repository enthält die Evaluierungs-Harness und Dokumentation.
git clone https://github.com/Trivulzianus/TarantuBench.git
cd TarantuBench
cd eval && npm install && cd ..
# Download the dataset file from Hugging Face, or clone the dataset repo:
# git clone https://huggingface.co/datasets/tarantulabs/TarantuBench data
# Run your agent against all 100 labs
node eval/harness.js --dataset data/tarantubench-v1.jsonl \
--command "python my_agent.py --url {URL}" \
--timeout 300
# Generate scorecard
node eval/scorecard.js
Vor der Durchführung einer formellen Evaluierung validieren Sie, dass der lokale oder Hugging-Face-Datensatz die erwartete Zeilenanzahl und das Schema hat:
node eval/validate-dataset.js --dataset data/tarantubench-v1.jsonl --expected-count 100
node eval/validate-dataset.js --hf tarantulabs/TarantuBench --expected-count 100
Die Harness startet jedes Lab, platziert einen transparenten Logging-Proxy davor und führt Ihren Agentenbefehl aus (ersetzt {URL} durch die Zieladresse). Ihr Agent kann in jeder Sprache geschrieben sein – er muss nur HTTP-Anfragen stellen und die Flagge über POST {URL}/submit-flag mit dem Body {"flag": "TARANTU{...}"} übermitteln.
# Boot one lab in server mode — harness prints the URL, you connect your agent
node eval/harness.js --dataset data/tarantubench-v1.jsonl \
--labs corporate-portal-chain-xss-idor \
--mode server --timeout 300
Jede Zeile in data/tarantubench-v1.jsonl repräsentiert eine Herausforderung:
| Spalte | Typ | Beschreibung |
|---|---|---|
lab_id | string | Eindeutige Kennung |
title | string | Menschenlesbarer Herausforderungsname |
description | string | Kurze Szenariobeschreibung (dem Agenten gezeigt) |
objectives | list[string] | Was dem Agenten zu erreichen gesagt wird |
hints | list[string] | Optionale progressive Hinweise (für Ablationsstudien) |
difficulty | string | Beginner, Intermediate oder Advanced |
category | string | Primäre Schwachstellenfamilie (z.B. SQL-Injection, XSS) |
vuln_subtype | string | Spezifische Technik (z.B. sqli-union, xss-stored) |
chain_type | string oder null | Mehrstufige Ketten-ID oder null für Labs mit einer Schwachstelle |
server_code | string | Vollständiger Node.js/Express-Quellcode für die angreifbare Anwendung |
dependencies | object | npm-Paketabhängigkeiten, die zum Ausführen des Servers benötigt werden |
| Schwierigkeit | Anzahl | Beschreibung |
|---|---|---|
| Anfänger | 35 | Einzelne Schwachstelle, direkte Ausnutzung |
| Mittelstufe | 25 | Erfordert Enumeration, Filterumgehung oder mehrstufige Logik |
| Fortgeschritten | 40 | Mehrstufige Ketten, Schwachstellen in der Geschäftslogik oder tiefgehende Ausnutzung |
| Kategorie | Anzahl |
|---|---|
| Multi-Schwachstellen-Ketten | 34 |
| SQL-Injection | 20 |
| IDOR (Insecure Direct Object Reference) | 11 |
| Authentifizierungs-/Autorisierungsumgehung | 10 |
| XSS (Cross-Site Scripting) | 10 |
| Geschäftslogik | 8 |
| Befehlseinschleusung | 5 |
| SSRF | 2 |
34 der 100 Labs erfordern die Verkettung mehrerer Schwachstellen: