
O repositório completo de todos os laboratórios disponíveis como parte do benchmark
Um benchmark para avaliar agentes de IA em desafios de segurança web, gerado pelo motor TarantuLabs.
TarantuBench é uma coleção de 100 aplicações web vulneráveis, cada uma contendo uma flag oculta (TARANTU{...}). O trabalho de um agente é encontrar e extrair a flag interagindo com a aplicação via HTTP — exatamente como um pentester humano faria.
Os desafios variam de bypasses de login por injeção SQL de nível iniciante até cadeias de ataque avançadas de múltiplas etapas que exigem a exploração de até 5 vulnerabilidades em sequência — incluindo abuso de lógica de negócios, XSS armazenado para roubo de sessão, falsificação de JWT, SSRF e injeção SQL em APIs internas.
Cada laboratório é uma aplicação Node.js/Express autocontida com um banco de dados SQLite em memória. Sem dependências externas, sem necessidade de acesso à rede — basta iniciar o servidor e começar a sondar.
Todos os desafios desta versão foram gerados usando o motor proprietário de geração de laboratórios do TarantuLabs.
O TarantuBench v1 representa um benchmark maduro e escalável, apoiado por um pipeline de geração comprovado:
Requisitos do harness Node: Node.js 18+ e npm.
Requisitos da tarefa Inspect AI: Python 3.11+, Docker e uv ou outro
instalador compatível com PEP 517.
O conjunto de dados de laboratórios executáveis está publicado no Hugging Face em
tarantulabs/TarantuBench.
Este repositório GitHub contém o harness de avaliação e a documentação.
git clone https://github.com/Trivulzianus/TarantuBench.git
cd TarantuBench
cd eval && npm install && cd ..
# Baixe o arquivo do dataset do Hugging Face, ou clone o repositório do dataset:
# git clone https://huggingface.co/datasets/tarantulabs/TarantuBench data
# Execute seu agente contra todos os 100 laboratórios
node eval/harness.js --dataset data/tarantubench-v1.jsonl \
--command "python my_agent.py --url {URL}" \
--timeout 300
# Gere o scorecard
node eval/scorecard.js
Antes de executar uma avaliação formal, valide que o dataset local ou do Hugging Face tem a contagem de linhas e o 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
O harness inicia cada laboratório, coloca um proxy de registro transparente na frente dele e executa o comando do seu agente (substituindo {URL} pelo endereço de destino). Seu agente pode ser escrito em qualquer linguagem — ele só precisa fazer requisições HTTP e enviar a flag via POST {URL}/submit-flag com o corpo {"flag": "TARANTU{...}"}.
# Inicie um laboratório no modo servidor — o harness imprime a URL, você conecta seu agente
node eval/harness.js --dataset data/tarantubench-v1.jsonl \
--labs corporate-portal-chain-xss-idor \
--mode server --timeout 300
Cada linha em data/tarantubench-v1.jsonl representa um desafio:
| Coluna | Tipo | Descrição |
|---|---|---|
lab_id | string | Identificador único |
title | string | Nome do desafio legível por humanos |
description | string | Breve descrição do cenário (mostrada ao agente) |
objectives | list[string] | O que é dito ao agente para realizar |
hints | list[string] | Dicas progressivas opcionais (para estudos de ablação) |
difficulty | string | Beginner, Intermediate ou Advanced |
category | string | Família primária de vulnerabilidade (ex.: Injeção SQL, XSS) |
vuln_subtype | string | Técnica específica (ex.: sqli-union, xss-stored) |
chain_type | string ou null | Identificador de cadeia de múltiplas etapas, ou null para laboratórios de vulnerabilidade única |
server_code | string | Código fonte completo Node.js/Express da aplicação vulnerável |
dependencies | object | Dependências de pacotes npm necessárias para executar o servidor |
| Dificuldade | Contagem | Descrição |
|---|---|---|
| Iniciante | 35 | Vulnerabilidade única, exploração direta |
| Intermediário | 25 | Requer enumeração, bypass de filtro ou lógica de múltiplas etapas |
| Avançado | 40 | Cadeias de múltiplas etapas, falhas de lógica de negócios ou exploração profunda |
| Categoria | Contagem |
|---|---|
| Cadeias de Múltiplas Vulnerabilidades | 34 |
| Injeção SQL | 20 |
| IDOR (Referência Direta a Objeto Insegura) | 11 |
| Bypass de Autenticação/Autorização | 10 |
| XSS (Cross-Site Scripting) | 10 |
| Lógica de Negócios | 8 |
| Injeção de Comandos | 5 |
| SSRF | 2 |
34 dos 100 laboratórios exigem o encadeamento de múltiplas vulnerabilidades: