تم إدخال فئة جديدة من الثغرات الأمنية في معالجات Intel

شركة انتل опубликовала معلومات عن جديد فئة الضعف في معالجاتهم - MDS (أخذ عينات من البيانات المعمارية الدقيقة). مثل هجمات Spectre السابقة، يمكن أن تؤدي المشكلات الجديدة إلى تسرب البيانات الخاصة من نظام التشغيل والأجهزة الافتراضية والعمليات الأخرى. يُزعم أن المشكلات تم تحديدها لأول مرة من قبل موظفي Intel وشركائها أثناء التدقيق الداخلي، وبعد ذلك قدم باحثون مستقلون معلومات حول مشكلات مماثلة لشركة Intel. لا تتأثر معالجات AMD وARM بالمشكلة.

بناءً على المشكلات التي حددها باحثون من جامعة غراتس التقنية (النمسا) المتقدمة بعض هجمات القنوات الجانبية العملية:

  • ZombieLoad (PDF) - يسمح لك باستخراج المعلومات السرية من العمليات الأخرى ونظام التشغيل والأجهزة الافتراضية والجيوب المحمية (TEE وبيئة التنفيذ الموثوقة). على سبيل المثال، تم عرض القدرة على تحديد تاريخ فتح الصفحات في متصفح Tor الذي يعمل في جهاز افتراضي آخر، بالإضافة إلى تحديد مفاتيح الوصول وكلمات المرور المستخدمة في التطبيقات؛


  • Rýdl (PDF) - يسمح بتسرب المعلومات بين المناطق المعزولة المختلفة في معالجات Intel، مثل مخازن التعبئة المؤقتة ومخازن التخزين المؤقتة ومنافذ التحميل. يتم عرض أمثلة على الهجمات لتنظيم التسريبات من العمليات الأخرى ونظام التشغيل والأجهزة الافتراضية والجيوب المحمية. على سبيل المثال، يوضح كيفية اكتشاف محتويات تجزئة كلمة المرور الجذرية من /etc/shadow أثناء محاولات المصادقة الدورية (استغرق الهجوم 24 ساعة)؛

    بالإضافة إلى ذلك، يتم عرض مثال على الهجوم باستخدام JavaScript وWebAssembly عند فتح صفحة ضارة في محرك SpiderMonkey (في المتصفحات الحديثة الكاملة، من غير المحتمل حدوث مثل هذا الهجوم بسبب دقة المؤقت المحدودة وإجراءات الحماية من Spectre)؛

  • تداعيات (PDF) - يجعل من الممكن قراءة البيانات المكتوبة مؤخرًا بواسطة نظام التشغيل وتحديد تخطيط ذاكرة نظام التشغيل لتبسيط الهجمات الأخرى؛
  • الشحن من المتجر إلى التسريب - يستغل تحسينات وحدة المعالجة المركزية للعمل مع المخزن المؤقت للتخزين ويمكن استخدامه لتجاوز آلية التوزيع العشوائي لمساحة عنوان kernel (KASLR)، لمراقبة حالة نظام التشغيل، أو المنظمات التسريبات مع الأدوات الذكية القائمة على أساليب Spectre.

مكشوف نقاط الضعف:

  • CVE-2018-12126 - MSBDS (أخذ عينات بيانات المخزن المؤقت للهندسة المعمارية الدقيقة)، استعادة محتويات مخازن التخزين المؤقتة. تم استخدامه في هجوم Fallout. تم تحديد درجة الخطر بـ 6.5 نقطة (CVSS)؛
  • CVE-2018-12127 - MLPDS (أخذ عينات بيانات منفذ التحميل المعماري الصغير)، استرداد محتويات منفذ التحميل. تم استخدامه في هجوم RIDL. كفسس 6.5؛
  • CVE-2018-12130 - MFBDS (أخذ عينات بيانات المخزن المؤقت للتعبئة المعمارية الدقيقة)، استعادة محتويات المخزن المؤقت للتعبئة. يُستخدم في هجمات ZombieLoad وRIDL. كفسس 6.5؛
  • CVE-2019-11091 - MDSUM (الذاكرة غير القابلة للتخزين المؤقت لأخذ عينات البيانات المعمارية الدقيقة)، استعادة محتويات الذاكرة غير القابلة للتخزين المؤقت. تم استخدامه في هجوم RIDL. سي في إس إس 3.8.

مادة تحديد المشكلات في القدرة على تطبيق أساليب تحليل القناة الجانبية على البيانات الموجودة في الهياكل المعمارية الدقيقة التي لا تستطيع التطبيقات الوصول إليها بشكل مباشر. نحن نتحدث عن هياكل منخفضة المستوى مثل مخازن التعبئة المؤقتة (Linefill Buffer)، ومخازن التخزين المؤقتة (Store Buffer)، ومنافذ التحميل (Load Port)، وهي كتل بناء أصغر من ذاكرة التخزين المؤقت للمستوى الأول (L1D)، وذاكرة التخزين المؤقت لتحميل البيانات ( RDCL ) أو L1TF (L1 Terminal Fault)، وبالتالي تتضمن معلومات أقل ويتم تحديثها بشكل مكثف.

