Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/erroristotle/dvdr_llm
تحليل الثغرات الأمنيةتحليل الكودتعلم الآلةالأوراق والأبحاثالتعلم والتعليمأمن الذكاء الاصطناعي
GitHuberroristotle/dvdr_llm

DVDR_LLM

إطار عمل تجميعي لاكتشاف وإصلاح الثغرات الأمنية في البرمجيات باستخدام نماذج لغوية كبيرة متعددة، مع أدوات لتحليل توافق الآراء وتقييم المفاضلة بين الدقة والاستدعاء.

عرض المستودع
35منذ 8 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

DVDR-LLM: متى تكون النماذج اللغوية الكبيرة أفضل معًا لاكتشاف وإصلاح الثغرات البرمجية؟

Python 3.8+ Paper

التنفيذ الرسمي والقطعة الأثرية للبحث العلمي:
"DVDR-LLM: متى تكون النماذج اللغوية الكبيرة أفضل معًا لاكتشاف وإصلاح الثغرات البرمجية؟"

🎯 نظرة عامة

DVDR-LLM هو إطار عمل تنسيقي (Ensemble) يدرس بشكل منهجي المفاضلات الأساسية في تجميع نماذج لغوية كبيرة متعددة (LLMs) لاكتشاف وإصلاح الثغرات البرمجية. يكشف تقييمنا الشامل عن رؤى حاسمة حول موازنة الدقة والاستدعاء (Precision-Recall)، وفوائد تنوع النماذج، والمناهج القائمة على توافق الآراء في التطبيقات الحساسة أمنيًا.

النتائج الرئيسية

  • مفاضلات الدقة والاستدعاء: يقلل التنسيق (Ensemble) من النتائج الإيجابية الكاذبة في تقييم صلاحية التصحيحات (دقة +10-12%) ولكنه يزيد من النتائج السلبية الكاذبة في تحديد الثغرات
  • فوائد التعقيد: تزداد مزايا تنوع النماذج مع ارتفاع مستوى تجريد الكود (+18% استدعاء، +11.8% F1 للثغرات متعددة الملفات)
  • الانحياز التحفظي: 80% من النماذج تُظهر سلوكًا تحفظيًا منهجيًا (تفويت الثغرات مقابل الإفراط في الاكتشاف)
  • لا يوجد مختصون فريدون: جميع اكتشافات الثغرات تتداخل عبر التنسيق، مما يتحقق من صحة استراتيجيات التصويت بالأغلبية

📁 هيكل المستودع

root@kitploit:~
DVDR_LLM/
├── dvdr_llm/                  # الحزمة الرئيسية (هيكل احترافي)
│   ├── __init__.py            # تصديرات الحزمة
│   ├── cli.py                 # واجهة سطر الأوامر
│   ├── config.py              # إعدادات التهيئة
│   ├── core/                  # الوظائف الأساسية
│   │   ├── api_client.py      # التواصل مع واجهة برمجة تطبيقات LLM
│   │   ├── detector.py        # صنف VulnerabilityDetector
│   │   └── prompts.py         # أدوات توليد المطالبات
│   ├── analysis/              # وحدات التحليل
│   │   ├── consensus.py       # تحليل توافق الآراء
│   │   └── metrics.py         # مقاييس الأداء
│   ├── evaluation/            # تقييم النماذج
│   │   └── evaluator.py       # صنف ModelEvaluator
│   ├── visualization/         # الرسم والتصور
│   │   └── plotter.py         # صنف ResultsPlotter
│   └── tools/                 # أدوات إضافية
├── utils/                     # الوحدات المساعدة الأصلية
│   ├── api.py                 # أدوات التفاعل مع واجهة برمجة تطبيقات LLM
│   ├── database.py            # دوال مساعدة لـ SQLite
│   └── config.py              # ثوابت الإعدادات
├── data/                      # مجموعات البيانات وقواعد البيانات
│   ├── vulnerabilities.csv    # بيانات الثغرات
│   └── vulnerable and patched codes.sqlite
├── output/                    # النتائج وقواعد البيانات المُنشأة
│   ├── database_*.sqlite      # قواعد بيانات خاصة بكل نموذج
│   ├── consensus_analysis/    # نتائج تحليل توافق الآراء
│   ├── metrics/              # مقاييس الأداء
│   └── database_exports/     # البيانات المُصدَّرة
├── examples/                  # أمثلة الاستخدام
│   └── basic_usage.py         # عرض أساسي للاستخدام
├── docs/                      # التوثيق
│   └── README_consensus_analysis.md
├── paper/                     # البحث العلمي
│   ├── main.pdf               # الورقة المنشورة
│   └── main.tex               # مصدر LaTeX
├── setup.py                   # تثبيت الحزمة
├── requirements.txt           # التبعيات
├── CHANGELOG.md              # سجل التغييرات
├── LICENSE                   # رخصة MIT
└── README.md                 # هذا الملف

