ينذر: نذير المشاكل؟


عام 2018 الحالي مثير للاهتمام لأنه يوجد كل شهر تقريبًا معلومات حول نقاط الضعف في الأجهزة الجديدة: Spectre و Meltdown .


في الآونة الأخيرة - قبل أسبوعين! - تم نشر أخبار بارزة حول نقاط الضعف Foreshadow و L1Terminal Fault ، والتي تم الإبلاغ عنها لتجاوز حتى آلية SGX (ملحقات البرامج الضارة) ، والتي كانت تعتبر في السابق غير قابلة للكسر تقريبًا.


ما مدى خطورة نقاط الضعف هذه؟ هل من الممكن الدفاع ضدهم ، وإذا كان الأمر كذلك ، كيف؟ سنتحدث عن كل هذا أدناه.


مرجع سريع


Foreshadow ، أو L1TF ، هي مجموعة كاملة من نقاط الضعف التي تشمل:


  • CVE-2018-3615 - لتجاوز SGX ؛
  • CVE-2018-3620 - لمهاجمة نواة نظام التشغيل ، وكذلك SMM (وضع إدارة النظام) ؛
  • CVE-2018-3646 - لمهاجمة الأجهزة الافتراضية.

يشعر مؤلفو العديد من المنشورات بالقلق بشكل خاص بشأن إمكانية التحايل على حماية SGX: لم يكن Spectre و Metldown لا يعرفون كيفية القيام بذلك ، وهذا يجعل أي بيانات حساسة غير قابلة للدفاع. لفهم كيفية تبرير هذا الإنذار ، دعنا نحلل مبادئ تشغيل آلية SGX.


ما هو SGX وكيف يمكنني الالتفاف عليه


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


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

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


تُنشئ SGX في الذاكرة منطقة محمية - PRM (الذاكرة المحجوزة للمعالج) ، والتي تسمى أيضًا الجيب. يحمي المعالج الجيب من أي محاولات وصول ، بما في ذلك محاولات من kernel و hypervisor و SMM (وضع إدارة النظام) ، وكذلك من محاولات الوصول من الأجهزة الطرفية.


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


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


كما هو مذكور في منشورات Intel الرسمية ، يمكن لـ SGX الحماية من جميع أنواع الهجمات على البيانات والتعليمات البرمجية: سواء من النظام أو من برنامج المستخدم ، ومن محمل الإقلاع. لكن SGX لا يمكنها الحماية ضد ما يسمى بهجمات القناة الجانبية. لا يمكن لـ SGX الالتفاف على شبح Spectre و Meltdown.


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


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


مرة أخرى في ربيع هذا العام ، ظهرت معلومات حول هجوم يسمى SGX Specter ، والذي يمكنك من خلاله استخراج البيانات من الجيوب. كما أظهر الباحثون في جامعة ولاية أوهايو (انظر ، على سبيل المثال ، هنا ) ، هذا ممكن بفضل "الثقوب" في SDK ، والتي يمكن للمطورين من خلالها دمج دعم SGX في تطبيقاتهم. وكان من بين حزم SDK المتأثرة Intel SGX SDK و Rust-SGX و Graphene-SGX. يمكن العثور على تحليل مفصل لهذا الهجوم في هذه المقالة . كما تم نشر مقطع فيديو على موقع يوتيوب مع مثال جيد.



الفيديو ، بطبيعة الحال ، غير مقنع: إن مجرد دخول الجيب لا يعني أنه يمكن سرقة البيانات الهامة. ومع ذلك ، يجب ملاحظة ما يلي: تم انتهاك سلامة وسرية آلية SGX.


ينذر الإنذار بالعزلة باستخدام ما يسمى بهجوم القناة الجانبية.


كما هو الحال في Spectre و Meltdown سيئة السمعة ، تستخدم الثغرة آلية التنفيذ المضاربة للأوامر. يعتمد ذلك على النقطة التالية: عند الوصول إلى الذاكرة في عنوان افتراضي يؤدي إلى خطأ صفحة طرفية بسبب عدم وجود علامة الحاضر في جدول PTE (إدخالات جدول الصفحة) ، تقوم معالجات Intel بحساب العنوان الفعلي وتحميل البيانات إذا كانت متوفر في ذاكرة التخزين المؤقت L1. يتم إجراء حسابات المضاربة قبل التحقق من توفر البيانات في الذاكرة الفعلية وقبل التحقق من توفر هذه البيانات للقراءة. إذا لم يكن هناك إشارة حالية في PTE ، فسيتم تجاهل العملية ؛ ولكن يتم "إيداع" البيانات في ذاكرة التخزين المؤقت ويمكن استخراجها منها. يمكن استخراج البيانات إلى أي عنوان فعلي على الإطلاق ؛ هذا يفتح فرصًا كبيرة للمهاجمين ويسمح ، على سبيل المثال ، باستخراج البيانات على المضيف من جهاز الضيف. ظهرت مقاطع الفيديو التجريبية بالفعل:



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


لماذا تخاف؟


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


تهدد اختلافات Foreshadow المختلفة ما يسمى وضع إدارة النظام (SMM) ، جوهر نظام تشغيل hypervisor. يلاحظ بعض الخبراء أنه باستخدام Foreshadow يمكنك سرقة البيانات من الأجهزة الافتراضية في سحابة طرف ثالث. هناك منشورات يُلاحظ فيها أن الهجوم الجديد يسمح لك حتى بتجاوز البقع المحسوبة سابقًا للحماية من هجمات Spectre و Meltdown.


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


حتى الآن ، لم تكن هناك هجمات خطيرة حقا.


التصحيحات والأداء


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


استجابت الشركات الكبرى على الفور لنشر المعلومات حول ثغرة Foreshadow: أدلت Intel و Red Hat و SUSE و VMware و Oracle ببيانات ذات صلة. تم إصدار تحديثات منتجات Cisco و Linux kernel بسرعة أقل.


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


الخلاصة


في هذه المقالة ، قدمنا ​​لمحة موجزة عن نقاط الضعف في فئة Foreshadow. بطبيعة الحال ، من المستحيل التحدث عن جميع جوانب نقاط الضعف في مجموعة Foreshadow في مقال واحد. لذلك ، نقدم مجموعة مختارة من الروابط المفيدة للراغبين في معرفة المزيد:



إذا كانت لديك خبرة في تحليل نقاط الضعف في الأجهزة وعواقبها - فمرحباً بك في التعليق.

Source: https://habr.com/ru/post/ar422137/


All Articles