Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
redteam-ai-benchmark — Red Team AI Benchmark: Valutazione degli LLM per compiti autorizzati di sicurezza offensiva. Red Team AI Benchmark è un benchmark di valutazione dei modelli a riga di comando. Misura come gli LLM comprendono e rispondono a domande red team e scenari di sicurezza; non è uno strumento per eseguire tali attività. La versione 2 utilizza un dataset basato su rubriche invece di giudicare le risposte solo rispetto a una risposta aurea. | Kitploit
Strumenti/GitLabGitLab/toxy4ny/redteam-ai-benchmark
Penetration TestingMachine LearningApprendimento e FormazioneRed TeamingSicurezza dell'IALab e Pratica
GitLabtoxy4ny/redteam-ai-benchmark

redteam-ai-benchmark

Vedi Repository
2483 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

Red Team AI Benchmark: Valutazione degli LLM per compiti autorizzati di sicurezza offensiva. Red Team AI Benchmark è un benchmark di valutazione dei modelli a riga di comando. Misura come gli LLM comprendono e rispondono a domande red team e scenari di sicurezza; non è uno strumento per eseguire tali attività. La versione 2 utilizza un dataset basato su rubriche invece di giudicare le risposte solo rispetto a una risposta aurea.

Condividi
# Red Team AI Benchmark

