ثغرة أمنية في معالجات Intel تؤدي إلى تسرب البيانات عبر قنوات الطرف الثالث

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

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

ثغرة أمنية في معالجات Intel تؤدي إلى تسرب البيانات عبر قنوات الطرف الثالث

على عكس الهجمات المماثلة الأخرى من خلال قنوات الجهات الخارجية ، فإن الطريقة الجديدة لا تحلل التغيير في وقت الوصول إلى البيانات المخزنة مؤقتًا وغير المخزنة مؤقتًا ولا تتطلب مرحلة إعادة تعيين سجل EFLAGS إلى الحالة الأولية ، مما يجعل من الصعب كشف الهجوم وصده. كدليل على ذلك ، طبق الباحثون نوعًا مختلفًا من هجوم الانهيار ، باستخدام طريقة جديدة فيه للحصول على معلومات حول نتيجة عملية المضاربة. تم إثبات تشغيل طريقة تنظيم تسرب المعلومات أثناء هجوم الانهيار بنجاح على الأنظمة المزودة بوحدات المعالجة المركزية Intel Core i7-6700 و i7-7700 في بيئة مع Ubuntu 22.04 و Linux 5.15 kernel. على نظام مع وحدة المعالجة المركزية Intel i9-10980XE ، كان الهجوم ناجحًا جزئيًا فقط.

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

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

المصدر: opennet.ru

إضافة تعليق