تم إدخال فئة جديدة من الثغرات الأمنية في معالجات Intel

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

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

يستخدم المعالج منافذ التحميل لتلقي البيانات من الذاكرة أو نظام الإدخال / الإخراج الفرعي وتوفير المعلومات المستلمة إلى سجلات وحدة المعالجة المركزية. بسبب ميزة التنفيذ، تظل البيانات من عمليات التنزيل القديمة في المنافذ حتى يتم استبدالها ببيانات جديدة، مما يجعل من الممكن تحديد حالة البيانات في منفذ التنزيل بشكل غير مباشر عن طريق معالجة الاستثناءات (الأخطاء) وSSE/AVX/ تعليمات AVX-512 التي تقوم بتحميل بيانات أكثر من 64 بت. في ظل هذه الظروف، تكشف عمليات التحميل بشكل تخميني قيم البيانات التي لا معنى لها من الهياكل الداخلية إلى العمليات التابعة. وبطريقة مماثلة، يتم تنظيم التسرب من خلال المخزن المؤقت للتخزين، والذي يستخدم لتسريع الكتابة إلى ذاكرة التخزين المؤقت لوحدة المعالجة المركزية ويتضمن جدول العناوين والقيم والأعلام، وكذلك من خلال مخزن التعبئة المؤقت، الذي يحتوي على البيانات التي ليس موجودًا بعد في ذاكرة التخزين المؤقت L1 (ذاكرة التخزين المؤقت مفقودة)، في الوقت الحالي يتم التحميل من ذاكرة التخزين المؤقت للمستويات الأخرى.

تم إدخال فئة جديدة من الثغرات الأمنية في معالجات Intel

مشكلة يؤثر طرازات معالجات إنتل تم إنتاجها منذ عام 2011 (بدءًا من الجيل السادس). في هذه الحالة، يتم حظر الثغرات الأمنية في الأجهزة بدءًا من بعض طرز الجيلين الثامن والتاسع من Intel Core والجيل الثاني من Intel Xeon Scalable (يمكنك التحقق باستخدام بت ARCH_CAP_MDS_NO في IA6_ARCH_CAPABILITIES MSR). نقاط الضعف هي أيضا بالفعل اقصاء على مستوى البرامج الثابتة والكود الصغير وأنظمة التشغيل. تقوم Intel بتقدير فقدان الأداء بعد تنشيط التصحيح لمعظم المستخدمين لا يتجاوز 3%. عند تعطيل تقنية Hyper-Threading، يمكن أن يصل تدهور الأداء إلى ما يصل إلى 9% في اختبار SPECint_rate_base، وما يصل إلى 11% في حسابات الأعداد الصحيحة النشطة، وما يصل إلى 19% عند تشغيل تطبيقات Java من جانب الخادم (مع تمكين HT، يكون هناك تقريبًا لا يوجد تدهور في الأداء). التصحيحات لها تأثير ضئيل على أداء الإدخال/الإخراج.

نواة Linux تحمي من MDS مضاف في اليوم التحديثات 5.1.2، 5.0.16،
4.19.43 و4.14.119 و4.9.176. طريقة الحماية تحت التشيد عند مسح محتويات المخازن المؤقتة المعمارية الدقيقة في وقت العودة من النواة إلى مساحة المستخدم أو عند نقل التحكم إلى نظام الضيف، والذي يتم استخدام تعليمات VERW من أجله. لكي تعمل الحماية، فإنها تتطلب دعمًا لوضع MD_CLEAR، الذي تم تنفيذه في آخر تحديث للكود الصغير. للحصول على الحماية الكاملة، يوصى أيضًا بتعطيل Hyper Threading. للتحقق من تعرض النظام لنقاط الضعف في نواة لينكس مضاف المعالج "/sys/devices/system/cpu/vulnerabilities/mds". للتحكم في تضمين أوضاع حظر الثغرات المختلفة، تمت إضافة المعلمة "mds=" إلى النواة، والتي يمكن أن تأخذ القيم "full"، "full،nosmt" (تعطيل Hyper-Threads)، "vmwerv" و" "عن".

لقد تم بالفعل إصدار تحديثات الحزمة لـ RHEL и أوبونتو، ولكنها تظل غير متاحة في الوقت الحالي ديبيان, فيدورا и SUSE.
إصلاح لمنع تسرب البيانات من الأجهزة الافتراضية أيضًا شكلت لبرنامج Hypervisor Xen. لحماية أنظمة المحاكاة الافتراضية التي تصدر أمر L1D_FLUSH قبل نقل التحكم إلى جهاز ظاهري آخر، ولحماية جيوب Intel SGX، يعد تحديث الرمز الصغير كافيًا.

المصدر: opennet.ru

إضافة تعليق