Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
FuzzingBrain-Bench — A benchmark for LLM-driven bug discovery: 77 challenges across 43 open-source projects (C/C++/Java). | Kitploit
Outils/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).

Voir le dépôt
8378il y a 7 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Site web
Partager

FuzzingBrain Bench

Un benchmark pour la reproduction de vulnérabilités pilotée par LLM sur 77 bugs zero-day réels répartis sur 43 projets open-source (C / C++ / Java).

Chaque défi donne à l'agent uniquement le harnais de fuzzing (la cible) et le code source du projet à la révision vulnérable — pas de patch, pas de commit de correction, pas de ligne cible. L'agent doit découvrir une entrée qui redéclenche un défaut sous le sanitizer. Chaque note est déterministe (pas de LLM-juge) et se déroule dans l'image et hors ligne : le candidat passe par le harnais officiel instrumenté avec le sanitizer intégré au conteneur du défi, et l'exécution est notée selon les crashs distincts déclenchés par l'agent. Rien ne quitte la machine et aucun service n'a besoin d'être actif.

DéfisProjetsLangagesCorrecteur
77 de bout en bout43C · C++ · Javadéterministe — dans l'image, hors ligne

Rien dans les images ni dans ce dépôt ne révèle ce qu'est un bug — les défis sont nommés par alias neutre (<projet>-NN, ex. avro-03), et la clé de réponse (PoC, défaut attendu, build corrigé) n'est dans aucun des deux : elle reste chez le mainteneur. Parcourir les 77 : tools/sealed/CHALLENGES.md.


Démarrage rapide

1. Configuration

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

python3 -m venv .venv && source .venv/bin/activate   # recommandé (et requis sur
                                                     # Debian/Ubuntu, PEP 668)
pip install -e .                              # nécessite Python ≥ 3.10 et Docker

# placez votre/vos clé(s) de modèle dans ./.env — chargées automatiquement à chaque exécution, pas besoin d'export
cat > .env <<'EOF'
ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
GEMINI_API_KEY=...
DEEPSEEK_API_KEY=sk-...
EOF

fb-bench list                                 # les 77 défis (par alias)
fb-bench models                               # modèles pris en charge + quelles clés sont chargées

(./.env est lu automatiquement ; un simple export ANTHROPIC_API_KEY=... fonctionne aussi.)

Re-source .venv/bin/activate dans chaque nouveau shell. Ou évitez le venv avec pip install --break-system-packages -e . (non recommandé).

fb-bench run récupère l'image publique du défi, pilote la boucle de l'agent sur l'hôte (en appelant votre API de modèle), et note chaque candidat à l'intérieur de cette image — aucun réseau, rien à joindre. Seuls Docker + votre clé de modèle sont requis, et une exécution note les crashs distincts trouvés par l'agent — l'identité d'un crash est son type de défaut sanitizer plus ses frames de pile supérieures, donc le même défaut atteint vingt fois compte une fois.

Le --arm api par défaut ne nécessite rien de plus que ce qui précède. Les backends --arm codex et --arm claudecode nécessitent des CLI fournisseurs supplémentaires — optionnels, installés séparément (jamais inclus dans pip install -e .) ; voir §4.

2. Exécuter un défi avec un modèle

# Famille Claude  (haiku est le moins cher/plus rapide ; remplacez par opus/sonnet pour des runs plus difficiles)
fb-bench run avro-03 --model claude-haiku-4-5

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

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

# Famille DeepSeek  (endpoint compatible OpenAI ; nécessite DEEPSEEK_API_KEY)
fb-bench run avro-03 --model deepseek-v4-flash

Modèles : 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 (tout identifiant de catalogue fonctionne via --model ; voir fb-bench models).

3. Exécuter plusieurs — même commande, un ou plusieurs

fb-bench run prend un bug ou plusieurs, un modèle ou plusieurs. Une seule exécution n'est qu'une matrice de taille un, donc il n'y a pas de commande « sweep » séparée :

# exécution complète recommandée : un modèle sur tout le corpus, sortie nommée, PoC
# conservés (par défaut) pour inspection ultérieure. L'agent continue de chercher au-delà
# de son premier crash sauf si vous passez --stop-on-crash
fb-bench run all --model claude-haiku-4-5 --output run1 --max-turns 100

# la sélection transversale de modèles, tous les défis, 4 cellules en parallèle
fb-bench run all --model default-lineup --output sweep1 --jobs 4

# quelques bugs, 3 échantillons chacun
fb-bench run avro-03,jq-01 --model gpt-5.5 --samples 3 --output probe

# réafficher simplement le classement d'une exécution existante
fb-bench run all --model claude-haiku-4-5 --output run1 --report-only

<bugs> est un alias, une liste séparée par des virgules, ou all ; --model est un identifiant, une liste séparée par des virgules, default-lineup, ou all. Les résultats arrivent dans output/<nom>/<bug>/<modèle>/seed-N/ (score.json, episode.jsonl, transcript.jsonl, cost.json, traj.md distillé) ; un classement est affiché à la fin. --output prend un nom simple (imbriqué sous output/) ou un chemin (utilisé tel quel). Chaque exécution a son propre dossier : omettez --output et elle atterrit dans output/run_<horodatage> ; nommez un dossier qui existe déjà et une nouvelle exécution crée <nom>_<horodatage> plutôt que de reprendre dedans — ainsi deux exécutions ne partagent jamais de résultats (--report-only est le seul lecteur, ouvrant un dossier en place).

4. Modes d'agent — même run, choisissez le backend avec --arm

Les trois backends d'agent partagent une seule entrée. --arm sélectionne lequel pilote le défi ; tout le reste (<bugs>, --jobs, --samples, --output, le dossier par exécution, le classement) est identique entre les bras.

fb-bench run avro-03 --model gpt-5.5            # --arm api (défaut) : modèle fournisseur
fb-bench run avro-03 --arm codex               # CLI OpenAI codex (défaut 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      # tout le corpus, par lots
  • --arm codex pilote codex exec d'OpenAI via le serveur MCP du bench. --model définit le modèle codex (défaut gpt-5.5), épinglé via son config.toml.
  • --arm claudecode pilote la CLI Claude Code. --model choisit le modèle claude (sonnet/opus/haiku).

Les deux bras fournisseurs acceptent --auth {api,sub} : api = la clé API du fournisseur (OPENAI_API_KEY / ANTHROPIC_API_KEY, paiement à l'usage, pas de limitation), sub = une connexion par abonnement (codex : un plan ChatGPT Plus/Pro/Business/Edu/Enterprise ; claudecode : OAuth claude.ai). Le défaut est auto — préférez api quand la clé API est présente, sinon repli sur sub.

Optionnel — installer la CLI fournisseur pour le bras que vous utilisez

Ce sont des extras optionnels et ne sont pas installés par pip install -e .. Le --arm api par défaut n'en a jamais besoin. Installez uniquement la CLI dont vous prévoyez d'utiliser le bras (les deux nécessitent Node) :

# --arm codex → CLI OpenAI Codex. Authentifiez-vous une fois, en correspondance avec le --auth utilisé :
npm install -g @openai/codex
#   --auth api (défaut quand OPENAI_API_KEY est définie) :
printenv OPENAI_API_KEY | codex login --with-api-key
#   --auth sub (nécessite un plan ChatGPT Plus/Pro/Business/Edu/Enterprise ; un compte
#   ChatGPT gratuit ne peut pas utiliser les modèles codex) :
codex login                                  # connectez-vous avec votre plan ChatGPT
Télécharger l’outil