Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
kernel-c-to-rust-spike — تحصين محللات لغة C في النواة عبر إعادة كتابتها بلغة Rust + الاختبار العشوائي التفاضلي + التحقق الرسمي. الهدف الأول: UVC (CVE-2024-53104). | Kitploit
أدوات/GitHubGitHub/runtimeverification/kernel-c-to-rust-spike
التحليل الثابتتحليل الثغرات الأمنيةالهندسة العكسيةالاختبار العشوائيتحليل الملفات الثنائيةالأوراق والأبحاثالتعلم والتعليم
GitHubruntimeverification/kernel-c-to-rust-spike

الأكثر شعبية

عرض الكل →

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

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

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

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

kernel-c-to-rust-spike

تحصين محللات لغة C في النواة عبر إعادة كتابتها بلغة Rust + الاختبار العشوائي التفاضلي + التحقق الرسمي. الهدف الأول: UVC (CVE-2024-53104).

عرض المستودع
285منذ 3 أشهرلم تتم المراجعة بعد
مشاركة

تجربة تقوية نواة Linux بالانتقال من C إلى Rust: محلل أوصاف UVC

هل يمكن تقوية محلل C أمني حرج في نواة Linux عبر إعادة كتابته بلغة Rust، مع إثبات تكافؤ إعادة الكتابة مع الأصل ثم التحقق منها رسميًا؟ تُجري هذه التجربة الحلقة الكاملة على هدف واحد: محلل أوصاف فيديو UVC (uvc_parse_format/uvc_parse_frame من drivers/media/usb/uvc/، الإصدار v7.2-rc2)، وقد اختير لأنه حمل ثغرتين مستقلتين من فئة أمان الذاكرة (CVE) تفصل بينهما ستة عشر عامًا (CVE-2008-3496، وCVE-2024-53104، والأخيرة مدرجة في كتالوج CISA KEV).

الحلقة، وما أثبته كل خطوة

  1. استخراج ورقة C (c/). نُسخت منطق التحليل حرفيًا من النواة؛ ولم يُستبدل سوى البيئة (// SPIKE-STUB). يُترجم إلى مكتبة بواجهة C-ABI. تتضمن الورقة المستخرجة تمريرة العدّ والتخصيص المُقاس، لذا فإن فئة خطأ CVE-2024-53104 (كتابة التحليل بما يتجاوز ما خصصه العدّ) قابلة للوصول، لا مجرّدة.

  2. إعادة الكتابة بلغة Rust (rust/). نفس ورقة التحليل بلغة Rust آمنة، بنفس واجهة C-ABI وبنية النتيجة. كل انحراف عن C موسوم بـ // DEVIATION وموثّق.

  3. الاختبار التبايني التلقائي (fuzzing) (fuzz/). أداة LibAFL على rustc المستقر تشغّل كلا التطبيقين من مدخل واحد وتقارن المخرجات حقلًا بحقل. النتيجة: بعد إصلاح عدم تطابق واحد في نقل الكود عند موضع تجاوز إشارة يعتمد على المترجم، صفر اختلافات على 54,019 تنفيذًا بتغطية حواف 93%. على كود v7.2-rc2 الأمين لا يمكن الوصول إلى أي وصول خارج الحدود (كلتا الثغرتين مُرقّعتان). يعيد عنصر تحكم سلبي اختياري (--features vuln، منعكس في كلتا اللغتين) إدخال عدم التطابق الخاص بـ CVE-2024-53104: على المدخل نفسه يقوم C بكتابة خارج حدود الكومة (ASan)، بينما تتعطل Rust بأمان. التفاصيل: fuzz/RESULTS.md.

  4. التحقق الرسمي (verify/). تُستخرج ورقة Rust الأمينة عبر Charon وAeneas إلى Lean 4 دون أي sorry في الكود المولّد، ودون عائق union (بخلاف تجربة Binder). مبرهنتان، في verify/VERIFY-REPORT.md وROADMAP.md:

    • السلامة الكلية على كل المدخلات (كل نتيجة هي ok / fail مُتحكَّم به / عدم إنهاء، وليست أبدًا نتيجة سلوك غير معرّف): مُبرهَنة، خالية من sorry. وهذا يجعل خاصية أمان الذاكرة التي يفتقر إليها C صريحة كعبارة مُتحقَّق منها.
    • عدم التعطل على مدخلات سليمة التكوين (التعطل يحدث فقط على مدخلات مشوّهة، حيث يكون هو السلوك الآمن المقصود بديلًا عن كتابة C خارج الحدود): قيد التقدم. ثُبتت الثابتة بين العدّ والكتابة — التي يُعد انتهاكها هو CVE-2024-53104 — خالية من sorry، إلى جانب مبدأين قابلين لإعادة الاستخدام لاستدلال الحلقات في Aeneas وخلوّ من القسمة للحلقات الخمس المنتهية بنيويًا. ويُختزل الباقي إلى نواة صحة وظيفية مسماة للمشي الموضعي (أربع مبرهنات مساعدة معلنة)؛ انظر ROADMAP.md.

الحالة

الحلقة مُبرهَنة من البداية إلى النهاية على هدف واحد. أُثبت تكافؤ إعادة الكتابة مع C عبر الاختبار التبايني التلقائي؛ وأصبح فرق أمان الذاكرة ملموسًا بفضل عنصر التحكم السلبي؛ وتُستخرج Rust بنظافة إلى Lean وتُفحص خاصية السلامة الكلية آليًا. أما مبرهنة عدم التعطل، فقد ثُبتت ثابتة العدّ (جوهر CVE-2024-53104) خالية من sorry، واختُزل العمل المتبقي إلى نواة صحة وظيفية مسماة، معلنة لكن غير مُبرهَنة بعد. حالة الإثبات الكاملة والمبرهنات المساعدة المفتوحة في ROADMAP.md.

البنية

  • c/ — ورقة C المستخرجة وبيئاتها البديلة
  • rust/ — إعادة الكتابة بلغة Rust الآمنة
  • fuzz/ — أداة LibAFL للاختبار التبايني التلقائي، والنتائج، وعنصر التحكم بفئة CVE
  • verify/ — استخراج Charon/Aeneas/Lean والمبرهنات
  • ROADMAP.md — حالة الإثبات والمبرهنات المساعدة المفتوحة المتبقية
  • OPEN_CHALLENGES.md — مهام ملموسة يمكن للمساهم أن يلتقطها
  • */README.md، fuzz/RESULTS.md، verify/VERIFY-REPORT.md — تفاصيل كل مرحلة

البيئة

نواة v7.2-rc2 (مرجع للقراءة فقط). Rust المستقر 1.94.0. LibAFL 0.15. Charon 909ff09a (v0.1.220، --preset=aeneas)، Aeneas c2015b86، Lean/mathlib v4.31.0.

تنزيل الأداة