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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
AutoPiff — محرك تحليل دلالي للكشف عن إصلاحات الثغرات في تصحيحات برامج تشغيل نواة ويندوز — 58 قاعدة بصيغة YAML، فك ترجمة Ghidra، تتبع الوصول، وتقييم | Kitploit
أدوات/GitHubGitHub/splintersfury/autopiff
التحليل الثابتتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةتحليل البرمجيات الخبيثةتحليل الملفات الثنائيةتحليل البرامج الثابتة
GitHubsplintersfury/autopiff

AutoPiff

محرك تحليل دلالي للكشف عن إصلاحات الثغرات في تصحيحات برامج تشغيل نواة ويندوز — 58 قاعدة بصيغة YAML، فك ترجمة Ghidra، تتبع الوصول، وتقييم

عرض المستودع
644منذ 5 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

AutoPiff

إطار عمل ذكي للبحث عن التصحيحات وتحليلها

محرك تحليل دلالي لاكتشاف إصلاحات الثغرات في تصحيحات برامج تشغيل Windows kernel. يستخدم AutoPiff قواعد YAML تحفظية لتحديد تغييرات الكود ذات الصلة بالأمان بدقة عالية وقابلية للتفسير.

نظرة عامة

يحلل AutoPiff الاختلافات بين إصدارات برامج التشغيل الثغرة والمصححة لاكتشاف تلقائي:

  • إصلاحات الاستخدام بعد التحرير (تعيين null بعد ExFreePool)
  • إضافات فحص الحدود (التحقق من الطول قبل memcpy)
  • تعزيز الحدود بين المستخدم والنواة (ProbeForRead/ProbeForWrite)
  • حماية تجاوز السعة الصحيحة (الدوال المساعدة للرياضيات الآمنة)
  • تعزيز الحالة (العد المرجعي المتشابك)
  • التحقق من إدخال IOCTL، حراس تلف التجمع، فحوصات الامتياز، وأكثر.

الميزات الرئيسية

  • دقة عالية: القواعد التحفظية تقلل من النتائج الإيجابية الخاطئة
  • قابل للتفسير: كل نتيجة تتضمن مبرراً ودليلاً
  • مدرك للـ Sinks: القواعد تأخذ في الاعتبار القرب من واجهات برمجة التطبيقات الخطيرة
  • نموذج تقييم: ترتيب النتائج حسب قابلية الاستغلال وإمكانية الوصول
  • التكامل مع Karton: يعمل كخدمة موزعة في خطوط أنابيب تحليل البرامج الضارة

لماذا AutoPiff؟

إبرة في كومة قش

root@kitploit:~
ينشر المورد 500 تحديث لبرنامج التشغيل في السنة
├── 490 هي تغييرات ميزات/أداء/تجميلية
├── 8 هي إصلاحات أخطاء بسيطة
└── 2 هي إصلاحات أمان صامتة (بدون CVE مخصصة)

بدون أتمتة: مراجعة 500 يدوياً للعثور على 2
مع AutoPiff:     مراجعة 10 نتائج عالية التقييم للعثور على 2

غالباً ما يتم إصدار تصحيحات الأمان دون مخصصات CVE. إجراء هندسة عكسية يدوية لكل تحديث لبرنامج التشغيل للعثور على الإصلاحات ذات الصلة بالأمان ليس ممكناً. يحل AutoPiff هذه المشكلة من خلال عرض التغييرات المهمة تلقائياً.

ما يؤتمته AutoPiff

الإجمالي: من 4-12 ساعة لكل زوج من برامج التشغيل إلى 2-5 دقائق

ما لا يزال يتطلب خبرة بشرية

root@kitploit:~
┌─────────────────────────────────────────────────────────────────┐
│  تمت أتمتته بواسطة AutoPiff                                     │
│  ├── ابحث عن الإبرة: "هذه الدالة تغيرت بالقرب من ExFreePool"     │
│  ├── صنّف: "يبدو كإصلاح استخدام بعد التحرير"                     │
│  └── رتّب: "الدرجة 5.5 - يستحق التحقيق"                           │
├─────────────────────────────────────────────────────────────────┤
│  لا يزال يدوياً (خبرتك)                                          │
│  ├── تأكيد قابلية الاستغلال: "هل يمكنني بالفعل تشغيل هذا؟"        │
│  ├── تحليل السبب الجذري: "لماذا كانت هذه ثغرة؟"                   │
│  ├── تطوير الاستغلال: "كيف أصل إلى هذا الـ sink؟"                 │
│  └── تقييم التأثير: "ما هو الخطر في العالم الحقيقي؟"              │
└─────────────────────────────────────────────────────────────────┘

