تسمح الثغرة الأمنية في eBPF بتجاوز الحماية ضد هجمات Spectre

بالأمس نشرنا هنا على المدونة خبرًا عن آية ، مكتبة لإنشاء وحدات تحكم eBPF في Rust وهو أن الغرض من ذلك هو إنشاء وحدات تحكم أكثر أمانًا أو مشروع Prossimo لتأمين الذاكرة من نواة Linux مع Rust (مشروعان كبيران سيعطيان الكثير للحديث عنه في الأشهر التالية).

وعليه في غضون وقت قصير تم الإبلاغ عن العديد من نقاط الضعف بحيث استفد من الأخطاء الموجودة في eBPF وأنه موضوع لم يتوقف فيه مطورو Kernel عن العمل وربما يكون Rust هو الحل.

سبب لمس هذا الموضوع هو أن في الآونة الأخيرة اندلعت الأخبار التي تم تحديدها ثغرة "أخرى" في Linux kernel (CVE-2021-33624) ل تجاوز الحماية ضد ثغرات فئة Specter ، لأن هذا يسمح باستخدام النظام الفرعي eBPF ليكون قادرًا على تحديد محتوى الذاكرة نتيجة لخلق شروط للتكهنات على تنفيذ عمليات معينة.

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

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

في الأنظمة المتأثرة ، يمكن لبرنامج BPF غير المتميز استغلال هذه الثغرة الأمنية لتسريب محتويات ذاكرة kernel التعسفية (وبالتالي كل الذاكرة المادية) عبر قناة جانبية.

على سبيل المثال عند تحليل عملية "التحميل" ، يفترض المُختبِر أن التعليمات تستخدم سجلاً بعنوان تكون قيمته دائمًا ضمن الحدود المحددة ، لكن المهاجم يمكن أن يخلق الظروف التي بموجبها سيحاول المعالج بشكل مضارب إجراء عملية ما بعنوان لا يفي بشروط التحقق.

هجوم الشبح يتطلب وجود نص محدد في الكود المميز، مما يؤدي إلى تنفيذ مضاربات للتعليمات. من خلال معالجة برامج BPF التي تم تمريرها للتنفيذ ، من الممكن إنشاء مثل هذه التعليمات في eBPF وتصفية محتويات ذاكرة kernel والمناطق العشوائية للذاكرة الفعلية من خلال القنوات الجانبية.

وبالإضافة إلى ذلك، يمكنك وضع علامة على ملاحظة حول تأثير الأداء من الأصول للحماية من فئة شبح من نقاط الضعف.

هذه المذكرة تلخص النتائج أداة تحسين مصحح الأخطاء rr (Record and Replay) ، التي تم إنشاؤها مرة واحدة بواسطة Mozilla لتصحيح الأخطاء التي يصعب تكرارها في Firefox. أدى التخزين المؤقت لاستدعاءات النظام المستخدمة للتحقق من وجود الدلائل إلى تقليل عملية "مصادر rr" للمشروع التجريبي من 3 دقائق و 19 ثانية إلى 36 ثانية.

قرر مؤلف التحسين التحقق كم سيتغير الأداء بعد تعطيل حماية Specter. بعد تمهيد النظام باستخدام المعلمة "mitiation = off" ، كان وقت تنفيذ "مصادر rr" بدون تحسين هو دقيقتان و 2 ثوانٍ (أسرع 5 مرة) ومع التحسين 1.6 ثانية (33٪ أسرع).

ومن المثير للاهتمام، لا يؤدي تعطيل حماية Spectre إلى تقليل وقت التنفيذ فقط من الكود على مستوى النواة في 1.4 مرة (من 2 دقيقة 9 ثوان إلى دقيقة واحدة و 1 ثانية) ، ولكنه أيضًا قلل من وقت التنفيذ في مساحة المستخدم إلى النصف (من دقيقة واحدة و 1 ثوانٍ إلى 9 ثانية) ، ويُفترض أن ذلك يرجع إلى انخفاض كفاءة ذاكرة التخزين المؤقت لوحدة المعالجة المركزية وإعادة تعيين TLB عند تمكين حماية Specter.

ظهرت المشكلة منذ إصدار kernel 4.15 و تم إصلاحه في شكل بقع، والتي لا تزال لا تصل إلى جميع التوزيعات في الوقت الحالي ، لذلك يوصى بأن يقوم المستخدمون بإجراء التحديثات ذات الصلة هذه الأيام بمجرد تلقيهم الإخطارات.

Si تريد معرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.