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
FuzzingBrain-Bench — A benchmark for LLM-driven bug discovery: 77 challenges across 43 open-source projects (C/C++/Java). | Kitploit
Strumenti/GitHubGitHub/fuzzingbrain/fuzzingbrain-bench
Dynamic Analysis (Sandboxing)Vulnerability AnalysisFuzzingLearning & EducationAI SecurityLabs & Practice
GitHubfuzzingbrain/fuzzingbrain-bench

FuzzingBrain-Bench

A benchmark for LLM-driven bug discovery: 77 challenges across 43 open-source projects (C/C++/Java).

Vedi Repository
83787 giorni 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 →
Sito web
Condividi

FuzzingBrain Bench

Un benchmark per la riproduzione di vulnerabilità guidata da LLM su 77 bug zero-day reali in 43 progetti open-source (C / C++ / Java).

Ogni sfida fornisce all'agente solo l'harness di fuzzing (il target) e il sorgente del progetto alla revisione vulnerabile — nessuna patch, nessun commit di fix, nessuna riga target. L'agente deve scoprire un input che riattivi un fault sotto il sanitizer. Ogni valutazione è deterministica (nessun LLM-as-judge) e avviene in-image e offline: il candidato viene eseguito attraverso l'harness ufficiale instrumentato con sanitizer integrato nel container della sfida, e l'esecuzione viene valutata in base ai crash distinti che l'agente ha innescato. Nulla lascia la macchina e nessun servizio deve essere attivo.

SfideProgettiLinguaggiValutatore
77 end-to-end43C · C++ · Javadeterministico — in-image, offline

Nulla nelle immagini o in questo repository rivela quale sia il bug — le sfide sono denominate con alias neutri (<progetto>-NN, es. avro-03), e la chiave di risposta (PoC, fault atteso, build corretta) non è in nessuno dei due: resta al manutentore. Sfoglia tutte le 77: tools/sealed/CHALLENGES.md.


Avvio rapido

1. Configurazione

git clone https://github.com/fuzzingbrain/FuzzingBrain-Bench
cd FuzzingBrain-Bench

python3 -m venv .venv && source .venv/bin/activate   # consigliato (e richiesto su
                                                     # Debian/Ubuntu, PEP 668)
pip install -e .                              # richiede Python ≥ 3.10 e Docker

# inserisci le tue chiavi modello in ./.env — caricato automaticamente a ogni esecuzione, nessun export necessario
cat > .env <<'EOF'
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
DEEPSEEK_API_KEY=sk-...
EOF

fb-bench list                                 # le 77 sfide (per alias)
fb-bench models                               # modelli supportati + quali chiavi sono caricate

(./.env viene letto automaticamente; funziona anche un semplice export ANTHROPIC_API_KEY=....)

Esegui di nuovo source .venv/bin/activate in ogni nuova shell. Oppure salta il venv con pip install --break-system-packages -e . (sconsigliato).

fb-bench run scarica l'immagine pubblica della sfida, guida il loop dell'agente sull'host (chiamando la tua API modello) e valuta ogni candidato all'interno di quell'immagine — nessuna rete, nulla da raggiungere. Servono solo Docker + la tua chiave modello, e un'esecuzione valuta i crash distinti trovati dall'agente — l'identità di un crash è il suo tipo di fault del sanitizer più i suoi stack frame principali, quindi lo stesso fault raggiunto venti volte conta una sola volta.

Il --arm api predefinito non richiede altro che quanto sopra. I backend --arm codex e --arm claudecode richiedono CLI del fornitore extra — opzionali, installati separatamente (mai parte di pip install -e .); vedi §4.

2. Esegui una sfida con un modello

# Famiglia Claude  (haiku è il più economico/veloce; sostituisci con opus/sonnet per run più difficili)
fb-bench run avro-03 --model claude-haiku-4-5

# Famiglia GPT
fb-bench run avro-03 --model gpt-5.5

# Famiglia Gemini
fb-bench run avro-03 --model gemini-3.1-pro-preview

# Famiglia DeepSeek  (endpoint compatibile OpenAI; richiede DEEPSEEK_API_KEY)
fb-bench run avro-03 --model deepseek-v4-flash

