Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
DVDR_LLM — Framework ensemble per il rilevamento e la riparazione delle vulnerabilità software utilizzando più grandi modelli linguistici, con strumenti di analisi del consenso e di valutazione per i compromessi precision-recall. | Kitploit
Strumenti/GitHubGitHub/erroristotle/dvdr_llm
Analisi delle VulnerabilitàAnalisi del CodiceMachine LearningPaper e RicercaApprendimento e FormazioneSicurezza dell'IA
GitHuberroristotle/dvdr_llm

DVDR_LLM

Framework ensemble per il rilevamento e la riparazione delle vulnerabilità software utilizzando più grandi modelli linguistici, con strumenti di analisi del consenso e di valutazione per i compromessi precision-recall.

Vedi Repository
38 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

DVDR-LLM: Quando gli LLM Funzionano Meglio Insieme per il Rilevamento e la Riparazione delle Vulnerabilità Software?

Python 3.8+ Paper

Implementazione ufficiale e artefatto per l'articolo di ricerca:
"DVDR-LLM: Quando gli LLM Funzionano Meglio Insieme per il Rilevamento e la Riparazione delle Vulnerabilità Software?"

🎯 Panoramica

DVDR-LLM è un framework ensemble che esamina sistematicamente i compromessi fondamentali nell'aggregazione di più Large Language Model (LLM) per il rilevamento e la riparazione delle vulnerabilità software. La nostra valutazione completa rivela informazioni critiche sull'equilibrio precision-recall, sui benefici della diversità dei modelli e sugli approcci basati sul consenso per applicazioni critiche per la sicurezza.

Risultati Chiave

  • Compromessi Precision-Recall: L'ensemble riduce i falsi positivi nella valutazione della validità delle patch (+10-12% di accuratezza) ma aumenta i falsi negativi nell'identificazione delle vulnerabilità
  • Vantaggi della Complessità: I vantaggi della diversità dei modelli aumentano con il livello di astrazione del codice (+18% recall, +11.8% F1 per vulnerabilità multi-file)
  • Bias Conservativo: L'80% dei modelli mostra un comportamento sistematicamente conservativo (vulnerabilità mancate vs. sovra-rilevamento)
  • Nessuno Specialista Unico: Tutte le rilevazioni di vulnerabilità si sovrappongono nell'ensemble, convalidando le strategie di voto di maggioranza

📁 Struttura del Repository

root@kitploit:~
DVDR_LLM/
├── dvdr_llm/                  # Main package (professional structure)
│   ├── __init__.py            # Package exports
│   ├── cli.py                 # Command-line interface
│   ├── config.py              # Configuration settings
│   ├── core/                  # Core functionality
│   │   ├── api_client.py      # LLM API communication
│   │   ├── detector.py        # VulnerabilityDetector class
│   │   └── prompts.py         # Prompt generation utilities
│   ├── analysis/              # Analysis modules
│   │   ├── consensus.py       # Consensus analysis
│   │   └── metrics.py         # Performance metrics
│   ├── evaluation/            # Model evaluation
│   │   └── evaluator.py       # ModelEvaluator class
│   ├── visualization/         # Plotting and visualization
│   │   └── plotter.py         # ResultsPlotter class
│   └── tools/                 # Additional utilities
├── utils/                     # Original utility modules
│   ├── api.py                 # LLM API interaction helpers
│   ├── database.py            # SQLite helper functions
│   └── config.py              # Configuration constants
├── data/                      # Datasets and databases
│   ├── vulnerabilities.csv    # Vulnerability data
│   └── vulnerable and patched codes.sqlite
├── output/                    # Generated results and databases
│   ├── database_*.sqlite      # Model-specific databases
│   ├── consensus_analysis/    # Consensus analysis results
│   ├── metrics/              # Performance metrics
│   └── database_exports/     # Exported data
├── examples/                  # Usage examples
│   └── basic_usage.py         # Basic usage demonstration
├── docs/                      # Documentation
│   └── README_consensus_analysis.md
├── paper/                     # Research paper
│   ├── main.pdf               # Published paper
│   └── main.tex               # LaTeX source
├── setup.py                   # Package installation
├── requirements.txt           # Dependencies
├── CHANGELOG.md              # Change log
├── LICENSE                   # MIT License
└── README.md                 # This file

🚀 Avvio Rapido

Prerequisiti

  • Python 3.8+
  • Accesso alle API LLM (Ollama, OpenAI, ecc.)
  • SQLite per i database delle vulnerabilità

