Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
VulTriage — Le code de VulTriage : augmentation de contexte à triple voie pour la détection de vulnérabilités basée sur les LLM | Kitploit
Outils/GitHubGitHub/vinsontang1/vultriage
Analyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeApprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationSécurité de l'IA
GitHubvinsontang1/vultriage

VulTriage

Le code de VulTriage : augmentation de contexte à triple voie pour la détection de vulnérabilités basée sur les LLM

Voir le dépôt
51il y a 3 moisPas 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 →
Partager

ChatGPT Image 2026年5月10日 16_51_24

Un framework intelligent de détection de vulnérabilités basé sur de grands modèles de langage et l'analyse statique de code, prenant en charge l'évaluation multi-datasets et des études d'ablation.

image-20260510164600403

📋 Table des matières

  • Introduction
  • Fonctionnalités clés
  • Prérequis système
  • Démarrage rapide
  • Utilisation
  • Datasets et Modèles
  • FAQ

Introduction

Ce projet est un framework intelligent de détection de vulnérabilités basé sur les modèles GPT-4o et BGE-M3, combinant :

  • Analyse de structure statique : graphes de flux de contrôle (CFG), graphes de flux de données (DFG), arbres syntaxiques abstraits (AST)
  • Génération augmentée par récupération (RAG) : correspondance de modèles de vulnérabilités basée sur la base de connaissances CWE
  • Compréhension de code : analyse sémantique à l'aide de grands modèles de langage
  • Détection par paires / échantillon unique : prise en charge de plusieurs modes d'évaluation

Fonctionnalités clés

  • ✅ Prise en charge des datasets PrimeVul et Kotlin
  • ✅ Récupération intégrée dans la base de connaissances des vulnérabilités CWE
  • ✅ Études d'ablation configurables
  • ✅ Suivi des métriques en temps réel
  • ✅ Support flexible d'expériences sur les hyperparamètres