Modelli: claude-haiku-4-5 · claude-sonnet-4-6 · claude-opus-4-8 · gpt-5.5 · gpt-5.4 · gpt-5 · gemini-3.1-pro-preview · gemini-2.5-flash · deepseek-v4-pro · deepseek-v4-flash (qualsiasi id del catalogo funziona tramite --model; vedi fb-bench models).

3. Esegui molti — stesso comando, uno o molti

fb-bench run accetta un bug o molti, un modello o molti. Un singolo run è solo una matrice di dimensione uno, quindi non esiste un comando "sweep" separato:

# run completo consigliato: un modello su tutto il corpus, output nominato, PoC
# preservati (predefinito) per ispezione successiva. L'agente continua a cercare oltre
# il suo primo crash a meno che non passi --stop-on-crash
fb-bench run all --model claude-haiku-4-5 --output run1 --max-turns 100

# la rosa cross-modello curata, tutte le sfide, 4 celle in parallelo
fb-bench run all --model default-lineup --output sweep1 --jobs 4

# un paio di bug, 3 campioni ciascuno
fb-bench run avro-03,jq-01 --model gpt-5.5 --samples 3 --output probe

# ristampa solo la leaderboard da un run esistente
fb-bench run all --model claude-haiku-4-5 --output run1 --report-only

<bugs> è un alias, una lista separata da virgole, o all; --model è un id, una lista separata da virgole, default-lineup, o all. I risultati finiscono in output/<nome>/<bug>/<modello>/seed-N/ (score.json, episode.jsonl, transcript.jsonl, cost.json, traj.md distillato); una leaderboard viene stampata alla fine. --output accetta un nome semplice (annidato sotto output/) o un percorso (usato così com'è). Ogni run ha la sua cartella: ometti --output e finisce in output/run_<timestamp>; nomina una cartella che esiste già e un nuovo run crea <nome>_<timestamp> invece di riprendere al suo interno — quindi due run non condividono mai i risultati (--report-only è l'unico lettore, che apre una cartella sul posto).

4. Modalità agente — stesso run, scegli il backend con --arm

I tre backend agente condividono un unico punto di ingresso. --arm seleziona quale guida la sfida; tutto il resto (<bugs>, --jobs, --samples, --output, la cartella per-run, la leaderboard) è identico tra gli arm.

fb-bench run avro-03 --model gpt-5.5            # --arm api (predefinito): modello del fornitore
fb-bench run avro-03 --arm codex               # CLI OpenAI codex (predefinito gpt-5.5)
fb-bench run avro-03 --arm claudecode --model sonnet --auth sub   # CLI Claude Code
fb-bench run all     --arm codex --jobs 4      # intero corpus, in batch
  • --arm codex guida codex exec di OpenAI tramite il server MCP del bench. --model imposta il modello codex (predefinito gpt-5.5), fissato tramite il suo config.toml.
  • --arm claudecode guida la CLI Claude Code. --model sceglie il modello claude (sonnet/opus/haiku).

Entrambi gli arm del fornitore accettano --auth {api,sub}: api = la chiave API del fornitore (OPENAI_API_KEY / ANTHROPIC_API_KEY, pay-go, nessun throttle), sub = un accesso con abbonamento (codex: un piano ChatGPT Plus/Pro/Business/Edu/Enterprise; claudecode: OAuth claude.ai). Il predefinito è auto — preferisci api quando la chiave API è presente, altrimenti ripiega su sub.

Opzionale — installa la CLI del fornitore per l'arm che usi

Questi sono extra opzionali e non vengono installati da pip install -e .. Il --arm api predefinito non ne ha mai bisogno. Installa solo la CLI dell'arm che intendi eseguire (entrambe richiedono Node):

# --arm codex → CLI OpenAI Codex. Autenticati una volta, in base al --auth che usi:
npm install -g @openai/codex
#   --auth api (predefinito quando OPENAI_API_KEY è impostata):
printenv OPENAI_API_KEY | codex login --with-api-key
#   --auth sub (richiede un piano ChatGPT Plus/Pro/Business/Edu/Enterprise; un account
#   ChatGPT gratuito non può usare i modelli codex):
codex login                                  # accedi con il tuo piano ChatGPT

# --arm claudecode → CLI Claude Code.
npm install -g @anthropic-ai/claude-code
#   --auth api (predefinito quando ANTHROPIC_API_KEY è impostata): nulla da fare
#   --auth sub: login OAuth claude.ai una tantum
claude

Il compito è sempre cieco

Scarica lo strumento