Plundervolt هي طريقة هجوم جديدة على معالجات Intel تؤثر على تقنية SGX

شركة انتل صدر تحديث الرمز الصغير الذي يعمل على إصلاح عالي التأثر (CVE-2019-14607)، السماح من خلال التلاعب بآلية التحكم الديناميكية في الجهد والتردد في وحدة المعالجة المركزية، بدء إتلاف محتويات خلايا البيانات، بما في ذلك المناطق المستخدمة لإجراء العمليات الحسابية في جيوب Intel SGX المعزولة. يُطلق على الهجوم اسم Plundervolt، ومن المحتمل أن يسمح للمستخدم المحلي بتصعيد امتيازاته على النظام، والتسبب في رفض الخدمة والوصول إلى البيانات الحساسة.

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

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

من خلال تغيير الجهد، يمكنك إنشاء ظروف لا يكون فيها الشحن كافيًا لتجديد خلية ذاكرة داخل وحدة المعالجة المركزية، وتتغير قيمتها. الفرق الرئيسي من الهجوم مطرقة الصف هو أن RowHammer يسمح لك بتغيير محتويات البتات الفردية في ذاكرة DRAM عن طريق قراءة البيانات بشكل دوري من الخلايا المجاورة، بينما يسمح لك Plundervolt بتغيير البتات داخل وحدة المعالجة المركزية عندما تكون البيانات قد تم تحميلها بالفعل من الذاكرة للحساب. تتيح لك هذه الميزة تجاوز آليات التحكم في التكامل والتشفير المستخدمة في SGX للبيانات الموجودة في الذاكرة، حيث تظل القيم الموجودة في الذاكرة صحيحة، ولكن يمكن تشويهها أثناء العمليات معها قبل كتابة النتيجة في الذاكرة.

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

بعد تحليل أزواج قيم النصوص المشفرة الصحيحة والتالفة المتراكمة خلال حالات الفشل المختلفة، باستخدام طرق تحليل الفشل التفاضلي (DFA، تحليل الخطأ التفاضلي) يستطيع يتنبأ المفاتيح المحتملة المستخدمة للتشفير المتماثل AES، ومن ثم، من خلال تحليل تقاطعات المفاتيح في مجموعات مختلفة، تحديد المفتاح المطلوب.

تتأثر نماذج مختلفة من معالجات Intel بهذه المشكلة، بما في ذلك وحدات المعالجة المركزية Intel Core ذات 6
الجيل العاشر، وكذلك الجيل الخامس والسادس من Xeon E10، والجيل الأول والثاني من Intel Xeon Scalable، وXeon D،
زيون دبليو و زيون إي.

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

المصدر: opennet.ru

إضافة تعليق