LVI - فئة جديدة من الهجمات على آلية التنفيذ التخميني في وحدة المعالجة المركزية

نشرت معلومات حول فئة جديدة من الهجمات LVI (تحميل حقن القيمة، CVE-2020-0551) على آلية التنفيذ التخميني في وحدات المعالجة المركزية Intel، والتي يمكن استخدامها لتسريب المفاتيح والبيانات السرية من جيوب Intel SGX والعمليات الأخرى.

تعتمد فئة جديدة من الهجمات على التلاعب بنفس الهياكل المعمارية الدقيقة المستخدمة في الهجمات MDS (أخذ عينات البيانات المعمارية الدقيقة)، شبح والانهيار. وفي الوقت نفسه، لا يتم حظر الهجمات الجديدة من خلال طرق الحماية الحالية ضد Meltdown وSpecter وMDS وغيرها من الهجمات المماثلة. تتطلب حماية LVI الفعالة إجراء تغييرات على الأجهزة في وحدة المعالجة المركزية. عند تنظيم الحماية برمجيًا، عن طريق إضافة تعليمات LFENCE بواسطة المترجم بعد كل عملية تحميل من الذاكرة واستبدال تعليمات RET بـ POP وLFENCE وJMP، يتم تسجيل الكثير من الحمل - وفقًا للباحثين، ستؤدي الحماية الكاملة للبرامج إلى انخفاض في الأداء بنسبة 2-19 مرة.

جزء من الصعوبة في منع المشكلة يقابله حقيقة أن الهجوم حاليًا نظري أكثر منه عملي (الهجوم ممكن من الناحية النظرية، ولكن من الصعب جدًا تنفيذه ولا يمكن تكراره إلا في الاختبارات الاصطناعية).
شركة انتل المخصص المشكلة لديها مستوى متوسط ​​من الخطورة (5.6 من 10) و صدر تحديث البرنامج الثابت وSDK لبيئة SGX، حيث حاول منع الهجوم باستخدام الحل البديل. لا تنطبق أساليب الهجوم المقترحة حاليًا إلا على معالجات Intel، ولكن لا يمكن استبعاد إمكانية تكييف LVI مع المعالجات الأخرى التي تنطبق عليها هجمات فئة Meltdown.

تم تحديد المشكلة في أبريل الماضي من قبل الباحث جو فان بولك من جامعة لوفين، وبعد ذلك، بمشاركة 9 باحثين من جامعات أخرى، تم تطوير خمس طرق هجوم أساسية، كل منها يسمح بوجود المزيد من الهجمات المحددة خيارات. وبشكل مستقل، في فبراير من هذا العام، قام باحثون من Bitdefender أيضًا أسس أحد متغيرات هجوم LVI وأبلغت Intel به. تتميز متغيرات الهجوم باستخدام هياكل معمارية دقيقة مختلفة، مثل المخزن المؤقت للتخزين (SB، Store Buffer)، وملء المخزن المؤقت (LFB، Linefill Buffer)، والمخزن المؤقت لتبديل سياق FPU، وذاكرة التخزين المؤقت من المستوى الأول (L1D)، المستخدمة سابقًا في هجمات مثل ZombieLoad, Rýdl, تداعيات, كسول, أنذر ب и الانهيار.

LVI هي فئة جديدة من الهجمات على آلية تنفيذ المضاربة في وحدة المعالجة المركزية

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

LVI هي فئة جديدة من الهجمات على آلية تنفيذ المضاربة في وحدة المعالجة المركزية

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

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

LVI هي فئة جديدة من الهجمات على آلية تنفيذ المضاربة في وحدة المعالجة المركزية

LVI هي فئة جديدة من الهجمات على آلية تنفيذ المضاربة في وحدة المعالجة المركزية

ناقلات الهجوم المحتملة:

  • تسرب البيانات من هياكل النواة إلى عملية على مستوى المستخدم. تعمل حماية Linux kernel ضد هجمات Spectre 1، بالإضافة إلى آلية الحماية SMAP (منع الوصول إلى وضع المشرف)، على تقليل احتمالية حدوث هجوم LVI بشكل كبير. قد يكون من الضروري إضافة حماية إضافية إلى kernel إذا تم تحديد طرق هجوم أبسط من LVI في المستقبل.
  • تسرب البيانات بين العمليات المختلفة. يتطلب الهجوم وجود أجزاء معينة من التعليمات البرمجية في التطبيق وتحديد طريقة لطرح استثناء في العملية المستهدفة.
  • تسرب البيانات من البيئة المضيفة إلى نظام الضيف. تم تصنيف الهجوم على أنه معقد للغاية، ويتطلب خطوات مختلفة يصعب تنفيذها وتنبؤات بالنشاط في النظام.
  • تسرب البيانات بين العمليات في أنظمة الضيف المختلفة. يقترب ناقل الهجوم من تنظيم تسرب البيانات بين العمليات المختلفة، ولكنه يتطلب بالإضافة إلى ذلك معالجات معقدة لتجاوز العزل بين أنظمة الضيف.

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


المصدر: opennet.ru

إضافة تعليق