piattaforma autonoma di red teaming; meta-harness multi-agente di sicurezza offensiva
▄▄▄█████▓▓█████ ███▄ ▄███▓ ██▓███ ▓█████ ██████ ▄▄▄█████▓
▓ ██▒ ▓▒▓█ ▀ ▓██▒▀█▀ ██▒▓██░ ██▒▓█ ▀ ▒██ ▒ ▓ ██▒ ▓▒
▒ ▓██░ ▒░▒███ ▓██ ▓██░▓██░ ██▓▒▒███ ░ ▓██▄ ▒ ▓██░ ▒░
░ ▓██▓ ░ ▒▓█ ▄ ▒██ ▒██ ▒██▄█▓▒ ▒▒▓█ ▄ ▒ ██▒░ ▓██▓ ░
▒██▒ ░ ░▒████▒▒██▒ ░██▒▒██▒ ░ ░░▒████▒▒██████▒▒ ▒██▒ ░
▒ ░░ ░░ ▒░ ░░ ▒░ ░ ░▒▓▒░ ░ ░░░ ▒░ ░▒ ▒▓▒ ▒ ░ ▒ ░░
░ ░ ░ ░░ ░ ░░▒ ░ ░ ░ ░░ ░▒ ░ ░ ░
░ ░ ░ ░ ░░ ░ ░ ░ ░ ░
░ ░ ░ ░ ░ ░
Un framework di sicurezza offensiva multi-agente, progettato per trasformare l'agente di codifica AI che già esegui in un cacciatore di zero-day.
Il tuo agente di codifica AI è già un hacker — T3MP3ST gli fornisce un arsenale.
Puntalo su un target autorizzato e la kill chain si auto-esegue: recon → exploit → report, da una War Room nel browser o dalla CLI, guidato dall'agente a cui sei già connesso — Claude Code, Codex, Hermes — o da un modello che esegui completamente offline (Ollama, LM Studio, vLLM). Nessuna nuova chiave API, nessun tenant cloud, nessuna seconda bolletta. Il tuo agente è il cervello; T3MP3ST è la macchina da guerra imbullonata attorno ad esso. Tempesta auto-ospitata. Guerra senza chiavi. ⚡
E non ti chiederà di credergli sulla parola. Sulla suite di 104 sfide di XBOW ottiene un 90,1% pass@1 — al di sopra dell'85% auto-dichiarato da XBOW — insieme a risoluzioni CTF senza indizi e una caccia a freddo su CVE reali, successive al cutoff, che il modello non aveva mai visto. Ogni numero in questo README viene ricalcolato dai dati impegnati con un comando (npm run verify-claims). Schietto sulla missione, onesto sulla costruzione — la tabella dello stato dice esattamente cosa è in produzione, cosa è impalcatura e cosa è ancora in roadmap; ricevute complete in Benchmark.
Tre cose lo distinguono:
npm run verify-claims li deriva tutti, 24/24 verdi. Un'affermazione che non può essere riprodotta non viene pubblicata. Mai numeri da fidarsi ciecamente.Vai a → Avvio rapido · Cosa caccia · Cosa viene fornito oggi · Benchmark · Architettura · Documentazione
T3MP3ST è uno strumento di sicurezza offensivo, progettato per test, ricerca e formazione autorizzati. Puntalo solo su sistemi di tua proprietà o per i quali hai un'autorizzazione esplicita e scritta a testarli. L'accesso non autorizzato a computer, reti o dati è illegale nella maggior parte delle giurisdizioni — sei tu l'unico responsabile per come usi questo software e per rimanere entro la legge e le tue regole di ingaggio. Porta la tempesta sui tuoi target, non su quelli di qualcun altro.
T3MP3ST viene fornito così com'è sotto licenza AGPL-3.0, senza garanzia e senza responsabilità per qualsiasi danno, perdita o uso improprio. Gli autori non approvano, supportano o giustificano attività non autorizzate. Ottieni il permesso. Rimani in scopo. Non essere una minaccia. 🫡
La sicurezza offensiva sta dietro anni di pratica e strumenti costosi. La scommessa dietro T3MP3ST è che uno sciame coordinato di agenti metta la vera caccia ai bug alla portata di persone che non hanno mai ricevuto l'invito, attraverso app web, CTF, smart contract, codice sorgente e OSS embedded/robotica. È una scommessa ambiziosa, e le sezioni seguenti sono attente a separare ciò che già funziona da ciò che è ancora una scommessa.
| Dominio | Cosa fa | Stato |
|---|---|---|
| 🕸️ Web app | Black-box, recon da attaccante esterno → exploit (suite XBEN) | ✅ Stabile |
| 🚩 CTF | Risoluzioni senza indizi, in sandbox isolata (Cybench) | ✅ Stabile |
| 🤖 Robotica / OT / embedded | Pipeline di divulgazione coordinata per caccia a vulnerabilità OSS (OSV + PoC live + refuter) | ✅ Pipeline stabile |
| 📂 Codice sorgente | Analisi white-box del repository con scomposizione master-builder cieca | ⚠️ Ingest solo Python |
| 💰 Smart contract | Damn Vulnerable DeFi | ⚠️ riproduzione, non scoperta nuova |
| ☁️ Cloud (IaC) | Benchmark di rilevamento misconfig (cloud:bench) + arsenale cloud opzionale (aws/az/gcloud + scoutsuite/cloudfox/pmapper; pacu con accesso controllato) | 🚧 Impalcatura misconfig IaC — sfruttamento live-cloud non ancora benchmarkato |
| 📱 Mobile | Analizzatore statico integrato (misconfig manifest + rilevamento segreti/testo in chiaro, mobile:bench) + arsenale opzionale (mobsfscan/objection/drozer; frida con accesso controllato) | 🚧 Impalcatura rilevamento statico — sfruttamento dinamico non benchmarkato |
| 🔩 Binario / RE | Rivelatore di sink da output decompilato (copia non sicura / format-string / cmd-injection / int-overflow, binary:bench) + arsenale opzionale (ghidra/radare2/objdump/checksec/strings; gdb con accesso controllato) | 🚧 Impalcatura rilevamento sink statico — risoluzione/pwn non benchmarkato |
Percorso più veloce per una War Room funzionante (senza chiavi, ~2 minuti per la configurazione; il tempo della missione dipende dal target):
npm install
npm run server # War Room → http://127.0.0.1:3333/ui/
Nella War Room, apri Impostazioni e connetti un agente locale (Claude Code / Codex / Hermes). Quindi descrivi un target a Op Admiral in inglese semplice e lancialo. L'agente che hai connesso è il cervello. Nessuna chiave richiesta.
Preferisci usare una chiave? Impostane una e salta il passaggio di connessione:
export OPENROUTER_API_KEY=... # o VENICE_API_KEY / ANTHROPIC_API_KEY / OPENAI_API_KEY
export XAI_API_KEY=... # Grok Build (grok-build-0.1) — xAI's coding model, native tool-calling
Agenti locali lenti possono avere più margine con T3MP3ST_LOCAL_AGENT_TIMEOUT_MS per ogni chiamata CLI, T3MP3ST_TASK_TIMEOUT_MS per le attività di missione e T3MP3ST_GENERAL_TIMEOUT_MS per le richieste di pianificazione. I valori sono in millisecondi.
Oppure eseguilo completamente offline sul tuo modello — nessuna chiave, nessun cloud. Predefinito su Ollama; puntalo su qualsiasi server compatibile con OpenAI (LM Studio, vLLM, llama.cpp):
ollama serve && ollama pull llama3 # o un server compatibile con OpenAI
export TEMPEST_LOCAL_BASE_URL=http://localhost:11434/api # LM Studio: http://localhost:1234/v1
export TEMPEST_LOCAL_MODEL=llama3
npx tempest # → "Change default provider" → local
Il tool-calling funziona su qualsiasi modello locale (è guidato tramite testo), quindi l'Arsenale funziona anche su modelli senza function-calling nativo.
Verifica i numeri tu stesso:
npm run verify-claims # ricalcola ogni headline dal JSON impegnato in bench/
L'uso come libreria/SDK, l'API HTTP completa e la configurazione MCP si trovano in docs/.
Il framework è una kill chain a 8 operatori, e questa tabella non getta fumo negli occhi. Il Recon è un motore dal vivo, supportato da strumenti — e i denti sono già reali: 90,1% pass@1 su XBEN, 8/10 CVE post-cutoff tenute fuori pinzate al file/linea/CWE esatti, e una pipeline di divulgazione coordinata che è abbastanza viva da avere bozze in attesa di coordinamento con i vendor in questo momento. Ciò che non è provato è lo sciame. Ogni operatore a valle — Exploiter, Infiltrator, Exfiltrator, Ghost — esegue lo stesso loop ReAct reale e supportato da strumenti del recon (veri strumenti di exploit, non stub), ma i numeri di testa provengono da un singolo agente, non dalla cellula coordinata a 8 operatori, e lo sfruttamento end-to-end dello sciame non è benchmarkato ed è ancora inaffidabile. Il motore è reale; lo sciame è la parte che si sta ancora guadagnando le strisce. Forte dove l'abbiamo meritato, schietto sul resto.
| Componente | Stato | Note |
|---|---|---|
Misurazione ricalcolabile (verify-claims) | ✅ Stabile | ogni headline viene ricalcolato dagli artefatti impegnati |
| Motore Recon | ✅ Stabile | guida nmap / DNS / HTTP / fingerprinting; ogni risultato traccia a un output reale dello strumento |
| Motore Missione + War Room + Op Admiral | ✅ Stabile | senza chiavi attraverso un agente locale connesso |
| Arsenale, server MCP, API HTTP | ✅ Stabile | 35 strumenti integrati di default; 83 con l'opt-in T3MP3ST_FULL_ARSENAL (+48 adattatori, con i driver post-exploit pericolosi — metasploit, hydra — dietro un cancello di approvazione umana) — entrambi i conteggi si ricalcolano tramite verify-claims. security_recon su MCP |
| Contenimento ambito di uscita | ✅ Stabile (attivo per impostazione predefinita) | una volta impostato un target di missione, gli strumenti di rete integrati rifiutano host pubblici fuori scopo — non il target/sottodomini, non loopback/privato (SCOPE DENIED) — una impostazione predefinita più restrittiva, non un semplice esecutore di strumenti |
| Pipeline di divulgazione coordinata | ✅ Stabile | Novità OSV + PoC live + pannello refuter + CVSS; solo bozze, un umano invia |
| Analisi white-box del codice sorgente | ⚠️ Sperimentale | Ingest regex solo Python; la scomposizione multi-modello costa più token, non meno |
| DeFi (Damn Vulnerable DeFi) | ⚠️ Sperimentale | riproduce classi di exploit note; non scoperta nuova |
| Exploiter / Infiltrator / Exfiltrator / Ghost | ⚠️ Sperimentale | esegue il loop ReAct reale supportato da strumenti (stesso motore del recon); non provato come sciame coordinato — il percorso benchmarkato è a singolo agente, lo sfruttamento live dello sciame è ancora inaffidabile |
| Moduli avanzati (cloud, persistenza, sciame, cognizione) | 🚧 Pianificato | solo interfaccia in src/stubs/ |
| Ciclo di auto-miglioramento | 🧪 Ricerca | registra lezioni e proposte oggi; reintegrarle nella pianificazione è in roadmap |
Suddivisione funzionalità per funzionalità: FEATURES.md.
Dove arriva la tempesta oggi — e dove è diretta. Stessa disciplina di tutto il resto: un dominio è ✅ solo quando c'è una ricevuta dietro.
| Dominio | Cosa copre | Stato |
|---|---|---|
| 🕸️ Web | app, API, flussi di autenticazione, OWASP Top 10 | ✅ Core — XBEN 90.1% pass@1 |
| 📂 Codice | audit white-box del codice sorgente, caccia a vulnerabilità stile SAST | ✅ Provato (risultato di caccia) — CVE-Zero tenuto fuori: singolo agente 8/10 file/linea/CWE esatti, 10/10 trovati (7 linguaggi); il motore di ingest del repository stesso è ancora ⚠️ sperimentale |
| 🚩 CTF | wargame, range di pratica, sfide | ✅ Provato — Cybench 23/40 senza indizi |
| 🔌 Rete / Infra | recon, fingerprinting di servizi/stack; laterale + privesc | ✅ recon (motore live nmap/DNS/HTTP) · ⚠️ laterale/privesc sperimentale |
| 🤖 Embedded / IoT / OT | firmware, robotica, OSS ICS/SCADA | ✅ Pipeline CVE live — bozze di divulgazione coordinata tenute per i vendor |
| 📦 Supply chain | audit delle dipendenze, installazione senza conferma | ⚠️ Reale — classe dedicata; colpito un CWE-829 sul set tenuto fuori |
| 💰 Blockchain | smart contract, DeFi, Solidity | ⚠️ Solo riproduzione — Damn Vulnerable DeFi, non scoperta nuova |
| ☁️ Cloud | AWS/GCP/Azure misconfig, IAM, serverless | 🚧 In sviluppo |
| 📱 Mobile | Sicurezza app Android/iOS | 🚧 In sviluppo |
| 🏢 Identità / AD | Kerberos, pass-the-hash, attacchi AD | 🚧 In sviluppo |
| 🔐 Binario / RE | overflow, ROP, sviluppo exploit | 🚧 In sviluppo — necessita di strumentazione specializzata |
L'architettura a classi/squadra significa che i nuovi domini compongono piuttosto che forkare — ciascuno è un loadout (classi specialistiche + arsenale + adattatore di target + un benchmark). I domini 🚧 vengono rilasciati al buio finché non hanno un numero.
Risultati principali. Ciascuno viene ricalcolato dal JSON impegnato con npm run verify-claims; metodologia completa e avvertenze sono nei documenti collegati.
| Suite | Risultato | Contesto |
|---|---|---|
| XBEN — Suite di 104 sfide di XBOW, black-box | pass@1 media 90,1% (Wilson-95 86,2–92,9), minimo 91/104 · gpt-5.5 | XBOW auto-dichiara 85% sulla stessa suite; la nostra ricalcola il verdetto graduato dagli artefatti impegnati (trascrizioni grezze rimosse per privacy) |
| XBEN — white-box (riportato separatamente) | pass@1 98,7%, best-ball 104/104 · gpt-5.5 | mai mescolato con il numero black-box |
| Cybench — 40-task academic bench, Opus 4.8, nessun indizio | 23/40 (58%) senza indizi, singola esecuzione pass@1 (applicato da verify-claims) | non il record di punteggio grezzo (Anthropic: 76,5% pass@10); ogni flag valutata contro l'oracolo impegnato |
| CVE-Zero — 10 CVE reali post-cutoff (2026), tenute fuori, 7 linguaggi | singolo agente 8/10 file/linea/CWE esatti (verificato tutto esatto, stabile) · 10/10 trovati (pacchetto completo) | Proof contro memorizzazione e overfitting: post-cutoff, e i prompt induriti non sono mai stati ottimizzati su questi; verify-claims lo ricalcola. n=10, direzionale; il vantaggio dello sciame qui è il recall, non una prova che il coordinamento batte il singolo. |
Come leggerli:
verify-claims ricalcola il superamento/fallimento. Le trascrizioni grezze per step vengono rimosse per la privacy dell'operatore, quindi controlli il verdetto graduato, non l'output grezzo dello strumento. Zero fabbricato, imposto da un guardiano anti-overfitting che viene eseguito ad ogni push.Il numero non è il vanto — la ricevuta lo è. Un harness open-source senza chiavi che ti dà la possibilità di rieseguire invece di chiederti di fidarti: clonalo, esegui npm run verify-claims, e ogni verdetto sopra viene ricalcolato dal suo oracolo impegnato davanti a te.
Letture approfondite: WALL_FORENSICS (mancate per sfida), CYBENCH, INTEGRITY_LEDGER (audit di contaminazione e ogni ritrattazione), OBSIDIVM (il nostro web range live).
| Doc | Contenuti |
|---|---|
| FEATURES.md | stato funzionalità per funzionalità ([x] rilasciato / [~] parziale / [ ] pianificato) |
| SCOPE_AND_AUTHORIZATION | modello di autorità, ricevute di scopo, regole di evidenza e ri-test |
| VERIFIED_PROVENANCE | come i risultati diventano provati da strumenti invece che asseriti dal modello |
| TEAM_PREVIEW | percorso di primo avvio e script di revisione |
| INSTALL_MATRIX | tabella di prontezza macOS / Linux |
| ARSENAL_ACTIVATION_PLAN | configurazione opzionale di strumenti esterni |
| CYBENCH · WALL_FORENSICS · INTEGRITY_LEDGER · COGNITIVE_ARCHITECTURE | metodologia dei benchmark |
| RELEASE_CHECKLIST | i cancelli che una release deve superare |
┌─────────────────────────────────────────────────────────────────┐
│ COMANDO T3MP3ST │
├─────────────────────────────────────────────────────────────────┤
│ CONTROLLO MISSIONE ◄── MODELLO TARGET ──► ARSENALE (STRUMENTI) │
│ ▲ │
│ CELLA AGENTE: RECON · SCANNER · EXPLOITER · INFILTRATOR · │
│ EXFILTRATOR · GHOST · COORDINATOR · ANALYST │
│ ▲ │
│ ARCHIVIO EVIDENZE · ARCHIVIO CREDENZIALI · REGISTRO RISULTATI │
│ ▲ │
│ LIVELLO OPSEC · CANALE COMUNICAZIONE · BACKBONE LLM │
└─────────────────────────────────────────────────────────────────┘
Gli operatori mappano le fasi MITRE ATT&CK e Cyber Kill Chain (recon è attivo; le fasi successive sono impalcature):
| Operatore | Fase | MITRE | Funzione |
|---|---|---|---|
| Recon | Ricognizione | TA0043 | OSINT, scoperta di rete, enumerazione di asset |
| Scanner | Scoperta | TA0007 | scansione vulnerabilità, fingerprinting di servizi |
| Exploiter | Accesso Iniziale | TA0001 | sfruttamento, consegna payload |
| Infiltrator | Movimento Laterale | TA0008 | post-sfruttamento, escalation privilegi |
| Exfiltrator | Raccolta / Esfiltrazione | TA0009/10 | estrazione dati, raccolta credenziali |
| Ghost | Persistenza | TA0003 | persistenza, furtività, pulizia |
| Coordinator | Comando e Controllo | TA0011 | controllo missione, orchestrazione |
| Analyst | Analisi | — | analisi di pattern, reportistica |
Provider: OpenRouter, Venice, Anthropic, OpenAI, o un agente locale senza chiavi (Claude Code / Codex / Hermes). Imposta OPENROUTER_API_KEY / VENICE_API_KEY / ANTHROPIC_API_KEY, o connetti un agente in Impostazioni.
Integrazioni: node dist/mcp-server.js espone security_recon ad agenti MCP-aware. npm run server avvia l'API HTTP (POST /api/mission/start, GET /api/mission/status, e altro). Riferimento completo in docs/.
Il red-teaming non dovrebbe essere un sacerdozio. Porta un adattatore, un pacchetto di prompt, un runbook, un nuovo strumento per l'arsenale o una segnalazione di bug.
Una regola, non negoziabile: tutto qui è solo per test autorizzati. Target di proprietà, in scopo o consenzienti. Costruisci per i difensori, o non costruire qui.
npm run verify-claims deve rimanere verde.Processo di rilascio e cancelli: RELEASE_CHECKLIST.
AGPL-3.0. Vedi LICENSE.
Fortes fortuna iuvat — la fortuna aiuta gli audaci.
⊰•-•✧ LOVE PLINY ✧•-•⊱ 🌩️