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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ssbd-tools — أدوات لاختبار إجراء التخفيف المطبق في نواة لينكس لثغرة CVE-2018-3639 (المعروفة أيضًا باسم Variant 4) باستخدام ميزة تعطيل تجاوز التخزين التخميني (SSBD) لمعالجات x86 | Kitploit
أدوات/GitHubGitHub/tyhicks/ssbd-tools
تحليل الثغرات الأمنيةالاستغلالأمن الأجهزة
GitHubtyhicks/ssbd-tools

ssbd-tools

أدوات لاختبار إجراء التخفيف المطبق في نواة لينكس لثغرة CVE-2018-3639 (المعروفة أيضًا باسم Variant 4) باستخدام ميزة تعطيل تجاوز التخزين التخميني (SSBD) لمعالجات x86

عرض المستودع
9216منذ 8 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

أدوات لاختبار تعطيل تجاوز المتجر التخميني

مشروع ssbd-tools هو مجموعة من البرامج التي تستخدم وظيفة تعطيل تجاوز المتجر التخميني (SSBD) المتوفرة في معالجات x86. يعد SSBD تخفيفًا يعتمد على المعالج لهجوم تجاوز المتجر التخميني، والذي يُشار إليه باسم البديل 4 وتم تخصيص CVE-2018-3639 له. قدمت نواة لينكس ضوابط لكل عملية لاستخدام SSBD، ويمكن استخدام هذه الأدوات للاستفادة من تلك الضوابط والمساعدة في التحقق من صحتها.

ضوابط SSBD لكل عملية

توفر نواة لينكس عدة أوضاع تشغيل مختلفة، يمكن تحديدها وقت الإقلاع عبر معامل النواة spec_store_bypass_disable، لتفعيل SSBD على أنظمة x86. تصفها توثيق معاملات النواة جيدًا. إليك مقتطف من هذا المستند يصف الخيارات:

  on      - Unconditionally disable Speculative Store Bypass
  off     - Unconditionally enable Speculative Store Bypass
  auto    - Kernel detects whether the CPU model contains an
            implementation of Speculative Store Bypass and
            picks the most appropriate mitigation. If the
            CPU is not vulnerable, "off" is selected. If the
            CPU is vulnerable the default mitigation is
            architecture and Kconfig dependent. See below.
  prctl   - Control Speculative Store Bypass per thread
            via prctl. Speculative Store Bypass is enabled
            for a process by default. The state of the control
            is inherited on fork.
  seccomp - Same as "prctl" above, but all seccomp threads
            will disable SSB unless they explicitly opt out.

  Not specifying this option is equivalent to
  spec_store_bypass_disable=auto.

  Default mitigations:
  X86:    If CONFIG_SECCOMP=y "seccomp", otherwise "prctl"

تفاصيل خاصة بوحدة المعالجة المركزية

يتم تمكين/تعطيل وظيفة SSBD عن طريق ضبط بت واحد في سجل خاص بالطراز (MSR) في المعالج. يختلف رقم MSR الدقيق وموقع البت داخل MSR باختلاف بائعي وحدات المعالجة المركزية، وباختلاف عائلات المعالجات من البائع نفسه، وأيضًا اعتمادًا على ما إذا كانت النواة تعمل تحت مشرف افتراضي (hypervisor) أم لا. تتبع هذه الأدوات الإرشادات المنشورة من قبل Intel و AMD لتحديد مكان بت SSBD في بيئة التنفيذ الحالية.

لماذا قد لا يكون SSBD متاحًا

قد لا تتوفر بعض الأنظمة على دعم SSBD. قد يعود ذلك إلى عدة أسباب:

  • يتطلب معالجك برمجيات دقيقة محدثة. هذا هو الحال بالنسبة لمعالجات Intel. قد تتمكن من الوصول إلى البرمجيات الدقيقة المحدثة عبر تحديث البرامج الثابتة أو عن طريق تثبيت حزم البرمجيات الدقيقة لتوزيعة لينكس الخاصة بك (intel-microcode و amd64-microcode لتوزيعتي Debian/Ubuntu). لا تتطلب معالجات AMD من العائلات 15h و16h و17h برمجيات دقيقة محدثة.
  • لم يتم تحديث نواتك لدعم SSBD. أصدر العديد من بائعي أنظمة لينكس تحديثات، لذا يرجى البحث عن التفاصيل المتعلقة بالبائع الخاص بك في صفحة CERT الخاصة بـ البديل 4.
  • كنت تستخدم جهازًا افتراضيًا ولم يتم تحديث المشرف الافتراضي لديك لدعم SSBD. إذا كان لديك تحكم في بيئة المضيف، فانظر إلى صفحة CERT أعلاه للحصول على معلومات حول تحديث برنامج المشرف الافتراضي ذي الصلة.

ملخص البرامج في ssbd-tools

ssbd-exec

