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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
leaky-vessels-dynamic-detector — كاشف وقت التشغيل القائم على eBPF لثغرات الهروب من الحاويات في runc وDocker، حيث يراقب استدعاءات النظام واستدعاءات خادم Docker لاكتشاف استغلال CVE-2024-21626 وCVE-2024-23651 وCVE-2024-23652 وCVE-2024-23653 أثناء عمليات البناء ووقت التشغيل. | Kitploit
أدوات/GitHubGitHub/snyk/leaky-vessels-dynamic-detector
أدوات دفاعيةأمن الحاوياتالتحليل الديناميكي (عزل)تحليل الثغرات الأمنيةأمن السحابةكشف التسللArchived
GitHubsnyk/leaky-vessels-dynamic-detector

leaky-vessels-dynamic-detector

الأكثر شعبية

عرض الكل →

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

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

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

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

كاشف وقت التشغيل القائم على eBPF لثغرات الهروب من الحاويات في runc وDocker، حيث يراقب استدعاءات النظام واستدعاءات خادم Docker لاكتشاف استغلال CVE-2024-21626 وCVE-2024-23651 وCVE-2024-23652 وCVE-2024-23653 أثناء عمليات البناء ووقت التشغيل.

عرض المستودع
10589منذ سنة واحدةلم تتم المراجعة بعد

تحذير

تمت أرشفة هذا المستودع الآن.

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

كاشف Leaky Vessels الديناميكي

snyk-oss-category

في هذا المستودع ستجد تنفيذاً مرجعياً لكشف وقت التشغيل القائم على eBPF لثغرات runc و Docker CVE-2024-21626 و CVE-2024-23651 و CVE-2024-23652 و CVE-2024-23653. يقوم بالربط مع استدعاءات نظام Linux (مثل chdir و mount) واستدعاءات دوال خادم Docker ويربطها بعمليات بناء Docker وعمليات الحاويات لتحديد استغلال هذه الثغرات. للحصول على نهج قائم على التحليل الثابت، يرجى الاطلاع على هذا.

runc process.cwd & تسريب fds للخروج من الحاوية [CVE-2024-21626]

CVE-2024-21626 هي ثغرة في وقت تشغيل الحاويات runc تسمح للمهاجم بالخروج من عزل الحاوية وتحقيق RCE كامل بصلاحيات الجذر عبر صورة مصممة بعناية تستغل مشكلة في معالجة تعليمة WORKDIR. نظراً لوجود حالة "سباق" بين الوقت الذي يتم فيه فتح وإغلاق بعض واصفات الملفات للمضيف، يمكن للمهاجم إنشاء Dockerfile مع التعليمة التالية WORKDIR /proc/self/fd/[ID] (حيث ID هو واصف ملف يعتمد على النظام) والتي ستشير إلى نظام ملفات الجهاز المضيف الأساسي. يمكن استغلال ذلك عند تشغيل:

  1. docker build - في حالتين:
    • عندما يحتوي Dockerfile الذي يتم بناؤه على التعليمة التي تطلق الاستغلال.
    • عندما يشير Dockerfile الذي يتم بناؤه إلى صورة أساسية عبر تعليمة FROM تحتوي على أمر ONBUILD يطلق الاستغلال مثل ONBUILD WORKDIR /proc/self/fd/[ID]. تعليمة ONBUILD تحقن الأمر ليس في الصورة التي تحتويه بل في الصورة التي تستخدمه كصورة أساسية. هذا يعني أنه إذا تم اختراق صورة أساسية أو كانت خبيثة عمداً أي مستضافة على Dockerhub أو سجلات حاويات عامة أخرى، فإن الاستغلال ممكن حتى لو لم يتغير شيء في الصورة التي يبنيها أمر docker build فعلياً.
  2. docker run

وبالتالي، يمكن لهذه الثغرة أن تعرض أنظمة البناء وبيئات الإنتاج للخطر.

Buildkit Mount Cache Race: سباق حالة وقت البناء للخروج من الحاوية [CVE-2024-23651]

CVE-2024-23651 هي ثغرة في Docker حيث يستخدم أمر RUN علامة --mount=cache. توجد ثغرة من نوع time-of-check/time-of-use (TOCTOU) بين التحقق من وجود دليل source على مضيف خادم Docker والاستدعاء الفعلي لاستدعاء النظام mount. يمكن للمهاجم تصميم Dockerfile يزرع رابطاً رمزياً بين هذين الاستدعاءين لإحداث ربط تحميل تعسفي يؤدي إلى RCE كامل بصلاحيات الجذر على المضيف. تؤثر هذه الثغرة فقط على أمر docker build.

