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

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
VulnLLM-R — LLM de raisonnement spécialisé pour la détection de vulnérabilités dans le code source en C/C++ et Python, avec construction de jeux de données, entraînement SFT/DPO et scripts de reproduction des résultats. | Kitploit
Outils/GitHubGitHub/ucsb-mlsec/vulnllm-r
Analyse Statique de Code (SAST)Analyse des VulnérabilitésAnalyse de CodeApprentissage AutomatiqueArticles et Recherche
GitHubucsb-mlsec/vulnllm-r

VulnLLM-R

LLM de raisonnement spécialisé pour la détection de vulnérabilités dans le code source en C/C++ et Python, avec construction de jeux de données, entraînement SFT/DPO et scripts de reproduction des résultats.

Voir le dépôt
3705823il y a 6 moisVérifié par Kitploit

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

VulnLLM-R : LLM de raisonnement spécialisé pour la détection de vulnérabilités

  • Article : arXiv:2512.07533
  • Code et données : GitHub
  • Démo : Démo web
  • Modèle : Modèle 7B
model_size_vs_f1_scatter_01

Environnement et jeu de données

🛠️ Créer l'environnement

  • Installez Git LFS et clonez le dépôt (les fichiers LFS sont récupérés automatiquement lors du clone)
git lfs install          # one-time setup
git clone https://github.com/ucsb-mlsec/VulnLLM-R.git
cd VulnLLM-R
# If you cloned before installing Git LFS, run: git lfs pull
  • Créez un nouvel environnement conda
conda create -n vulnscan python=3.11
conda activate vulnscan
  • Installez les paquets requis
pip install -e . -e ./vulscan/train/LLaMA-Factory -e ./vulscan/model_zoo

Pour reproduire nos résultats

# generate VulnLLM-R-7B's results
python -m vulscan.test.test --output_dir results/test_data --dataset_path ./datasets/test/function_level/ ./datasets/test/repo_level/ --language python c java --model UCSB-SURFI/VulnLLM-R-7B --requests_per_minute 1000 --save --use_cot --batch_size 4 --tp 2 --vllm --max_tokens 8192 --random_cwe

python -m vulscan.test.test_hf \
      --output_dir results/test_hf \
      --hf_dataset UCSB-SURFI/VulnLLM-R-Test-Data \
      --hf_split repo_level function_level \
      --language c python java \
      --model UCSB-SURFI/VulnLLM-R-7B \
      --save --use_cot --vllm --tp 2

# [optional] generate other models' results with our shell script 
# remember to add your API keys to .env file if you want to run commercial models
# use ./run_test.sh -h for more options
./vulscan/test/run_test.sh -o results/test_data -t 2 # -o means output directory, -t means tensor parallelism
./vulscan/test/run_test.sh -o results/test_data -M o3-mini # -M means model name, which runs only one model.
./vulscan/test/run_test.sh -o results/test_data -M gpt-5.4 -e high # -e sets reasoning effort (e.g., none/low/medium/high/xhigh)
./vulscan/test/run_test.sh -o results/test_data -M claude-opus-4-6 -e high

# [optional] draw plot to compare with other models
python plots/plot_language_comparison_models.py --results-dir results/test_data
python plots/plot_model_size_scatter.py --results-dir results/test_data # Note: Labels may overlap with scatter points. Adjust text positions manually if needed.

Jeux de données distillés existants

  • Distill-DeepSeek
  • Distill-QwQ

Nous fournissons également la version à raisonnement réduit des jeux de données distillés :

  • Reduced-Distill-DeepSeek
  • Reduced-Distill-QwQ

Détails techniques

📚 Construire les jeux de données d'entraînement et de test

Fusionnez les jeux de données existants de détection de vulnérabilités au niveau des fonctions : PrimeVul [1], SecCodePLT [2], Juliet [3], Sven [4], et Arvo [5]. Parmi ces jeux de données, PrimeVul contient les fonctions les plus complexes. Nous créons deux ensembles d'entraînement : clean (sans PrimeVul) et noisy (avec PrimeVul), afin de pouvoir nous entraîner sur des jeux de données relativement simples et tester sur le jeu de données complexe PrimeVul. Notez que le fait de nommer l'ensemble d'entraînement avec PrimeVul « noisy » ne signifie pas que le jeu de données est bruité. C'est un nom relativement arbitraire que nous avons utilisé au départ.

  • Après avoir téléchargé tous les jeux de données, vulscan/data_process/data_utils contient un ensemble de scripts pour traiter et fusionner les jeux de données.
    • raw_to_us.py : Fusionner les données brutes dans notre jeu de données et supprimer les données redondantes
    • check_cwe_correct.py : Calculer la précision pour chaque catégorie de CWE
    • generate_arvo_raw_data.py : Générer des données brutes structurées à partir du jeu de données arvo
    • arvo_to_us.py : Reformater les données brutes structurées d'arvo au format de notre jeu de données
    • split_good_bad_for_juliet.py : Extraire les données du jeu de données brut Juliet 1.3 et les convertir au format requis, ce qui constitue une partie de notre clean_dataset c
    • add_sven_to_clean_dataset.py : Extraire les données du jeu de données Sven, formant une partie de notre clean dataset C
    • sync_large_small.py : Synchroniser les modifications de noisy_dataset/large_train/c vers noisy_dataset/small_train/c
    • remove_testing_from_training.py : Ajouter le tag human à chaque donnée, ce qui signifie que le point a été vérifié par un humain et utilisé comme donnée de test -data_utils.py : Ajouter le champ related_cwe au jeu de données.
  • Les données fusionnées seront enregistrées dans
    • datasets/clean_dataset : les données d'entraînement sans PrimeVul
      • datasets/clean_dataset/python contient les données de SVEN et SecCodePLT
      • datasets/clean_dataset/c contient les données de Juliet et SVEN
    • datasets/noisy_dataset
      • datasets/noisy_dataset/small_train : Contient les données d'entraînement de PrimeVul et SVEN avec des CWE sélectionnés ( nous utilisons les données PrimeVul de ce jeu de données comme entraînement)
      • datasets/noisy_dataset/large_train : Contient les données d'entraînement de PrimeVul, SVEN et SecCodePLT avec plus de CWE (ce jeu de données peut ensuite être utilisé pour entraîner des modèles plus grands)
      • datasets/noisy_dataset/test : Un petit ensemble de test de PrimeVul vérifié par un humain
    • datasets/test
      • datasets/test/test_clean : Les données de test de SVEN, SecCodePLT et Juliet ; avec des CWE OOD qui ne font pas partie de l'ensemble d'entraînement
      • datasets/test/test_primevul_pair : Les données de test originales de PrimeVul
  • Statistiques du jeu de données ; vous pouvez exécuter vulscan/data_process/data_utils/get_cwe_stat.py pour obtenir l'histogramme du jeu de données
Télécharger l’outil