لا يحل AutoPiff محل أبحاث الاستغلال. بل يجعلها ممكنة على نطاق واسع من خلال أتمتة مرحلة الاستطلاع.

حالات الاستخدام

1. كشف التصحيحات الصامتة

  • مراقبة برامج التشغيل بحثاً عن إصلاحات أمان يتم إصدارها دون CVEs
  • تلقي تنبيهات عند ظهور فروق دلالية عالية التقييم
  • اكتشاف الثغرات قبل الإفصاح عنها علناً

2. بحث الثغرات من اليوم الأول

  • عند الإعلان عن CVE، تحديد التصحيح الدقيق بسرعة
  • ربط أنماط التصحيح بفئات الثغرات
  • تسريع خطوط تطوير الاستغلال

3. تدقيق أمان المورد

  • تحليل جميع إصدارات عائلة برنامج تشغيل مع مرور الوقت
  • إنشاء جداول زمنية تظهر متى ظهرت الإصلاحات
  • تحديد الأنماط في كيفية معالجة الموردين للثغرات

4. بناء مجموعة بيانات CVE تاريخية

  • معالجة أزواج برامج تشغيل CVE المعروفة لبناء بيانات تدريب
  • التحقق من قواعد الكشف وتحسينها
  • إنشاء قاعدة معرفة لتوقيعات التصحيحات

البنية

يعمل AutoPiff كخط أنابيب Karton مع 8 مراحل متسلسلة بالإضافة إلى فرع فرز DriverAtlas المتوازي. كل مرحلة هي خدمة مصغرة مستقلة تتواصل عبر Redis/RabbitMQ.

root@kitploit:~
graph LR
    sources["WinBIndex<br/>VirusTotal"]:::src --> s0["Stage 0<br/>Monitor"]
    s0 --> s14["Stages 1-4<br/>Patch Differ"]
    s0 --> triage["DriverAtlas<br/>Triage"]:::triage
    s14 --> s5["Stage 5<br/>Reachability"]
    s5 --> s6["Stage 6<br/>Ranking"]
    s6 --> s7["Stage 7<br/>Report"]
    s6 --> s8["Stage 8<br/>Alerter"]
    triage --> alerts["MWDB Tags<br/>+ Alerts"]:::triage

    classDef src fill:#1a1a2e,stroke:#e94560,color:#eee
    classDef triage fill:#1a1a2e,stroke:#e9a345,color:#eee
    classDef default fill:#16213e,stroke:#0f3460,color:#eee

القواعد الدلالية

يتضمن AutoPiff 58 قاعدة عبر 22 فئة. راجع Docs/semantic_rules.md للمواصفات الكاملة و Docs/SEMANTIC_RULES_REFERENCE.md للمرجع الفني.

مجموعات الـ Sinks

يتتبع محرك القواعد أكثر من 50 رمز واجهة برمجة تطبيقات خطير عبر 8 مجموعات sinks:

  • memory_copy: RtlCopyMemory, memcpy, memmove
  • pool_alloc: ExAllocatePool, ExAllocatePoolWithTag
  • pool_free: ExFreePool, ExFreePoolWithTag
  • user_probe: ProbeForRead, ProbeForWrite
  • io_sanitization: RtlULongAdd, RtlSizeTMult
  • exceptions: __try, __except
  • string_copy: strcpy, wcsncpy
  • refcounting: InterlockedIncrement/Decrement

نموذج التقييم

يتم تسجيل النتائج باستخدام نموذج قابل للتكوين (rules/scoring.yaml):

root@kitploit:~
final_score = semantic_score + reachability_bonus + sink_bonus - penalties

مكونات الدرجة:

  • الدرجة الدلالية: وزن القاعدة × الثقة × مضاعف الفئة
  • مكافأة قابلية الوصول: IOCTL (+4.0)، IRP (+2.5)، PnP (+2.0)، داخلي (+0.5)
  • مكافأة الـ Sink: memory_copy (+1.5)، user_probe (+1.5)، pool_alloc (+1.2)
  • العقوبات: جودة مطابقة منخفضة، خطر ضوضاء عالي

حواجز:

  • يتم إسقاط النتائج ذات الثقة < 0.45
  • ثقة المطابقة < 0.40 تحد الدرجة القصوى إلى 3.0

التثبيت

كخدمة Karton (موصى به)

root@kitploit:~
git clone https://github.com/splintersfury/AutoPiff.git
cd AutoPiff
docker compose up -d

لمجموعة الإنتاج الكاملة مع MWDB ولوحات المعلومات والمراقبة، راجع driver_analyzer.

مكتبة مستقلة

root@kitploit:~
pip install pyyaml

from services.karton_patch_differ.rule_engine import SemanticRuleEngine

engine = SemanticRuleEngine('rules/semantic_rules.yaml', 'rules/sinks.yaml')
hits = engine.evaluate(func_name, old_code, new_code, diff_lines)

الإعداد

متغيرات البيئة

تخصيص القواعد

حرر rules/semantic_rules.yaml لإضافة أو تعديل القواعد:

root@kitploit:~
rules:
  - rule_id: my_custom_rule
    category: bounds_check
    confidence: 0.85
    required_signals:
      - sink_group: memory_copy
      - change_type: guard_added
      - guard_kind: length_check
    plain_english_summary: Added length validation before memory copy.

تنسيق المخرجات

ينتج AutoPiff تقارير بصيغة JSON مرفقة بعينات MWDB:

root@kitploit:~
{
  "pairing": {
    "driver_new": {"sha256": "...", "version": "2.0.9.0"},
    "driver_old": {"sha256": "...", "version": "2.0.8.0"},
    "decision": "accept",
    "confidence": 0.95
  },
  "semantic_deltas": {
    "deltas": [
      {
        "function": "HandleIoctl",
        "rule_id": "null_after_free_added",
        "category": "lifetime_fix",
        "confidence": 0.88,
        "sinks": ["pool_free"],
        "final_score": 5.5,
        "why_matters": "Pointer is now set to NULL after freeing memory."
      }
    ],
    "summary": {
      "total_deltas": 1,
      "top_score": 5.5,
      "match_rate": 100.0
    }
  }
}

التوثيق

هيكل المشروع

root@kitploit:~
AutoPiff/
├── Docs/                          # مستندات التصميم والمواصفات
├── ghidra/scripts/                # نصوص Ghidra بدون واجهة
│   └── autopiff_reachability.py   # BFS لقابلية الوصول + تصدير فك التجميع
├── rules/
│   ├── semantic_rules.yaml        # 58 قاعدة كشف
│   ├── sinks.yaml                 # أكثر من 50 رمز واجهة برمجة تطبيقات خطير
│   └── scoring.yaml               # تكوين نموذج التقييم
├── schemas/                       # مخططات JSON لكل مرحلة
├── services/
│   ├── karton-patch-differ/       # المراحل 1-4: المقارنة + التحليل الدلالي
│   ├── karton-reachability/       # المرحلة 5: رسم بياني الاستدعاءات + فك التجميع
│   ├── karton-ranking/            # المرحلة 6: التسجيل
│   ├── karton-report/             # المرحلة 7: إنشاء التقرير
│   ├── karton-driver-triage/      # فرز سطح هجوم DriverAtlas
│   ├── autopiff-alerter/          # المرحلة 8: تنبيهات Telegram
│   ├── driver-monitor/            # المرحلة 0: استطلاع الإصدارات
│   └── dashboard/                 # واجهة ويب
├── tests/unit/                    # 137 اختبار وحدة
├── docker-compose.yml
└── README.md

التكامل مع driver_analyzer

صمم AutoPiff للعمل مع driver_analyzer، الذي يوفر البنية التحتية الكاملة للإنتاج (MWDB, Karton, MinIO, لوحات المعلومات). يقوم ملف compose الخاص بـ driver_analyzer ببناء خدمات AutoPiff مباشرة:

root@kitploit:~
# In driver_analyzer/docker-compose.yml
karton-driver-patch-differ:
  build:
    context: ../AutoPiff
    dockerfile: services/karton-patch-differ/Dockerfile
  volumes:
    - ../AutoPiff/rules:/app/rules:ro

راجع README driver_analyzer لتعليمات الإعداد.

الترخيص

رخصة MIT - راجع LICENSE للتفاصيل.