Installazione

  1. Clonare il repository:

    root@kitploit:~
    git clone https://github.com/Erroristotle/DVDR_LLM.git
    cd DVDR_LLM
    
  2. Installare le dipendenze:

    root@kitploit:~
    pip install -r requirements.txt
    pip install -e .  # Install package in development mode
    
  3. Verificare l'installazione:

    root@kitploit:~
    python verify_package.py
    

Utilizzo di Base

Interfaccia a Righe di Comando

root@kitploit:~
# Run vulnerability detection with ensemble
dvdr-llm detect --models llama3-8b,codellama-7b --database data/vulnerabilities.sqlite

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

# Generate conflict pattern visualization (Figure in paper)
python dvdr_llm/visualization/conflict_pattern_plot.py results/metrics/reviewer_insights_disagreement_patterns.csv -o reviewer_insights

# Evaluate ensemble performance across abstraction levels (RQ3)
dvdr-llm evaluate --models-dir output/ --abstraction-analysis

Python API

root@kitploit:~
from dvdr_llm import VulnerabilityDetector, ConsensusAnalyzer, ModelEvaluator

# Initialize vulnerability detector
detector = VulnerabilityDetector("llama3-8b-instruct")

# Connect to database
detector.connect_to_database("data/vulnerabilities.sqlite")

# Analyze code for vulnerabilities
code = """
void vulnerable_function(char *input) {
    char buffer[100];
    strcpy(buffer, input);  // Buffer overflow
}
"""

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

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

# Process database entries
stats = detector.process_database_entries(limit=100)
print(f"Processed {stats['processed']} entries")

# Clean up
detector.close()

# Multi-model consensus analysis
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)

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

📊 Riproduzione dei Risultati dell'Articolo

Domande di Ricerca

RQ1: Impatto dell'Aggregazione di Più LLM

root@kitploit:~
# Generate Table 2 (Model comparison with delta percentages)
python dvdr_llm/tools/model_contribution_analysis.py results/metrics/model_predictions.csv --compare-ensemble --threshold 0.7

# Analyze individual vs ensemble performance
dvdr-llm evaluate --comparison-analysis --threshold 0.7

RQ2: Soglia di Consenso Ottimale

root@kitploit:~
# Generate Figure 3 (Threshold sensitivity analysis)
python dvdr_llm/tools/threshold_analysis.py results/metrics/model_predictions.csv --range 0.3-0.8

# Statistical validation of threshold selection
python dvdr_llm/analysis/statistical_validation.py --threshold-analysis

RQ3: Prestazioni su Diversi Livelli di Astrazione

root@kitploit:~
# Generate Table 3 (Abstraction level analysis)
python dvdr_llm/evaluation/evaluator.py --abstraction-analysis --threshold 0.6

# Level-specific performance evaluation
dvdr-llm evaluate --abstraction-levels 1,2,3 --ensemble

RQ4: Aggregazione Ponderata per la Qualità delle Patch

root@kitploit:~
# Analyze patch quality metrics (ROUGE, CodeBLEU, Complexity)
python dvdr_llm/tools/patch_quality_analysis.py results/patches/ --weighted-scoring

# Generate Figure 4 (Patch similarity and complexity analysis)
dvdr-llm visualize --patch-analysis --metrics results/patch_metrics.csv

Generazione delle Figure Principali

root@kitploit:~
# Main conflict pattern analysis figure (Figure 2)
python dvdr_llm/visualization/conflict_pattern_plot.py results/metrics/reviewer_insights_disagreement_patterns.csv -o reviewer_insights

# Threshold sensitivity analysis (Figure 3)
python dvdr_llm/visualization/enhanced_figure3_generator.py results/metrics/model_predictions.csv

# Statistical validation plots (Appendix)
python dvdr_llm/analysis/statistical_significance_analysis.py --generate-plots

🔧 Configurazione

Configurazione dei Modelli

Modifica dvdr_llm/config.py per configurare gli endpoint LLM:

root@kitploit:~
LLM_MODELS = {
    "llama3_8b": "ollama run llama3:8b-instruct",
    "codellama_7b": "ollama run codellama:7b-instruct",
    "mistral_7b": "ollama run mistral:7b-instruct",
    # Add your model configurations
}

# Consensus thresholds for different scenarios
CONSENSUS_THRESHOLDS = {
    "conservative": 0.8,  # High precision, low false positives
    "balanced": 0.6,      # Balanced precision-recall
    "sensitive": 0.4      # High recall, catch more vulnerabilities
}

