
El repositorio completo de todos los laboratorios disponibles como parte del benchmark.
Un benchmark para evaluar agentes de IA en desafíos de seguridad web, generado por el motor de TarantuLabs.
TarantuBench es una colección de 100 aplicaciones web vulnerables, cada una con una bandera oculta (TARANTU{...}). La tarea de un agente es encontrar y extraer la bandera interactuando con la aplicación a través de HTTP, como lo haría un pentester humano.
Los desafíos van desde bypass de login por inyección SQL de nivel principiante hasta cadenas de ataque avanzadas de múltiples pasos que requieren explotar hasta 5 vulnerabilidades en secuencia, incluyendo abuso de lógica de negocio, XSS almacenado para robo de sesión, falsificación de JWT, SSRF e inyección SQL en APIs internas.
Cada laboratorio es una aplicación Node.js/Express autocontenida con una base de datos SQLite en memoria. Sin dependencias externas, sin necesidad de acceso a la red: solo inicie el servidor y comience a sondear.
Todos los desafíos de esta versión fueron generados utilizando el motor patentado de generación de laboratorios de TarantuLabs.
TarantuBench v1 representa un benchmark maduro y escalable respaldado por un pipeline de generación probado:
Requisitos del harness Node: Node.js 18+ y npm.
Requisitos de la tarea Inspect AI: Python 3.11+, Docker y uv u otro instalador compatible con PEP 517.
El conjunto de datos de laboratorios ejecutables se publica en Hugging Face en
tarantulabs/TarantuBench.
Este repositorio de GitHub contiene el harness de evaluación y la documentación.
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
Antes de ejecutar una evaluación formal, valida que el conjunto de datos local o de Hugging Face tenga el número de filas y el esquema esperados:
node eval/validate-dataset.js --dataset data/tarantubench-v1.jsonl --expected-count 100
node eval/validate-dataset.js --hf tarantulabs/TarantuBench --expected-count 100
El harness inicia cada laboratorio, coloca un proxy de registro transparente delante de él y ejecuta el comando de tu agente (reemplazando {URL} con la dirección de destino). Tu agente puede escribirse en cualquier lenguaje: solo necesita hacer solicitudes HTTP y enviar la bandera a través de POST {URL}/submit-flag con el cuerpo {"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
Cada fila en data/tarantubench-v1.jsonl representa un desafío:
| Columna | Tipo | Descripción |
|---|---|---|
lab_id | string | Identificador único |
title | string | Nombre del desafío legible para humanos |
description | string | Breve descripción del escenario (mostrada al agente) |
objectives | list[string] | Lo que se le dice al agente que logre |
hints | list[string] | Pistas progresivas opcionales (para estudios de ablación) |
difficulty | string | Beginner, Intermediate o Advanced |
category | string | Familia de vulnerabilidad principal (p. ej., SQL Injection, XSS) |
vuln_subtype | string | Técnica específica (p. ej., sqli-union, xss-stored) |
chain_type | string o null | ID de cadena de múltiples pasos, o null para laboratorios de una sola vulnerabilidad |
server_code | string | Código fuente completo de Node.js/Express para la aplicación vulnerable |
dependencies | object | Dependencias de paquetes npm necesarias para ejecutar el servidor |
| Dificultad | Conteo | Descripción |
|---|---|---|
| Principiante | 35 | Vulnerabilidad única, explotación directa |
| Intermedio | 25 | Requiere enumeración, bypass de filtros o lógica de múltiples pasos |
| Avanzado | 40 | Cadenas de múltiples pasos, fallos de lógica de negocio o explotación profunda |
| Categoría | Conteo |
|---|---|
| Multi-Vulnerability Chains | 34 |
| SQL Injection | 20 |
| IDOR (Insecure Direct Object Reference) | 11 |
| Auth/Authz Bypass | 10 |
| XSS (Cross-Site Scripting) | 10 |
| Business Logic | 8 |
| Command Injection | 5 |
| SSRF | 2 |
34 de los 100 laboratorios requieren encadenar múltiples vulnerabilidades: