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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
DVDR_LLM — Ensemble-Framework zur Erkennung und Behebung von Softwareschwachstellen mithilfe mehrerer großer Sprachmodelle, mit Konsensanalyse und Bewertungswerkzeugen für Precision-Recall-Abwägungen. | Kitploit
Tools/GitHubGitHub/erroristotle/dvdr_llm
SchwachstellenanalyseCode-AnalyseMaschinelles LernenPapers & ForschungLernen & BildungKI-Sicherheit
GitHuberroristotle/dvdr_llm

DVDR_LLM

Ensemble-Framework zur Erkennung und Behebung von Softwareschwachstellen mithilfe mehrerer großer Sprachmodelle, mit Konsensanalyse und Bewertungswerkzeugen für Precision-Recall-Abwägungen.

Repository anzeigen
317vor 9 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

DVDR-LLM: Wann sind LLMs gemeinsam besser bei der Erkennung und Behebung von Software-Schwachstellen?

Python 3.8+ Paper

Offizielle Implementierung und Artefakt für das Forschungspapier:
„DVDR-LLM: Wann sind LLMs gemeinsam besser bei der Erkennung und Behebung von Software-Schwachstellen?"

🎯 Überblick

DVDR-LLM ist ein Ensemble-Framework, das systematisch die grundlegenden Trade-offs bei der Aggregation mehrerer großer Sprachmodelle (Large Language Models, LLMs) zur Erkennung und Behebung von Software-Schwachstellen untersucht. Unsere umfassende Evaluierung offenbart kritische Erkenntnisse über das Ausbalancieren von Präzision und Recall, Vorteile der Modellvielfalt sowie konsensbasierte Ansätze in sicherheitskritischen Anwendungen.

Zentrale Erkenntnisse

  • Präzisions-Recall-Trade-offs: Das Ensemble reduziert falsch-positive Ergebnisse bei der Bewertung von Patch-Gültigkeit (+10-12 % Genauigkeit), erhöht jedoch falsch-negative Ergebnisse bei der Schwachstellenidentifizierung.
  • Komplexitätsvorteile: Die Vorteile der Modellvielfalt nehmen mit dem Grad der Code-Abstraktion zu (+18 % Recall, +11,8 % F1 bei Multi-Datei-Schwachstellen).
  • Konservative Verzerrung: 80 % der Modelle zeigen ein systematisch konservatives Verhalten (Schwachstellen übersehen statt übermäßig zu erkennen).
  • Keine einzigartigen Spezialisten: Alle Schwachstellenerkennungen überlappen sich innerhalb des Ensembles, was Mehrheitsentscheidungsstrategien validiert.

📁 Repository-Struktur

DVDR_LLM/
├── dvdr_llm/                  # Hauptpaket (professionelle Struktur)
│   ├── __init__.py            # Paket-Exporte
│   ├── cli.py                 # Kommandozeilen-Schnittstelle
│   ├── config.py              # Konfigurationseinstellungen
│   ├── core/                  # Kernfunktionalität
│   │   ├── api_client.py      # LLM-API-Kommunikation
│   │   ├── detector.py        # VulnerabilityDetector-Klasse
│   │   └── prompts.py         # Hilfsprogramme zur Prompt-Erzeugung
│   ├── analysis/              # Analysemodule
│   │   ├── consensus.py       # Konsensanalyse
│   │   └── metrics.py         # Leistungskennzahlen
│   ├── evaluation/            # Modellevaluierung
│   │   └── evaluator.py       # ModelEvaluator-Klasse
│   ├── visualization/         # Plotting und Visualisierung
│   │   └── plotter.py         # ResultsPlotter-Klasse
│   └── tools/                 # Zusätzliche Hilfsprogramme
├── utils/                     # Ursprüngliche Hilfsmodule
│   ├── api.py                 # LLM-API-Interaktionshelfer
│   ├── database.py            # SQLite-Hilfsfunktionen
│   └── config.py              # Konfigurationskonstanten
├── data/                      # Datensätze und Datenbanken
│   ├── vulnerabilities.csv    # Schwachstellendaten
│   └── vulnerable and patched codes.sqlite
├── output/                    # Generierte Ergebnisse und Datenbanken
│   ├── database_*.sqlite      # Modellspezifische Datenbanken
│   ├── consensus_analysis/    # Ergebnisse der Konsensanalyse
│   ├── metrics/              # Leistungskennzahlen
│   └── database_exports/     # Exportierte Daten
├── examples/                  # Verwendungsbeispiele
│   └── basic_usage.py         # Demonstration der grundlegenden Verwendung
├── docs/                      # Dokumentation
│   └── README_consensus_analysis.md
├── paper/                     # Forschungspapier
│   ├── main.pdf               # Veröffentlichtes Papier
│   └── main.tex               # LaTeX-Quelltext
├── setup.py                   # Paketinstallation
├── requirements.txt           # Abhängigkeiten
├── CHANGELOG.md              # Änderungsprotokoll
├── LICENSE                   # MIT-Lizenz
└── README.md                 # Diese Datei

