Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
DVDR_LLM — Ансамблевый фреймворк для обнаружения и исправления уязвимостей программного обеспечения с использованием нескольких больших языковых моделей, с анализом консенсуса и инструментами оценки для компромиссов между точностью и полнотой. | Kitploit
Инструменты/GitHubGitHub/erroristotle/dvdr_llm
Анализ уязвимостейАнализ КодаМашинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИ
GitHuberroristotle/dvdr_llm

DVDR_LLM

Ансамблевый фреймворк для обнаружения и исправления уязвимостей программного обеспечения с использованием нескольких больших языковых моделей, с анализом консенсуса и инструментами оценки для компромиссов между точностью и полнотой.

Репозиторий
3179 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

DVDR-LLM: Когда LLM работают лучше вместе для обнаружения и исправления уязвимостей ПО?

Python 3.8+ Paper

Официальная реализация и артефакт для исследовательской статьи:
"DVDR-LLM: Когда LLM работают лучше вместе для обнаружения и исправления уязвимостей ПО?"

🎯 Обзор

DVDR-LLM — это ансамблевый фреймворк, который систематически исследует фундаментальные компромиссы при агрегации нескольких больших языковых моделей (LLM) для обнаружения и исправления уязвимостей ПО. Наша всесторонняя оценка выявляет критические выводы о балансировании точности и полноты, преимуществах разнообразия моделей и подходах, основанных на консенсусе, в критически важных для безопасности приложениях.

Ключевые выводы

  • Компромиссы точности и полноты: Ансамбль снижает количество ложных срабатываний при оценке корректности патчей (+10–12% точности), но увеличивает количество ложных отрицаний при идентификации уязвимостей
  • Преимущества сложности: Преимущества разнообразия моделей возрастают с уровнем абстракции кода (+18% полноты, +11,8% F1 для многофайловых уязвимостей)
  • Консервативное смещение: 80% моделей демонстрируют систематическое консервативное поведение (пропуск уязвимостей вместо их чрезмерного обнаружения)
  • Нет уникальных специалистов: Все обнаружения уязвимостей перекрываются в рамках ансамбля, что подтверждает стратегии голосования большинством

📁 Структура репозитория

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

🚀 Быстрый старт

Предварительные требования

  • Python 3.8+
  • Доступ к LLM API (Ollama, OpenAI и т.д.)
  • SQLite для баз данных уязвимостей

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/Erroristotle/DVDR_LLM.git
    cd DVDR_LLM
    
  2. Установите зависимости:

    pip install -r requirements.txt
    pip install -e .  # Install package in development mode
    
  3. Проверьте установку:

    python verify_package.py
    

Базовое использование

Интерфейс командной строки

# 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

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"
)

📊 Воспроизведение результатов статьи

Исследовательские вопросы

RQ1: Влияние агрегации нескольких LLM

# 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: Оптимальный порог консенсуса

# 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: Производительность на разных уровнях абстракции

# 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: Взвешенная агрегация для оценки качества патчей

# 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

Генерация основных рисунков

# 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
Скачать инструмент