Modelli di Prompt

Il framework utilizza modelli di prompt standardizzati per la riproducibilità:

  • SVD1: Identificazione delle vulnerabilità nel codice non corretto
  • SVD2: Valutazione della validità delle patch
  • SVD3: Identificazione delle vulnerabilità guidata da CVE/CWE
  • SVD4: Validazione delle patch guidata da CVE/CWE
  • SVR1: Riparazione delle vulnerabilità zero-shot
  • SVR2: Riparazione few-shot con descrizioni dei commit

📈 Risultati Sperimentali

Riepilogo delle Prestazioni dei Modelli

Δ% indica la differenza di prestazioni rispetto alla baseline dell'ensemble

Approfondimenti Chiave

  1. Relazione di Prestazioni Inversa: I modelli che eccellono nel rilevamento spesso falliscono nella verifica
  2. Sensibilità alla Soglia: La soglia del 60% offre un equilibrio ottimale tra i compiti
  3. Vantaggi dell'Astrazione: I vantaggi dell'ensemble aumentano con la complessità del codice
  4. Bias Conservativo: Tendenza sistematica al sotto-rilevamento rispetto al sovra-rilevamento

🛠️ Utilizzo Avanzato

Analisi Personalizzata

root@kitploit:~
# Implement custom consensus strategy
from dvdr_llm.analysis.consensus import ConsensusAnalyzer

class WeightedConsensus(ConsensusAnalyzer):
    def __init__(self, model_weights):
        self.weights = model_weights
    
    def weighted_majority_vote(self, predictions):
        weighted_sum = sum(pred * weight for pred, weight in zip(predictions, self.weights))
        return weighted_sum >= 0.5

# Use custom visualization
from dvdr_llm.visualization import ConflictPatternPlotter

plotter = ConflictPatternPlotter()
plotter.create_professional_figure(
    disagreement_data, 
    output_prefix="custom_analysis",
    style="publication"
)

Estensione del Framework

root@kitploit:~
# Add new LLM model
from dvdr_llm.core.api_client import LLMClient

class CustomLLMClient(LLMClient):
    def __init__(self, api_endpoint, model_name):
        super().__init__(api_endpoint, model_name)
    
    def generate_response(self, prompt, **kwargs):
        # Implement custom API interaction
        pass

# Register new model
detector.register_model("custom-llm", CustomLLMClient("api_url", "model_name"))

📚 Documentazione

  • Riferimento API: Documentazione API dettagliata
  • Guida all'Analisi: Spiegazioni dell'analisi statistica
  • Guida alla Visualizzazione: Istruzioni per la generazione delle figure
  • Analisi del Consenso: Dettagli sulla metodologia del consenso

🔬 Articolo di Ricerca

I risultati completi della ricerca sono documentati in paper/main.tex. I contributi principali includono:

  1. Prima valutazione empirica completa della diversità degli ensemble di LLM per i compiti di vulnerabilità
  2. Nuovo sistema di valutazione ponderata della riparazione che considera la qualità del codice oltre la sintassi
  3. Analisi sistematica su tre livelli di astrazione che fornisce spunti pratici sulla scalabilità
  4. Analisi critica del compromesso precision-recall per applicazioni critiche per la sicurezza

🤝 Contributi

Accogliamo con piacere i contributi! Consulta le nostre linee guida per i contributi:

  1. Creare un fork del repository
  2. Creare un branch di funzionalità (git checkout -b feature/new-analysis)
  3. Eseguire il commit delle modifiche (git commit -am 'Add new analysis method')
  4. Eseguire il push del branch (git push origin feature/new-analysis)
  5. Creare una Pull Request

📄 Licenza

Consulta il file LICENCE.

Se utilizzi DVDR-LLM, ti preghiamo di citare: @article{zibaeirad2025diverse, title={Diverse LLMs vs. Vulnerabilities: Who Detects and Fixes Them Better?}, author={Zibaeirad, Arastoo and Vieira, Marco}, journal={arXiv preprint arXiv:2512.12536}, year={2025} }

Scarica lo strumento
ModelloSVD1 (Δ%)SVD2 (Δ%)SVD3 (Δ%)SVD4 (Δ%)
Llama3-8b+59.8%-87.5%+127.1%-73.5%
Llama3-70b-50.8%+54.4%-19.6%+13.5%
CodeLlama-7b+16.8%-34.6%+86.9%-45.4%
Ensemble (60%)BaselineBaselineBaselineBaseline