🚀 Schnellstart

Voraussetzungen

  • Python 3.8+
  • Zugriff auf LLM-APIs (Ollama, OpenAI usw.)
  • SQLite für Schwachstellendatenbanken

Installation

  1. Repository klonen:

    git clone https://github.com/Erroristotle/DVDR_LLM.git
    cd DVDR_LLM
    
  2. Abhängigkeiten installieren:

    pip install -r requirements.txt
    pip install -e .  # Paket im Entwicklungsmodus installieren
    
  3. Installation überprüfen:

    python verify_package.py
    

Grundlegende Verwendung

Kommandozeilen-Schnittstelle

# Schwachstellenerkennung mit Ensemble ausführen
dvdr-llm detect --models llama3-8b,codellama-7b --database data/vulnerabilities.sqlite

# Konsensmuster analysieren (RQ2)
dvdr-llm analyze consensus --input results/metrics/model_predictions.csv --threshold 0.6

# Visualisierung von Konfliktmustern erzeugen (Abbildung im Papier)
python dvdr_llm/visualization/conflict_pattern_plot.py results/metrics/reviewer_insights_disagreement_patterns.csv -o reviewer_insights

# Ensemble-Leistung über Abstraktionsebenen hinweg evaluieren (RQ3)
dvdr-llm evaluate --models-dir output/ --abstraction-analysis

Python-API

from dvdr_llm import VulnerabilityDetector, ConsensusAnalyzer, ModelEvaluator

# Schwachstellendetektor initialisieren
detector = VulnerabilityDetector("llama3-8b-instruct")

# Mit Datenbank verbinden
detector.connect_to_database("data/vulnerabilities.sqlite")

# Code auf Schwachstellen analysieren
code = """
void vulnerable_function(char *input) {
    char buffer[100];
    strcpy(buffer, input);  // Buffer overflow
}
"""

# CVE-Vorhersagen erhalten
cve_names = detector.analyze_code_for_cves(code, 2023)
print(f"Identified CVEs: {cve_names}")

# Schwachstelle erkennen
is_vulnerable = detector.detect_vulnerability(code)
print(f"Is vulnerable: {is_vulnerable}")

# Datenbankeinträge verarbeiten
stats = detector.process_database_entries(limit=100)
print(f"Processed {stats['processed']} entries")

# Aufräumen
detector.close()

# Multi-Modell-Konsensanalyse
model_databases = {
    "llama3-8b": "output/database_llama3-8b-instruct.sqlite",
    "codellama-7b": "output/database_codellama-7b-instruct.sqlite",
    "gemma2-9b": "output/database_gemma2-9b.sqlite"
}

analyzer = ConsensusAnalyzer()
consensus_results = analyzer.run_full_analysis(model_databases)

# Modellevaluierung
evaluator = ModelEvaluator()
evaluation_results = evaluator.evaluate_multiple_models(
    model_databases, 
    "data/ground_truth.csv"
)

📊 Reproduktion der Paper-Ergebnisse

Forschungsfragen

RQ1: Auswirkung der Aggregation mehrerer LLMs

# Tabelle 2 erzeugen (Modellvergleich mit Delta-Prozenten)
python dvdr_llm/tools/model_contribution_analysis.py results/metrics/model_predictions.csv --compare-ensemble --threshold 0.7

# Einzelne vs. Ensemble-Leistung analysieren
dvdr-llm evaluate --comparison-analysis --threshold 0.7

RQ2: Optimaler Konsensschwellenwert

# Abbildung 3 erzeugen (Schwellenwert-Sensitivitätsanalyse)
python dvdr_llm/tools/threshold_analysis.py results/metrics/model_predictions.csv --range 0.3-0.8

# Statistische Validierung der Schwellenwertauswahl
python dvdr_llm/analysis/statistical_validation.py --threshold-analysis

RQ3: Leistung über Abstraktionsebenen hinweg

# Tabelle 3 erzeugen (Analyse der Abstraktionsebenen)
python dvdr_llm/evaluation/evaluator.py --abstraction-analysis --threshold 0.6

# Ebenenspezifische Leistungsbewertung
dvdr-llm evaluate --abstraction-levels 1,2,3 --ensemble

RQ4: Gewichtete Aggregation für Patch-Qualität

# Patch-Qualitätsmetriken analysieren (ROUGE, CodeBLEU, Komplexität)
python dvdr_llm/tools/patch_quality_analysis.py results/patches/ --weighted-scoring

# Abbildung 4 erzeugen (Patch-Ähnlichkeits- und Komplexitätsanalyse)
dvdr-llm visualize --patch-analysis --metrics results/patch_metrics.csv

Erzeugung der wichtigsten Abbildungen

Tool herunterladen