تقنية جديدة لاستغلال ثغرات فئة Specter في Chrome

اقترحت مجموعة من الباحثين من الجامعات الأمريكية والأسترالية والإسرائيلية تقنية جديدة للهجوم عبر القناة الجانبية لاستغلال ثغرات Spectre-class في المتصفحات المعتمدة على محرك Chromium. يتيح لك الهجوم، الذي يحمل الاسم الرمزي Spook.js، تجاوز آلية عزل الموقع عن طريق تشغيل كود JavaScript وقراءة محتويات مساحة العنوان بالكامل للعملية الحالية، أي. الوصول إلى البيانات من الصفحات التي تعمل في علامات تبويب أخرى، ولكن تتم معالجتها في نفس العملية.

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

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

نشر الباحثون نموذجًا أوليًا لاستغلال يعمل في Chrome 89 على الأنظمة المزودة بمعالج CPUIntel i7-6700K وi7-7600U. عند إنشاء الثغرة، تم استخدام نماذج أولية من كود JavaScript تم نشرها سابقًا بواسطة Google لتنفيذ هجمات من فئة Spectre. يُشار إلى أن الباحثين تمكنوا من إعداد مآثر عمل للأنظمة المعتمدة على معالجات Intel وApple M1، والتي تتيح تنظيم قراءة الذاكرة بسرعة 500 بايت في الثانية وبدقة تصل إلى 96%. من المفترض أن هذه الطريقة قابلة للتطبيق أيضًا على معالجات AMD، لكن لم يكن من الممكن إعداد استغلال كامل الوظائف.

وينطبق الهجوم على أي متصفحات تعتمد على محرك Chromium، بما في ذلك Google Chrome وMicrosoft Edge وBrave. ويعتقد الباحثون أيضًا أنه يمكن تكييف الطريقة للعمل مع Firefox، ولكن نظرًا لأن محرك Firefox مختلف تمامًا عن Chrome، فإن العمل على إنشاء مثل هذا الاستغلال متروك للمستقبل.

للحماية من الهجمات المستندة إلى المتصفح والمتعلقة بالتنفيذ التخميني للتعليمات، ينفذ Chrome تجزئة مساحة العنوان - يسمح عزل وضع الحماية لجافا سكريبت بالعمل فقط مع مؤشرات 32 بت ومشاركة ذاكرة المعالجات في أكوام منفصلة بسعة 4 جيجابايت. لتوفير الوصول إلى مساحة عنوان العملية بأكملها وتجاوز قيود 32 بت، استخدم الباحثون تقنية تسمى Type Confusion، والتي تجبر محرك JavaScript على معالجة كائن بنوع غير صحيح، مما يجعل من الممكن تكوين 64 بت المؤشر يعتمد على مزيج من قيمتين 32 بت.

جوهر الهجوم هو أنه عند معالجة كائن ضار مصمم خصيصًا في محرك JavaScript، يتم إنشاء شروط تؤدي إلى تنفيذ تخميني للتعليمات التي تصل إلى المصفوفة. يتم تحديد الكائن بطريقة يتم من خلالها وضع الحقول التي يتحكم فيها المهاجم في المنطقة التي يُستخدم فيها مؤشر 64 بت. نظرًا لأن نوع الكائن الضار لا يتطابق مع نوع المصفوفة التي تتم معالجتها، ففي الظروف العادية، يتم حظر مثل هذه الإجراءات في Chrome من خلال آلية إلغاء تحسين الكود المستخدم للوصول إلى المصفوفات. لحل هذه المشكلة، يتم وضع التعليمات البرمجية الخاصة بهجوم Type Confusion في كتلة "if" مشروطة، والتي لا يتم تنشيطها في الظروف العادية، ولكن يتم تنفيذها في وضع المضاربة، إذا توقع المعالج بشكل غير صحيح المزيد من التفرع.

ونتيجة لذلك، يصل المعالج بشكل تخميني إلى مؤشر 64 بت الذي تم إنشاؤه ويتراجع عن الحالة بعد تحديد التنبؤ الفاشل، ولكن تظل آثار التنفيذ في ذاكرة التخزين المؤقت المشتركة ويمكن استعادتها باستخدام طرق الكشف عن ذاكرة التخزين المؤقت للقناة الجانبية التي تحلل التغييرات في أوقات الوصول إلى البيانات المخزنة مؤقتا وغير المخزنة مؤقتا. لتحليل محتويات ذاكرة التخزين المؤقت في ظروف عدم دقة المؤقت المتوفر في جافا سكريبت، يتم استخدام طريقة مقترحة من قبل Google، والتي تخدع استراتيجية إزالة ذاكرة التخزين المؤقت Tree-PLRU المستخدمة في المعالجات وتسمح، من خلال زيادة عدد الدورات، بـ زيادة كبيرة في الفرق الزمني عندما تكون القيمة موجودة وغير موجودة في ذاكرة التخزين المؤقت.

المصدر: opennet.ru

إضافة تعليق