Buildkit GRPC SecurityMode فحص الامتيازات [CVE-2024-23653]

CVE-2024-23653 هي ثغرة في Docker تحدث عند استخدام مولّد Buildkit LLB مخصص مع توجيه # syntax. يمكن للمولّد استخدام استدعاءات GRPC الخاصة بـ Client.NewContainer و Container.Start لتنفيذ حاوية جديدة أثناء البناء. لا يتم فحص وسيط StartRequest.SecurityMode بشكل مناسب مقابل توقعات الامتيازات لخادم Docker أو استدعاء docker build، مما يسمح لمستدعي GRPC بإنشاء حاوية مميزة أثناء البناء. يمكن بعد ذلك الهروب من هذه الحاوية المميزة الجديدة لتحقيق RCE كامل بصلاحيات الجذر على مضيف البناء. تؤثر هذه الثغرة فقط على أمر docker build.

Buildkit تفكيك الحاوية وقت البناء حذف تعسفي [CVE-2024-23652]

CVE-2024-23652 هي ثغرة حذف تعسفي في Docker. عند استخدام RUN --mount في Dockerfile، إذا لم يكن هدف التحميل موجوداً فسيتم إنشاؤه لتلك البيئة. عند اكتمال التنفيذ سيتم تنظيف هذا الدليل الذي تم إنشاؤه. إذا غيّر الأمر المنفذ المسار المستخدم للتحميل إلى رابط رمزي، فإن إجراء التنظيف سيتجاوز هذا الرابط الرمزي وربما ينظف أدلة تعسفية في نظام ملفات جذر المضيف. تؤثر هذه الثغرة فقط على أمر docker build.

التثبيت والاستخدام

كشف eBPF وقت البناء

ينطبق كشف وقت البناء على جميع الثغرات الأربع.

  1. قم بتجميع ثنائي الكاشف: GOOS=linux GOARCH={{amd64/arm64}} go build.
  2. قم بتشغيل الثنائي المترجم في الخلفية باستخدام sudo (كما هو مطلوب بواسطة eBPF) في بيئة البناء الخاصة بك (أي sudo ebpf-detector &).
  3. إذا تم اكتشاف استغلال لإحدى الثغرات، سترى Leaky vessels vulnerability detected مطبوعة على STDOUT، إلى جانب CVE المعنية واسم الثغرة والأدلة الجنائية الإضافية.

كشف eBPF وقت التشغيل في Kubernetes

ينطبق كشف وقت التشغيل على ثغرة WORKDIR فقط (CVE-2024-21626).

  1. قم ببناء صورة حاوية الكاشف باستخدام Dockerfile المقدم وادفعها إلى سجل صور.
  2. املأ قيمة image في detector.yaml (المعلّمة بـ TODO).
  3. قم بتشغيل الكاشف كـ DaemonSet في مجموعة Kubernetes الخاصة بك عن طريق تشغيل kubectl apply -f detector.yml.
  4. إذا تم اكتشاف استغلال ثغرة WORKDIR، سترى Leaky Vessels vulnerability detected مطبوعة في سجلات pods الخاصة بـ DaemonSet.

الاختبار

يجب تشغيل اختبارات الوحدة في sudo، لأنها تعتمد على eBPF: sudo go test ebpf-detector/....

القيود

  • يتطلب وصول الجذر / تشغيل الحاويات في الوضع المميز (مطلوب بواسطة eBPF).
  • يحدث استغلال WORKDIR وقت التشغيل (CVE-2024-21626) أثناء تهيئة الحاوية، لذا لن يتم اكتشافه على الحاويات قيد التشغيل. يفترض الكشف أيضاً أن وقت تشغيل الحاوية هو containerd.
  • اكتشافات Buildkit Mount Cache Race (CVE-2024-23651) و Buildkit Build-time Container Teardown Arbitrary Delete (CVE-2024-23652) قائمة على التوقيت وقد تحتوي على نتائج سلبية خاطئة بسبب حالات السباق.
  • تم اختباره في البيئات التالية:
    • Ubuntu 20.04/22.04 (AMD64)
    • GKE (Ubuntu و Alpine Linux، AMD64)
    • EKS (Ubuntu و Alpine Linux، AMD64) - مدعوم بإصدار EKS >= 1.25
    • Ubuntu 22.04 (ARM64)

المشكلات

للحصول على قائمة محدثة بالأخطاء والمشكلات راجع مشكلات المشروع.

المساهمة

المساهمات مرحب بها. راجع CONTRIBUTING.md للتفاصيل.

الترخيص

كاشف Leaky Vessels الديناميكي مرخص بموجب ترخيص Apache-2.0. راجع LICENSE لمزيد من المعلومات.

تنزيل الأداة