ثغرات أمنية في آلية MMIO لمعالجات Intel

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

تظهر الثغرات الأمنية في العديد من وحدات المعالجة المركزية Intel، بما في ذلك المعالجات المستندة إلى البنى الدقيقة لـ Haswell وSkylake وIceLake وBroadwell وLakefield وKabylake وCometlake وRocketlake، بالإضافة إلى معالجات Xeon EP/EX وScalable وبعض معالجات خادم Atom. لتنفيذ هجوم، يلزم الوصول إلى MMIO، والذي، على سبيل المثال، يمكن الحصول عليه في أنظمة المحاكاة الافتراضية التي توفر القدرة على الوصول إلى MMIO لأنظمة الضيف التي يتحكم فيها المهاجم. قد يكون الإصلاح مطلوبًا أيضًا للأنظمة التي تستخدم جيوب Intel SGX (امتدادات حماية البرامج) المعزولة.

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

على جانب الرمز الصغير، تم اقتراح التغييرات اللازمة لتنفيذ الحماية في تحديث الرمز الصغير لشهر مايو لوحدات المعالجة المركزية Intel (IPU 2022.1). في Linux kernel، تم تضمين الحماية ضد فئة جديدة من الهجمات في الإصدارات 5.18.5 و5.15.48 و5.10.123 و5.4.199 و4.19.248 و4.14.284 و4.9.319. للتحقق من تعرض النظام لنقاط الضعف في MMIO وتقييم نشاط بعض آليات الحماية، تمت إضافة الملف "/sys/devices/system/cpu/vulnerabilities/mmio_stale_data" إلى نواة Linux. للتحكم في تضمين الحماية، تم تنفيذ معلمة تمهيد kernel "mmio_stale_data"، والتي يمكن أن تأخذ القيم "كاملة" (تتيح تنظيف المخازن المؤقتة عند الانتقال إلى مساحة المستخدم وفي الجهاز الظاهري)، "كاملة، nosmt" ( كـ "كامل" + بالإضافة إلى ذلك، يتم تعطيل SMT/Hyper-Threads) و"إيقاف" (تم تعطيل الحماية). يتم تقديم إصلاحات منفصلة لبرنامج Xen Hypervisor ونظام التشغيل Qubes.

يتمثل جوهر فئة الثغرات التي تم تحديدها في أن بعض العمليات تؤدي إلى نسخ أو نقل البيانات المتبقية بعد التنفيذ على مراكز وحدة المعالجة المركزية الأخرى من مخزن مؤقت معماري دقيق إلى آخر. تسمح الثغرات الأمنية في MMIO بنقل هذه البيانات المتبقية من المخازن المؤقتة المعمارية الدقيقة المعزولة إلى السجلات المرئية للتطبيق أو المخازن المؤقتة لوحدة المعالجة المركزية. تم تحديد ثلاث طرق لاستخراج البيانات المتبقية من خلال MMIO:

  • DRPW (الكتابة الجزئية لسجل الجهاز، CVE-2022-21166) هي مشكلة تتعلق بالمعالجة غير الصحيحة لعمليات الكتابة إلى بعض سجلات MMIO. إذا كان حجم البيانات التي تتم كتابتها أقل من حجم السجل، فسيتم أيضًا نسخ المعلومات المتبقية من مخازن التعبئة المؤقتة إلى السجل. ونتيجة لذلك، يمكن للعملية التي تبدأ عملية كتابة غير كاملة إلى سجل MMIO الحصول على البيانات المتبقية في المخازن المؤقتة المعمارية الدقيقة من العمليات التي يتم إجراؤها على مراكز وحدة المعالجة المركزية الأخرى.
  • SBDS (أخذ عينات بيانات المخازن المؤقتة المشتركة، CVE-2022-21125) هو تسرب للبيانات المتبقية من مخزن تعبئة مؤقت مرتبط بالنواة ناتج عن الحركة من المخازن المؤقتة المتوسطة المشتركة بين جميع النوى.
  • SBDR (قراءة بيانات المخازن المؤقتة المشتركة، CVE-2022-21123) - المشكلة مشابهة لـ SBDS، ولكنها تختلف في أن البيانات المتبقية يمكن أن تنتهي في هياكل وحدة المعالجة المركزية المرئية للتطبيقات. تظهر مشكلات SBDS وSBDR فقط على معالجات الأنظمة العميلة وعلى عائلة خوادم Intel Xeon E3.

ثغرات أمنية في آلية MMIO لمعالجات Intel


المصدر: opennet.ru

إضافة تعليق