يستخدم برنامج ssbd-exec ضوابط SSBD لكل عملية قبل تنفيذ برنامج آخر. يمكنه استخدام استدعاء PR_SET_SPECULATION_CTRL من نوع prctl للسماح بالتخمين (-p enable لاستخدام PR_SPEC_ENABLE)، أو منع التخمين عبر SSBD (-p disable لاستخدام PR_SPEC_DISABLE)، أو منع التخمين بشكل دائم في جميع العمليات الفرعية المستقبلية عبر SSBD (-p force-disable لاستخدام PR_SPEC_FORCE_DISABLE).

يمكنه أيضًا تحميل مرشح seccomp متساهل (-s empty) والذي، افتراضيًا على x86، يُدخل العملية في تخفيف SSBD. هناك أيضًا خيار (-s spec-allow) لتحميل مرشح متساهل لا يُدخل العملية في SSBD.

استخدام ssbd-exec

  • اعرض /proc/PID/status لإظهار أن المهام لا تستخدم SSBD افتراضيًا
 $ ./ssbd-exec -- grep Spec /proc/self/status
 Speculation_Store_Bypass:	thread vulnerable
  • اعرض /proc/PID/status عند استخدام SSBD عبر prctl
 $ ./ssbd-exec -p disable -- grep -e Spec -e Seccomp /proc/self/status
 Seccomp:        0
 Speculation_Store_Bypass:       thread mitigated
  • اعرض /proc/PID/status عند التشغيل مع مرشح seccomp متساهل يُدخل العملية في SSBD
 $ ./ssbd-exec -s empty -- grep -e Spec -e Seccomp /proc/self/status
 Seccomp:        2
 Speculation_Store_Bypass:       thread force mitigated

ssbd-verify

يتحقق برنامج ssbd-verify من أن بت SSBD الفعلي، في MSR وإزاحة البت الخاصة بمعالجك، له القيمة المتوقعة. 0 تعني أن SSBD غير مستخدم بينما 1 تعني أنه قيد الاستخدام.

يمكن أيضًا استخدام البرنامج للتحقق من أن قيمة PR_GET_SPECULATION_CTRL لنوع prctl في المهمة مضبوطة على السماح بالتخمين (-p enable للتحقق من PR_SPEC_ENABLE)، أو منع التخمين عبر SSBD (-p disable للتحقق من PR_SPEC_DISABLE)، أو منع التخمين بشكل دائم في جميع العمليات الفرعية المستقبلية عبر SSBD (-p force-disable للتحقق من PR_SPEC_FORCE_DISABLE).

يمكن تكوين البرنامج للتحقق بشكل متكرر من قيمة بت SSBD باستخدام خيار -t SECONDS. إذا كانت قيمة SECONDS هي 0، يستمر البرنامج في التكرار بلا نهاية أثناء التحقق من بت SSBD. أما إذا كانت قيمة SECONDS غير صفرية، فسيقوم البرنامج بالتحقق من بت SSBD للمدة الزمنية المحددة.

يتطلب هذا البرنامج تحميل وحدة النواة msr وأن يكون المستخدم يمتلك صلاحيات الجذر لقراءة بت SSBD من MSR المناسب.

استخدام ssbd-verify

  • تحقق من أن SSBD غير مضبوط افتراضيًا
 $ sudo ./ssbd-verify 0
 $ sudo ./ssbd-verify 1
 FAIL: SSBD bit verification failed (expected 1, got 0)
  • تحقق من أن SSBD مضبوط عند استخدام prctl لتعطيل التخمين
 $ ./ssbd-exec -p disable -- sudo ./ssbd-verify 1
  • تحقق من أن SSBD مضبوط عند تحميل مرشح seccomp
 $ sudo ./ssbd-exec -s empty -- ./ssbd-verify 1

ملاحظة: يتطلب الأمر أعلاه استخدام sudo مع ssbd-exec لأن NO_NEW_PRIVS يُستخدم قبل تحميل مرشح seccomp. لن يتمكن sudo من رفع الصلاحيات إذا تم استخدامه بعد ضبط NO_NEW_PRIVS.

ssbd-toggle

يقوم برنامج ssbd-toggle ببساطة بتبديل بت SSBD بين التشغيل والإيقاف في حلقة لا نهائية حتى يتم إنهاء البرنامج. يمكن استخدامه مع ssbd-verify لضمان أن عملية ssbd-verify تحصل دائمًا على قيمة بت SSBD المتوقعة عندما تنتقل النواة إلى مهمتها.

يتطلب هذا البرنامج تحميل وحدة النواة msr وأن يكون المستخدم يمتلك صلاحيات الجذر للقراءة من والكتابة إلى MSR المناسب.

استخدام ssbd-toggle

  • بدّل بت SSBD للمعالج 0 حتى تتم مقاطعة العملية
 $ sudo ./ssbd-toggle
 ^C

بناء الأدوات

لبناء الأدوات، شغّل make:

 $ make

اختبر نظامك

لتشغيل بعض الاختبارات الآلية الأساسية للتأكد من أن SSBD يعمل كما هو متوقع على نظامك، شغّل هدف check بصلاحيات الجذر:

 $ sudo make check
 PASS
تنزيل الأداة