SWAPGS ثغرة تنفيذ تخمينية جديدة

SWAPGS- استغلال -2

الكثير اكتشف باحثو Bitdefender ثغرة أمنية جديدة في آلية التنفيذ التخميني للتعليمات في المعالجات الحديثة ، الذي حصل على اسم SWAPGS ، مطابق لاسم تعليمات المعالج المتسبب في حدوث المشكلة.

عالي التأثر يسمح للمهاجم غير المتميز بتحديد محتوى مناطق ذاكرة kernel أو تشغيل أجهزة افتراضية. تم تأكيد المشكلة في معالجات Intel (x86_64) وتؤثر جزئيًا على معالجات AMD التي لا يظهر لها ناقل الهجوم الأساسي.

أساليب مكافحة الثغرات الأمنية Spectre و Meltdown التي تم تنفيذها مسبقًا لا تحمي من هجمات SWAPGS باستخدام معالجات Intel ، ولكن تم بالفعل اقتراح حلول لنظام التشغيل Linux و ChromeOS و Android و Windows.

تنتمي الثغرة الأمنية إلى فئة Spectre v1 ويستند إلى فكرة استرجاع البيانات من ذاكرة التخزين المؤقت للمعالج التي تبقى بعد التنفيذ التخميني للتعليمات.

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

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

حول SWAPGS

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

Linux kernel في GS مخازن per_cpu pointer، والتي تُستخدم للوصول إلى بيانات kernel ، و يشير إلى TLS (التخزين المحلي للخيط) في مساحة المستخدم.

لاستبعاد الاستدعاء المزدوج لتعليمات SWAPGS بعد الوصول المتكرر للنواة من مساحة kernel أو عند تنفيذ التعليمات البرمجية التي لا تتطلب استبدال سجل GS ، يتم إجراء فحص وانتقال شرطي قبل التعليمات.

تسبق آلية تنفيذ المضاربة تنفيذ الكود مع تعليمات SWAPGS ، دون انتظار نتيجة التحقق ، وإذا لم يتم تأكيد الفرع المحدد ، فإنه يتجاهل النتيجة.

لذلك، قد ينشأ موقف عندما يتم اختيار فرع يحدد تنفيذ SWAPGS بشكل تخميني، ولكن أثناء التنفيذ التخميني ، سيتم تغيير قيمة سجل GS من خلال تعليمات SWAPGS وسيتم استخدامها في العمليات التي تعتمد على الذاكرة والتي يتم تخزينها مؤقتًا بواسطة وحدة المعالجة المركزية.

اقترح الباحثون سيناريوهين للهجوم التي تم إعداد نماذج استغلالها.

  • يعتمد السيناريو الأول على الموقف الذي لا يتم فيه تنفيذ تعليمات SWAPGS بشكل تخميني ، على الرغم من استخدامه في التنفيذ الفعلي ، والسيناريو الثاني هو عكس ذلك ، عندما يتم تنفيذ تعليمات SWAPGS بشكل تخميني ، على الرغم من أنه لا ينبغي فعل ذلك.
  • لكل سيناريو ، هناك خياران تشغيليان: يمكن للمهاجم تحديد القيمة في عنوان معين في المنطقة الأساسية ، ويمكن للمهاجم البحث عن قيمة محددة في عناوين عشوائية في النواة.

يتطلب الحل تثبيت تحديث kernel على كل من بيئتي المضيف والضيف ، متبوعًا بإعادة تشغيل النظام. لتعطيل الحماية في Linux ، يمكنك استخدام خيار "nospectre_v1" ، والذي يعطل أيضًا الإجراءات لمنع ثغرة SWAPGS.

الحل متاح كتصحيح لنواة لينكس، والتي تم تضمينها بالفعل في الإصدارات 4.19.65 و 5.2.7 و 4.14.137 و 4.9.188 و 4.4.188 ، بينما بالنسبة لتوزيعات Linux المختلفة ، ستصل الإصلاحات ذات الصلة خلال الفترة من هذا الأسبوع والأسبوع التالي.


محتوى المقال يلتزم بمبادئنا أخلاقيات التحرير. للإبلاغ عن خطأ انقر فوق هنا.

كن أول من يعلق

اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني.

*

*

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