Prérequis système

  • Python >= 3.9
  • CUDA (optionnel, pour l'accélération GPU)

Démarrage rapide

1. Installer les dépendances

root@kitploit:~
pip install -r requirements.txt

2. Préparer les ressources

Télécharger le modèle BGE-M3

Le modèle sera téléchargé automatiquement, ou vous pouvez le télécharger manuellement :

root@kitploit:~
git clone https://huggingface.co/BAAI/bge-m3
# Note: BGE-M3 related dependencies can be installed via FlagEmbedding. For details, refer to: pip install -U FlagEmbedding

Préparer les données CWE

Assurez-vous que les fichiers cwec_latest.xml/cwec_v4.19.1.xml et 1435.csv/1435_filtered_columns.csv (données d'index CWE) existent dans le répertoire racine du projet.

Remarque : Ce projet utilise le Top 25 des faiblesses logicielles les plus dangereuses de CWE. Les fichiers associés sont déjà inclus dans le répertoire racine du projet.

Préparer les datasets

Placez les fichiers suivants dans le répertoire racine du projet :

  • primevul_test_paired.jsonl (dataset PrimeVul)
  • LLM4Vul-main/LLM4Vul-main/data/kotlin_data.csv (dataset Kotlin)

3. Configurer la clé API

Modifiez la configuration de l'API OpenAI dans main.py ou hyperparam_exp.py :

root@kitploit:~
client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.poixe.com/v1"
)

Remarque : l'URL actuelle https://api.poixe.com/v1 n'a pas pu être analysée. Il peut s'agir d'un type de page non pris en charge ou d'un lien cassé. Veuillez vérifier la validité du lien ou passer à un autre fournisseur d'API.

4. Exécuter la détection de vulnérabilités

Mode de base (fonctionnalité complète)

root@kitploit:~
python main.py --wotask all --jsonl_file primevul_test_paired.jsonl

Mode d'étude d'ablation

root@kitploit:~
# Without control flow information
python main.py --wotask wo_ctrl_info_pth --jsonl_file primevul_test_paired.jsonl
# Without RAG knowledge
python main.py --wotask wo_rag_pth --jsonl_file primevul_test_paired.jsonl
# Without code understanding
python main.py --wotask wo_exp_pth --jsonl_file primevul_test_paired.jsonl
# Without any auxiliary information
python main.py --wotask nan --jsonl_file primevul_test_paired.jsonl

Expériences sur les hyperparamètres

root@kitploit:~
# Pairwise evaluation mode
python hyperparam_exp.py --mode pairwise --input_file primevul_test_paired.jsonl --detail_level C --info_comb all --desc_level concise --max_vuln 2
# Single-sample evaluation mode
python hyperparam_exp.py --mode single --input_file LLM4Vul-main/LLM4Vul-main/data/kotlin_data.csv

5. Consulter les résultats

Les résultats de détection sont enregistrés en temps réel dans metrics_log.txt et les résumés d'évaluation finaux sont affichés dans le terminal :

  • Les métriques d'évaluation incluent l'exactitude, le rappel, le taux de faux positifs, etc.
  • Les résultats des études d'ablation comparent les différences de performance entre différents modes afin d'analyser la contribution de chaque module.

Utilisation

Aperçu des scripts principaux

ScriptObjectif

Description des paramètres

Paramètres de main.py

Paramètres de hyperparam_exp.py

Datasets et Modèles

📊 Datasets

1. Dataset PrimeVul

  • Citation : Yangruibo Ding, Yanjun Fu, Omniyyah Ibrahim, Chawin Sitawarin, Xinyun Chen, Basel Alomair, David Wagner, Baishakhi Ray, and Yizheng Chen. 2025. Vulnerability detection with code language models: How far are we? ISSTA 2025 (2025).
  • Objectif : benchmark de détection de vulnérabilités par paires
  • Format : JSONL (contient les champs func et target)
  • Source : Conférence ISSTA 2025 (Site officiel ISSTA). Veuillez vous référer à l'article original pour les autorisations d'accès au dataset.

2. Dataset Kotlin

  • Citation : Triet Huynh Minh Le, M Ali Babar, and Tung Hoang Thai. 2024. Software vulnerability prediction in low-resource languages: An empirical study of codebert and chatgpt. In Proceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering, 679–685.
  • Objectif : recherche sur la prédiction de vulnérabilités dans les langues à faibles ressources
  • Format : CSV (contient les colonnes code et label)
  • Source : Conférence EASE 2024 (Site officiel EASE 2024). Veuillez vous référer à l'article original pour les autorisations d'accès au dataset.

3. Base de données CWE

  • Version : CWE v4.19.1
  • Source : MITRE CWE
  • Objectif : base de connaissances des modèles de vulnérabilités et augmentation par récupération
  • Remarque : CWE peut être librement utilisé à des fins de recherche, de développement et commerciales. L'attribution du droit d'auteur à MITRE doit être conservée.

🤖 Modèles

1. Modèle d'embedding BGE-M3

  • Développeur : BAAI (Beijing Academy of Artificial Intelligence)
  • HuggingFace : BAAI/bge-m3
  • Licence : Licence MIT (Remarque : l'analyse de la page de licence du modèle actuel a échoué. Se référer à la licence du projet FlagEmbedding qui est la licence MIT)
  • Objectif : récupération hybride de vecteurs denses et creux, prenant en charge la récupération multilingue, multi-granularité (longueur d'entrée maximale de 8192 jetons) et multifonctionnelle
  • Projet associé : FlagEmbedding (dépôt open-source des modèles de la série BGE)

2. GPT-4o

  • Développeur : OpenAI
  • Version du modèle : gpt-4o-2024-11-20
  • Licence : Suit les conditions d'utilisation d'OpenAI (en vigueur à partir du 1er janvier 2026)
  • Objectif : compréhension de code, identification de vulnérabilités, raisonnement et jugement
  • Remarque : l'utilisation doit se conformer aux conditions d'utilisation d'OpenAI. Les activités illégales ou nuisibles et l'ingénierie inverse du modèle sont interdites.

📦 Bibliothèques de dépendances

BibliothèqueVersionLicence
FlagEmbedding1.4.0MIT
openai2.26.0Apache 2.0

FAQ

Q1 : Comment changer le fournisseur d'API OpenAI ?

Modifiez le base_url et le api_key dans main.py ou hyperparam_exp.py.

Q2 : Pourquoi les résultats de récupération sont-ils inexacts ?

  1. Vérifiez que 1435.csv/1435_filtered_columns.csv est chargé correctement et assurez-vous que le format des données d'index CWE est correct ;
  2. Confirmez que le modèle BGE-M3 a été téléchargé correctement. Vous pouvez le télécharger manuellement via git clone https://huggingface.co/BAAI/bge-m3 ;

Q3 : Comment personnaliser les métriques d'évaluation ?

Modifiez la méthode update_pair_metrics dans metrics_tracker.py pour ajouter ou ajuster la logique de calcul des métriques.

Q4 : Que faire si le téléchargement du modèle BGE-M3 échoue ?

Téléchargez les fichiers du modèle directement depuis le site HuggingFace, extrayez-les dans le répertoire racine du projet, ou vérifiez votre connexion réseau et réexécutez la commande git clone https://huggingface.co/BAAI/bge-m3.

Télécharger l’outil
main.py
Script principal de détection de vulnérabilités avec prise en charge des études d'ablation
hyperparam_exp.pyExpériences sur les hyperparamètres et évaluation multi-modes
retrieval.pyModule de récupération de la base de connaissances CWE (récupération hybride basée sur le modèle BGE-M3)
metrics_tracker.pySuivi des métriques en temps réel avec enregistrement des journaux et prise en charge de la visualisation
ParamètreDéfautDescription
--wotaskallMode d'ablation : all (fonctionnalité complète), wo_ctrl_info_pth (sans information de structure statique), wo_rag_pth (sans connaissances RAG), wo_exp_pth (sans compréhension de code), nan (sans information auxiliaire)
--jsonl_fileprimevul_test_paired.jsonlChemin du dataset JSONL
--metrics_filemetrics_log.txtFichier de sortie des métriques
ParamètreDéfautDescription
--modepairwiseMode d'évaluation : pairwise ou single
--input_fileRequisChemin du fichier d'entrée (format JSONL ou CSV)
--detail_levelCNiveau de détail de l'analyse de code : C (complet), B (standard), A (bref)
--info_comballCombinaison d'informations : all, no_ast, no_cfg, no_dfg
--desc_levelconciseNiveau de description : concise, normal, detailed
--max_vuln2Nombre maximal de vulnérabilités : 2 ou 4