الشكر والتقدير

  • Karton - إطار عمل معالجة البرامج الضارة الموزعة
  • MWDB Core - مستودع البرامج الضارة
  • Ghidra - إطار عمل هندسة عكسية من وكالة الأمن القومي (NSA)
تنزيل الأداة
المرحلةالجهد اليدويمع AutoPiffالوقت الموفر
إقران الإصدارات5-15 دقيقة/برنامج تشغيلتلقائي~100%
فك التجميع2-10 دقائق/ملف ثنائيمجمّع، متوازي~95%
مطابقة الدوال30-60 دقيقة/زوجفوري~100%
تحديد التغييرات الأمنية2-8 ساعات/زوجثوانٍ~99%
الفرز والترتيب الأولي1-2 ساعةفوري~100%
إنشاء التقرير30-60 دقيقةفوري~100%
المرحلةالخدمةما تفعله
0driver-monitorيسحب WinBIndex و VirusTotal بحثاً عن إصدارات جديدة من برامج التشغيل، ويرفعها إلى MWDB
1-4karton-patch-differإقران الإصدارات، فك التجميع بواسطة Ghidra، مطابقة الدوال، تقييم القواعد الدلالية
5karton-reachabilityBFS لرسم بياني لاستدعاءات Ghidra من نقاط دخول IOCTL/IRP إلى الدوال المتغيرة، تصدير فك التجميع الكامل
6karton-rankingيسجل النتائج باستخدام قابلية الوصول، وشدة الدلالة، وسطح الهجوم
7karton-reportيُنشئ تقارير منظمة بصيغة Markdown، ويرفعها إلى MWDB
8autopiff-alerterيُرسل تنبيهات Telegram للنتائج ذات الدرجة >= 8.0
—autopiff-driver-triageتسجيل درجات سطح هجوم DriverAtlas (بالتوازي مع 1-4)، ويوسم عينات MWDB، ويرسل تنبيهات Telegram
الفئةمثال الكشف
bounds_checkإضافة فحص الطول قبل memcpy
lifetime_fixتعيين null بعد ExFreePool
user_boundary_checkإضافة ProbeForRead/ProbeForWrite
int_overflowاستخدام دوال رياضية آمنة
state_hardeningعمليات العد المرجعي المتشابك
ioctl_input_validationفحوصات حجم/نوع جديدة في معالجات التوزيع
pool_type_hardeningالترحيل إلى NonPagedPoolNx
privilege_checkإضافة SeSinglePrivilegeCheck
المتغيرالوصفالافتراضي
MWDB_API_URLنقطة نهاية MWDB Core APIhttp://mwdb-core:8080/api/
MWDB_API_KEYمفتاح MWDB API للرفع(مطلوب)
KARTON_REDIS_HOSTمضيف Redis لـ Kartonkarton-redis
AUTOPIFF_GHIDRA_TIMEOUTمهلة فك التجميع بواسطة Ghidra (ثانية)900
VT_API_KEYمفتاح VirusTotal API لمراقبة برامج التشغيل(اختياري)
TELEGRAM_BOT_TOKENرمز بوت Telegram للتنبيهات(اختياري)
TELEGRAM_CHAT_IDمعرف محادثة Telegram للتنبيهات(اختياري)
AUTOPIFF_SCORE_THRESHOLDالحد الأدنى للدرجة لتنبيهات Telegram8.0
DRIVERATLAS_SCORE_THRESHOLDالحد الأدنى لدرجة سطح الهجوم لتنبيهات الفرز8.0
المستندالوصف
Docs/semantic_rules.mdمواصفات القاعدة الدلالية: كيفية تنظيم القواعد وما تكتشفه كل فئة
Docs/SEMANTIC_RULES_REFERENCE.mdالمرجع الفني لمحرك القواعد، منطق التقييم، والتسجيل
Docs/reachability.mdمواصفات وسم قابلية الوصول: BFS لرسم بياني الاستدعاءات من نقاط دخول التوزيع
Docs/reporting.mdمواصفات تنسيق مخرجات التقرير
Docs/decisions.mdسجل قرارات التصميم ومبرراتها
rules/semantic_rules.yamlجميع قواعد الكشف الـ 58 (YAML)
rules/sinks.yamlأكثر من 50 رمز واجهة برمجة تطبيقات خطير مجمعة حسب الفئة
rules/scoring.yamlتكوين نموذج التقييم
schemas/مخططات JSON لمخرجات كل مرحلة من خط الأنابيب