Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
VulnLLM-R — Spezialisiertes Reasoning-LLM zur Erkennung von Schwachstellen im Quellcode in C/C++ und Python, mit Datensatzerstellung, SFT/DPO-Training und Skripten zur Reproduktion der Ergebnisse. | Kitploit
Tools/GitHubGitHub/ucsb-mlsec/vulnllm-r
Statische Code-Analyse (SAST)SchwachstellenanalyseCode-AnalyseMaschinelles LernenPapers & Forschung
GitHubucsb-mlsec/vulnllm-r

VulnLLM-R

Spezialisiertes Reasoning-LLM zur Erkennung von Schwachstellen im Quellcode in C/C++ und Python, mit Datensatzerstellung, SFT/DPO-Training und Skripten zur Reproduktion der Ergebnisse.

Repository anzeigen
3705823vor 6 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

VulnLLM-R: Spezialisiertes Reasoning-LLM zur Schwachstellenerkennung

  • Paper: arXiv:2512.07533
  • Code & Daten: GitHub
  • Demo: Web-Demo
  • Modell: 7B-Modell
model_size_vs_f1_scatter_01

Umgebung und Datensatz

🛠️ Umgebung erstellen

  • Git LFS installieren und das Repository klonen (LFS-Dateien werden beim Klonen automatisch geladen)
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
  • Eine neue Conda-Umgebung erstellen
conda create -n vulnscan python=3.11
conda activate vulnscan
  • Die erforderlichen Pakete installieren
pip install -e . -e ./vulscan/train/LLaMA-Factory -e ./vulscan/model_zoo

Zum Reproduzieren unserer Ergebnisse

# 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.

Vorhandene destillierte Datensätze

  • Distill-DeepSeek
  • Distill-QwQ

Wir stellen außerdem die reduzierte Reasoning-Version der destillierten Datensätze bereit:

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

Technische Details

📚 Trainings- und Testdatensätze erstellen

Führen Sie die vorhandenen Datensätze zur Erkennung von Schwachstellen auf Funktionsebene zusammen: PrimeVul [1], SecCodePLT [2], Juliet [3], Sven [4] und Arvo [5]. Von diesen Datensätzen enthält PrimeVul die komplexesten Funktionen. Wir erstellen zwei Trainingssätze: clean (ohne PrimeVul) und noisy (mit PrimeVul), sodass wir mit relativ einfachen Datensätzen trainieren und auf dem komplexen PrimeVul-Datensatz testen können. Beachten Sie, dass die Benennung des Trainingssatzes mit PrimeVul als noisy nicht bedeutet, dass der Datensatz verrauscht ist. Es ist ein relativ willkürlicher Name, den wir am Anfang verwendet haben.

  • Nachdem alle Datensätze heruntergeladen wurden, enthält vulscan/data_process/data_utils eine Reihe von Skripten zum Verarbeiten und Zusammenführen der Datensätze.
    • raw_to_us.py: Führt die Rohdaten in unseren Datensatz zusammen und entfernt redundante Daten
    • check_cwe_correct.py: Berechnet die Genauigkeit für jede CWE-Kategorie
    • generate_arvo_raw_data.py: Erzeugt strukturierte Rohdaten aus dem Arvo-Datensatz
    • arvo_to_us.py: Formatiert strukturierte Arvo-Rohdaten in unser Datensatzformat um
    • split_good_bad_for_juliet.py: Extrahiert Daten aus dem rohen Juliet-1.3-Datensatz und konvertiert sie in das erforderliche Format, das Teil unseres C-Clean-Datensatzes ist
    • add_sven_to_clean_dataset.py: Extrahiert Daten aus dem Sven-Datensatz, die Teil unseres C-Clean-Datensatzes sind
    • sync_large_small.py: Synchronisiert die Änderungen von noisy_dataset/large_train/c nach noisy_dataset/small_train/c
    • remove_testing_from_training.py: Fügt jedem Datenelement das human-Tag hinzu, was bedeutet, dass der Punkt von einem Menschen verifiziert und als Testdaten verwendet wurde -data_utils.py: Fügt das Feld related_cwe zum Datensatz hinzu.
  • Die zusammengeführten Daten werden gespeichert in
    • datasets/clean_dataset: die Trainingsdaten ohne PrimeVul
      • datasets/clean_dataset/python enthält die Daten von SVEN und SecCodePLT
      • datasets/clean_dataset/c enthält die Daten von Juliet und SVEN
    • datasets/noisy_dataset
      • datasets/noisy_dataset/small_train: Enthält die Trainingsdaten von PrimeVul und SVEN mit ausgewählten CWEs ( wir verwenden die PrimeVul-Daten in diesem Datensatz als Training)
      • datasets/noisy_dataset/large_train: Enthält die Trainingsdaten von PrimeVul, SVEN und SecCodePLT mit mehr CWEs (Dieser Datensatz kann später zum Trainieren größerer Modelle verwendet werden)
      • datasets/noisy_dataset/test: Ein kleiner, von Menschen verifizierter Testdatensatz aus PrimeVul
    • datasets/test
      • datasets/test/test_clean: Die Testdaten von SVEN, SecCodePLT und Juliet; mit OOD-CWEs, die nicht Teil des Trainingssatzes sind
      • datasets/test/test_primevul_pair: Die ursprünglichen PrimeVul-Testdaten
  • Datensatzstatistiken; Sie können vulscan/data_process/data_utils/get_cwe_stat.py ausführen, um das Histogramm des Datensatzes zu erhalten
Tool herunterladen