🚀 بدء سريع

المتطلبات الأساسية

  • Python 3.8+
  • الوصول إلى واجهات برمجة تطبيقات LLM (Ollama، OpenAI، وغيرها)
  • SQLite لقواعد بيانات الثغرات

التثبيت

  1. استنساخ المستودع:

    root@kitploit:~
    git clone https://github.com/Erroristotle/DVDR_LLM.git
    cd DVDR_LLM
    
  2. تثبيت التبعيات:

    root@kitploit:~
    pip install -r requirements.txt
    pip install -e .  # تثبيت الحزمة في وضع التطوير
    
  3. التحقق من التثبيت:

    root@kitploit:~
    python verify_package.py
    

الاستخدام الأساسي

واجهة سطر الأوامر

root@kitploit:~
# تشغيل اكتشاف الثغرات مع التنسيق
dvdr-llm detect --models llama3-8b,codellama-7b --database data/vulnerabilities.sqlite

# تحليل أنماط توافق الآراء (RQ2)
dvdr-llm analyze consensus --input results/metrics/model_predictions.csv --threshold 0.6

# توليد تصور نمط التضارب (الشكل في الورقة)
python dvdr_llm/visualization/conflict_pattern_plot.py results/metrics/reviewer_insights_disagreement_patterns.csv -o reviewer_insights

# تقييم أداء التنسيق عبر مستويات التجريد (RQ3)
dvdr-llm evaluate --models-dir output/ --abstraction-analysis

واجهة برمجة التطبيقات بلغة Python

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

📊 إعادة إنتاج نتائج الورقة

أسئلة البحث

RQ1: تأثير تجميع نماذج لغوية كبيرة متعددة

root@kitploit:~
# توليد الجدول 2 (مقارنة النماذج مع نسب التغير المئوية)
python dvdr_llm/tools/model_contribution_analysis.py results/metrics/model_predictions.csv --compare-ensemble --threshold 0.7

# تحليل الأداء الفردي مقابل أداء التنسيق
dvdr-llm evaluate --comparison-analysis --threshold 0.7

RQ2: العتبة المثلى لتوافق الآراء

root@kitploit:~
# توليد الشكل 3 (تحليل حساسية العتبة)
python dvdr_llm/tools/threshold_analysis.py results/metrics/model_predictions.csv --range 0.3-0.8

# التحقق الإحصائي من اختيار العتبة
python dvdr_llm/analysis/statistical_validation.py --threshold-analysis

RQ3: الأداء عبر مستويات التجريد

root@kitploit:~
# توليد الجدول 3 (تحليل مستوى التجريد)
python dvdr_llm/evaluation/evaluator.py --abstraction-analysis --threshold 0.6

# تقييم الأداء الخاص بكل مستوى
dvdr-llm evaluate --abstraction-levels 1,2,3 --ensemble

RQ4: التجميع الموزون لجودة التصحيحات

root@kitploit:~
# تحليل مقاييس جودة التصحيح (ROUGE، CodeBLEU، التعقيد)
python dvdr_llm/tools/patch_quality_analysis.py results/patches/ --weighted-scoring