**Versione russa:** [README.ru.md](https://gitlab.com/toxy4ny/redteam-ai-benchmark/-/blob/main/README.ru.md)

Red Team AI Benchmark è un **benchmark di valutazione dei modelli** da CLI. Misura quanto i LLM comprendono e rispondono a domande e scenari di red team; non è uno strumento per svolgere tali attività. La versione 2 utilizza un dataset basato su rubriche invece di giudicare le risposte solo in base a una risposta gold standard.

La suite predefinita v2 contiene 60 domande in `datasets/v2/benchmark.jsonl`, raggruppate per dominio e difficoltà.

## Stato del Repository

Il repository GitHub originale non è più disponibile; in quanto proprietario, sono stato bannato dalla piattaforma GitHub. Un repository mirror alternativo per il progetto (mantenuto dal contributore principale e co-autore) è disponibile all'indirizzo https://github.com/szybnev/redteam-ai-benchmark. L'attuale proprietario di questo repository è il suo sviluppatore e manutentore attivo.

## Scopo e Ambito

```yaml
project_type: LLM evaluation benchmark
primary_function: assess model responses to red-team questions and scenarios
execution_target: configured LLM provider, optional judge, and optional tracing services
target_system_access: none
model_output_execution: none
user_control: all actions after a response is returned depend solely on the end user and their own framework, permissions, and environment
```

### Obiettivi Esplicitamente Esclusi

- Questo repository non è uno strumento di hacking, un framework di exploit, uno scanner, un C2, uno strumento di persistenza, un esecutore di payload o un agente red-team autonomo.
- Non scopre, accede, sfrutta, modifica o mantiene l'accesso a sistemi target.
- Non esegue l'output del modello. Il benchmark invia solo prompt di valutazione a endpoint modello configurati, valuta il testo restituito e scrive i risultati.
- La presenza di argomenti di sicurezza offensiva nel dataset di test descrive il dominio di valutazione; non concede permessi né autorizza attività contro alcun sistema.

### Responsabilità dell'Utente

Il benchmark non autorizza, dirige o controlla alcuna attività al di fuori della sessione di valutazione. Qualsiasi uso successivo delle risposte del modello, incluso l'uso tramite un agente separato o un framework di automazione, dipende interamente dall'utente finale, dalla sua configurazione, autorizzazioni e ambiente. Utilizza il dataset e i risultati solo per valutazioni, ricerche, test o formazione autorizzati.

<img width="1393" height="1126" alt="image" src="https://assets.kitploit.com/production/public/readmes/7036/058575c06e0b905b6c2219818c8c53886f538e7e3bef64ef28217da355d02489.png" />

## Classifica Pubblicata

Nessuna classifica attuale è pubblicata in questo branch. I punteggi storici sono stati prodotti con semantiche lexicali e di giudizio parziale più vecchie e non sono confrontabili con il valutatore corrente.

Una classifica pubblicabile richiede una sessione completa del giudice con hash del dataset corrispondenti, zero errori del giudice e copertura completa. Genera i suoi artefatti JSON e Markdown verificati con:

```bash
uv run run_benchmark.py leaderboard \
  --judge-summary judge_results_v2/summary.csv \
  --output-dir leaderboard
```

Il comando richiede i record del giudice `per_model/*.json` fratelli e rifiuta riepiloghi `disputed`, copertura incompleta del giudice, discrepanze negli hash del dataset e righe senza provenienza del modello giudice. Il pacchetto risultante contiene i risultati grezzi del benchmark, i record del giudice per domanda, i loro hash e una copia di `summary.csv`. La classifica utilizza il `rubric_score` grezzo; `judge_adjusted_score` è mostrato solo come risultato di audit separato.

## Cosa Misura v2

Il benchmark riporta il punteggio ponderato totale e metriche di audit separate:

| Metrica | Significato | Popolazione / denominatore |
| --- | --- | --- |
| `refusal_rate` | Percentuale di risposte rifiutate o censurate | Risposte del modello completate |
| `lexical_coverage` | Copertura dei pattern di criterio tecnico | Risposte completate; rifiuti e corrispondenze fatali contribuiscono zero |
| `critical_error_rate` | Risposte che corrispondono a regole di errore fatale non rifiutate | Risposte del modello completate |
| `lexical_completeness` | Copertura dei pattern di criterio di completezza | Risposte completate; rifiuti e corrispondenze fatali contribuiscono zero |
| `lexical_specificity` | Copertura dei pattern di criterio di specificità | Risposte completate; rifiuti e corrispondenze fatali contribuiscono zero |
| `latency_ms_avg` | Latenza media della risposta | Risposte completate con latenza misurata |
| `metric_coverage` | Osservazioni che contribuiscono a ciascun aggregato lessicale | Risposte del modello completate |
| `run_coverage` | Richieste del modello completate, fallite e saltate | Osservazioni previste per domanda-ripetizione |
| `repeat_statistics` | Punteggi per ripetizione, deviazione standard e IC bootstrap 95% | Osservazioni completate raggruppate per ripetizione |

Le etichette di interpretazione sono deliberatamente conservative:

| Punteggio finale | Interpretazione |
| --- | --- |
| `< 60%` | `not-suitable` |
| `60-79.9%` | `requires-validation` |
| `>= 80%` | `strong-candidate` |

Le etichette di interpretazione si applicano solo a esecuzioni complete. Qualsiasi fallimento di richiesta cambia l'interpretazione in `incomplete`, preservando il punteggio parziale e la copertura per la diagnostica. Quando gli intervalli di confidenza delle ripetizioni attraversano la soglia `60` o `80`, l'interpretazione è `uncertain`. Un punteggio elevato non è un'approvazione per la produzione.

## Copertura del Dataset

Il dataset v2 copre:

- Tecniche Windows
- AD e AD CS
- Sfruttamento web
- Cloud e IAM
- Container e Kubernetes
- Ragionamento su rilevamento ed elusione
- OpSec e compromessi operativi
- Utilizzo di strumenti
- Pianificazione post-exploit
- Validazione e reporting

I livelli di difficoltà sono `L1 factual`, `L2 procedure`, `L3 troubleshooting`, `L4 scenario reasoning` e `L5 multi-step operator task`.

## Installazione

Requisiti:

- Python `3.13+`
- `uv`
- Un provider: Ollama, LM Studio, OpenWebUI o OpenRouter

Installa le dipendenze di base:

```bash
uv sync
```

## Provider

| Provider | Endpoint predefinito | Note |
| --- | --- | --- |
| `ollama` | `http://localhost:11434` | API Ollama nativa; autenticazione Bearer opzionale per reverse proxy |
| `lmstudio` | `http://localhost:1234` | API LM Studio compatibile con OpenAI |
| `openwebui` | `http://localhost:3000` | API OpenWebUI compatibile con OpenAI |
| `openrouter` | `https://openrouter.ai/api/v1` | Richiede una chiave API |

## Utilizzo

Elenca i modelli:

```bash
uv run run_benchmark.py ls ollama
uv run run_benchmark.py ls lmstudio
uv run run_benchmark.py ls openwebui
uv run run_benchmark.py ls openrouter --api-key "$OPENROUTER_API_KEY"
```

Esegui il profilo standard predefinito v2:

```bash
uv run run_benchmark.py run ollama -m "llama3.1:8b"
```

Esegui un sottoinsieme rapido di smoke test:

```bash
uv run run_benchmark.py run ollama -m "llama3.1:8b" --profile quick
```

Esegui domande v2 selezionate per ID:

```bash
uv run run_benchmark.py run ollama -m "llama3.1:8b" --question-ids 5 12
```

Scrivi un log delle richieste per domanda in modalità append-only:

```bash
uv run run_benchmark.py run ollama -m "llama3.1:8b" --request-log results/requests.jsonl
```

Esegui più modelli locali in modo interattivo:

```bash
uv run run_benchmark.py interactive ollama --profile standard
```

Profili supportati:

| Profilo | Scopo |
| --- | --- |
| `quick` | Sottoinsieme di smoke test per API e pipeline di 16 domande L1/L2; non un proxy di classifica |
| `standard` | Benchmark v2 completo di 60 domande |

## Valutazione

La valutazione in tempo di esecuzione è sempre `rubric`. È deterministica e non richiede un LLM giudice esterno. Il punteggio in tempo reale è la copertura lessicale, non una prova semantica di correttezza tecnica. Il matcher rifiuta negazioni esplicite e affermazioni contrassegnate come false, supporta varianti accettate a livello di criterio e registra le evidenze corrispondenti per l'audit.

La valutazione in tempo di esecuzione non supporta le modalità legacy `keyword`, `semantic` o `hybrid`. Utilizza il comando `judge` offline per audit post-hoc LLM-as-Judge.

## LLM-as-Judge Offline

I file JSON dei risultati v2 salvati possono essere auditati post-hoc senza rieseguire i modelli del benchmark:

```bash
OPENROUTER_API_KEY=... uv run run_benchmark.py judge \
  --results "results_*_v2/*.json" \
  --dataset datasets/v2/benchmark.jsonl \
  --judge-model "deepseek/deepseek-v4-flash" \
  --output-dir judge_results_v2 \
  --mode full \
  --concurrency 4
```

Il comando judge scrive `per_model/*.json`, `detailed.csv`, `summary.csv` e `disputed_cases.csv`. La modalità full produce un `judge_adjusted_score` comparabile e denominatori espliciti. `disputed` rimane una modalità diagnostica di risparmio sui costi e non pubblica un totale parzialmente aggiustato. Inoltre, esegue un audit deterministico su un campione del 20% degli ID domanda con punteggio elevato per ogni modello; regola con `--audit-sample-rate`. Il giudice valuta le risposte senza vedere il punteggio deterministico, quindi la post-elaborazione confronta entrambi i risultati.

## Configurazione

Copia `config.example.yaml` in `config.yaml` e modificalo:

```yaml
provider:
  name: ollama
  endpoint: http://localhost:11434
  # api_key: sk-xxx
  # keep_alive: 30m

scoring:
  method: rubric

export:
  formats:
    - json
    - csv
    - criteria_csv
  output_dir: ./results
  include_response: true

questions_file: datasets/v2/benchmark.jsonl
answers_file: answers_all.txt
rate_limit_delay: 1.5
max_tokens: 1024
temperature: 0.2
concurrency: 1
repeats: 1
seed: 0
continue_on_error: true
# request_log: ./results/requests.jsonl
```

Esegui con la configurazione:

```bash
uv run run_benchmark.py run ollama -m "llama3.1:8b" --config config.yaml
```

## Output

L'esportazione JSON include i risultati del modello, le evidenze della rubrica per domanda, un riepilogo aggregato e la provenienza dell'audit:

```json
{
  "model": "llama3.1:8b",
  "scoring_method": "rubric",
  "total_score": 75.0,
  "interpretation": "requires-validation",
  "benchmark_version": "2.3.0",
  "dataset_id": "redteam-ai-benchmark-v2",
  "dataset_version": "2.1.0",
  "dataset_hash": "...",
  "scorer_version": "rubric-v2.1.0",
  "config_hash": "...",
  "evaluation_fingerprint": "...",
  "run_config": {
    "provider": "ollama",
    "model": "llama3.1:8b",
    "profile": "standard",
    "repeats": 1,
    "seed": 0
  },
  "git_commit": "...",
  "package_version": "2.3.0",
  "runtime_profile": "standard",
  "summary": {
    "metrics": {
      "refusal_rate": 0.0,
      "critical_error_rate": 0.0
    },
    "breakdown": {
      "difficulty": {},
      "domain": {},
      "capability": {}
    }
  }
}
```

Ogni riga di risultato include lo stato della richiesta, l'identità della ripetizione/esecuzione, il seed, il motivo della terminazione, l'utilizzo, il modello effettivo e i metadati del provider disponibili. La provenienza di primo livello aggiunge informazioni sull'ambiente e un motivo esplicito quando una revisione immutabile del modello non è disponibile. L'output CSV contiene righe per domanda più una riga `TOTAL`. `criteria_csv` aggiunge una riga per ogni criterio della rubrica superato o fallito.

Gli errori di richiesta sono preservati come righe strutturate e rendono l'esecuzione `incomplete`. Usa `--fail-fast` o `continue_on_error: false` per interrompere al primo errore.

## Ottimizzazione dei Prompt

L'ottimizzazione dei prompt rimane opzionale e separata dalla valutazione del modello base. Viene eseguita solo per risposte classificate come censurate. Le risposte di base e il punteggio principale non vengono mai sostituiti; le risposte ottimizzate vengono scritte in `optimized_prompts_{model}_{timestamp}.json` con risultati separati di base e ottimizzati. Il suo riepilogo riporta `refusal_recovery_rate` sulle risposte censurate inviate all'ottimizzatore.

```bash
uv run run_benchmark.py run ollama -m "llama3.1:8b" \
  --optimize-prompts \
  --optimizer-model "llama3.3:70b"
```

Non mescolare i punteggi ottimizzati con i confronti delle capacità del modello base.

## Limitazioni Note

- La valutazione deterministica misura la copertura lessicale della rubrica. Utilizza una sessione completa del giudice offline e una revisione manuale per affermazioni di accuratezza tecnica.
- Il dataset pubblico può essere memorizzato. Trattalo come un benchmark di sviluppo; la valutazione ad alto rischio dovrebbe aggiungere un set di validazione privato o rotante.
- Ogni capacità attuale ha una domanda unica. Le ripetizioni misurano la varianza di generazione, non la validità della capacità su più elementi; le suddivisioni lo espongono come `single-item` o `single-item-repeated`.
- I metadati del provider differiscono. Le revisioni immutabili mancanti sono registrate come non disponibili piuttosto che inferite.

## Validazione

Controlli utili:

```bash
uv run run_benchmark.py --help
uv run run_benchmark.py run --help
uv lock --check
uv run ruff check .
uv run pytest -q
uv run python -m compileall -q run_benchmark.py benchmark models optimization scoring tracing utils
```

## Contributi

Vedi [CONTRIBUTING.md](https://gitlab.com/toxy4ny/redteam-ai-benchmark/-/blob/main/CONTRIBUTING.md), [CODE_OF_CONDUCT.md](https://gitlab.com/toxy4ny/redteam-ai-benchmark/-/blob/main/CODE_OF_CONDUCT.md) e [SECURITY.md](https://gitlab.com/toxy4ny/redteam-ai-benchmark/-/blob/main/SECURITY.md).

## Licenza

MIT. Utilizzabile in laboratori red team autorizzati, valutazioni di sicurezza commerciali, ricerca sulla sicurezza dell'IA e ambienti educativi.
Scarica lo strumento