
Le dépôt complet de tous les laboratoires disponibles dans le cadre du benchmark.
Un benchmark pour évaluer les agents IA sur des défis de sécurité web, généré par le moteur TarantuLabs.
TarantuBench est une collection de 100 applications web vulnérables, chacune contenant un drapeau caché (TARANTU{...}). Le travail d'un agent est de trouver et d'extraire le drapeau en interagissant avec l'application via HTTP — exactement comme le ferait un pentesteur humain.
Les défis vont des contournements de connexion par injection SQL de niveau débutant aux chaînes d'attaque avancées en plusieurs étapes nécessitant l'exploitation de jusqu'à 5 vulnérabilités en séquence — incluant l'abus de logique métier, le XSS stocké pour le vol de session, la contrefaçon de JWT, le SSRF et l'injection SQL sur des API internes.
Chaque laboratoire est une application Node.js/Express autonome avec une base de données SQLite en mémoire. Aucune dépendance externe, aucun accès réseau nécessaire — il suffit de démarrer le serveur et de commencer à sonder.
Tous les défis de cette version ont été générés à l'aide du moteur de génération de laboratoires propriétaire de TarantuLabs.
TarantuBench v1 représente un benchmark mature et scalable, soutenu par un pipeline de génération éprouvé :
Prérequis du harnais Node : Node.js 18+ et npm.
Prérequis de la tâche Inspect AI : Python 3.11+, Docker, et uv ou un autre installateur compatible PEP 517.
Le jeu de données des laboratoires exécutables est publié sur Hugging Face à
tarantulabs/TarantuBench.
Ce dépôt GitHub contient le harnais d'évaluation et la documentation.
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
Avant d'exécuter une évaluation formelle, validez que le jeu de données local ou Hugging Face a le nombre de lignes et le schéma attendus :
node eval/validate-dataset.js --dataset data/tarantubench-v1.jsonl --expected-count 100
node eval/validate-dataset.js --hf tarantulabs/TarantuBench --expected-count 100
Le harnais démarre chaque laboratoire, place un proxy de journalisation transparent devant lui, et exécute votre commande d'agent (en remplaçant {URL} par l'adresse cible). Votre agent peut être écrit dans n'importe quel langage — il a juste besoin d'effectuer des requêtes HTTP et de soumettre le drapeau via POST {URL}/submit-flag avec le corps {"flag": "TARANTU{...}"}.
# 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
Chaque ligne dans data/tarantubench-v1.jsonl représente un défi :
| Colonne | Type | Description |
|---|---|---|
lab_id | string | Identifiant unique |
title | string | Nom lisible du défi |
description | string | Brève description du scénario (montrée à l'agent) |
objectives | list[string] | Ce qu'on demande à l'agent d'accomplir |
hints | list[string] | Indices progressifs optionnels (pour études d'ablation) |
difficulty | string | Débutant, Intermédiaire ou Avancé |
category | string | Famille de vulnérabilité principale (ex. SQL Injection, XSS) |
vuln_subtype | string | Technique spécifique (ex. sqli-union, xss-stored) |
chain_type | string ou null | Identifiant de chaîne multi-étapes, ou null pour les laboratoires à vulnérabilité unique |
server_code | string | Code source complet Node.js/Express de l'application vulnérable |
dependencies | object | Dépendances npm nécessaires pour exécuter le serveur |
| Difficulté | Nombre | Description |
|---|---|---|
| Débutant | 35 | Vulnérabilité unique, exploitation directe |
| Intermédiaire | 25 | Nécessite énumération, contournement de filtre ou logique multi-étapes |
| Avancé | 40 | Chaînes multi-étapes, failles de logique métier ou exploitation approfondie |
| Catégorie | Nombre |
|---|---|
| Chaînes multi-vulnérabilités | 34 |
| SQL Injection | 20 |
| IDOR (Référence directe d'objet non sécurisée) | 11 |
| Contournement d'authentification/autorisation | 10 |
| XSS (Cross-Site Scripting) | 10 |
| Logique métier | 8 |
| Injection de commandes | 5 |
| SSRF | 2 |
34 des 100 laboratoires nécessitent le chaînage de plusieurs vulnérabilités :