# توليد الشكل 4 (تحليل تشابه التصحيحات وتعقيدها)
dvdr-llm visualize --patch-analysis --metrics results/patch_metrics.csv

توليد الأشكال الرئيسية

root@kitploit:~
# الشكل الرئيسي لتحليل نمط التضارب (الشكل 2)
python dvdr_llm/visualization/conflict_pattern_plot.py results/metrics/reviewer_insights_disagreement_patterns.csv -o reviewer_insights

# تحليل حساسية العتبة (الشكل 3)
python dvdr_llm/visualization/enhanced_figure3_generator.py results/metrics/model_predictions.csv

# مخططات التحقق الإحصائي (الملحق)
python dvdr_llm/analysis/statistical_significance_analysis.py --generate-plots

🔧 الإعدادات

إعدادات النموذج

قم بتعديل dvdr_llm/config.py لإعداد نقاط نهاية النماذج اللغوية الكبيرة:

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
}

قوالب المطالبات

يستخدم الإطار قوالب مطالبات موحدة لضمان قابلية إعادة الإنتاج:

  • SVD1: تحديد الثغرات في الكود غير المُصحح
  • SVD2: تقييم صلاحية التصحيحات
  • SVD3: تحديد الثغرات الموجه بواسطة CVE/CWE
  • SVD4: التحقق من التصحيحات الموجه بواسطة CVE/CWE
  • SVR1: إصلاح الثغرات بدون أمثلة (Zero-shot)
  • SVR2: إصلاح بأمثلة قليلة (Few-shot) مع أوصاف الالتزامات

📈 النتائج التجريبية

ملخص أداء النماذج

النموذجSVD1 (Δ%)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%
التنسيق (60%)خط الأساسخط الأساسخط الأساسخط الأساس

Δ% يُظهر فرق الأداء مقارنة بخط أساس التنسيق

رؤى رئيسية

  1. علاقة الأداء العكسية: النماذج المتفوقة في الاكتشاف غالبًا ما تفشل في التحقق
  2. حساسية العتبة: توفر عتبة 60% توازنًا أمثلًا عبر المهام
  3. فوائد التجريد: تزداد مزايا التنسيق مع تعقيد الكود
  4. الانحياز التحفظي: ميل منهجي نحو نقص الاكتشاف مقابل الإفراط في الاكتشاف

🛠️ استخدام متقدم

تحليل مخصص

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

توسيع الإطار

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

📚 التوثيق

  • مرجع واجهة البرمجة: توثيق تفصيلي لواجهة البرمجة
  • دليل التحليل: شروحات التحليل الإحصائي
  • دليل التصور: تعليمات توليد الأشكال
  • تحليل توافق الآراء: تفاصيل منهجية توافق الآراء

🔬 البحث العلمي

النتائج البحثية الكاملة موثقة في paper/main.tex. تشمل المساهمات الرئيسية:

  1. أول تقييم تجريبي شامل لتنوع تنسيقات النماذج اللغوية الكبيرة لمهام الثغرات
  2. نظام تقييم إصلاح موزون مبتكر يأخذ في الاعتبار جودة الكود بما يتجاوز بناء الجملة
  3. تحليل منهجي عبر ثلاثة مستويات تجريد يقدم رؤى عملية حول قابلية التوسع
  4. تحليل حاسم لمفاضلة الدقة والاستدعاء للتطبيقات الحساسة أمنيًا

🤝 المساهمة

نرحب بالمساهمات! يرجى الاطلاع على إرشادات المساهمة:

  1. انسخ المستودع (Fork)
  2. أنشئ فرع ميزة (git checkout -b feature/new-analysis)
  3. نفذ التغييرات (git commit -am 'Add new analysis method')
  4. ادفع إلى الفرع (git push origin feature/new-analysis)
  5. أنشئ طلب سحب (Pull Request)

📄 الترخيص

راجع ملف LICENCE.

إذا استخدمت DVDR-LLM، يرجى الاستشهاد: @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} }

تنزيل الأداة