أصبح Kasper، وهو ماسح ضوئي لمشاكل تنفيذ التعليمات البرمجية التخمينية في Linux kernel، متاحًا الآن

نشر فريق من الباحثين من جامعة أمستردام الحرة مجموعة أدوات Kasper المصممة لتحديد مقتطفات التعليمات البرمجية في نواة Linux والتي يمكن استخدامها لاستغلال ثغرات Spectre-class الناتجة عن تنفيذ تعليمات برمجية تخمينية على المعالج. يتم توزيع الكود المصدري لمجموعة الأدوات بموجب ترخيص Apache 2.0.

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

أظهرت الأدوات المتاحة سابقًا لفحص الأدوات الذكية بحثًا عن ثغرة Spectre، استنادًا إلى البحث عن الأنماط النموذجية، مستوى عالٍ جدًا من النتائج الإيجابية الخاطئة، بينما فقدت العديد من الأدوات الذكية الحقيقية (أظهرت التجارب أن 99% من الأدوات الذكية التي تم تحديدها بواسطة هذه الأدوات لا يمكن استخدامها لشن هجمات ، و 33٪ من أدوات العمل التي يمكن أن تؤدي إلى هجوم لم تتم ملاحظتها).

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

أصبح Kasper، وهو ماسح ضوئي لمشاكل تنفيذ التعليمات البرمجية التخمينية في Linux kernel، متاحًا الآن

عند الاختبار، يتم ربط النواة بمكتبات وقت تشغيل Kasper وعمليات التحقق التي يتم تشغيلها على مستوى LLVM. تحاكي عملية التحقق تنفيذ تعليمات برمجية تخمينية، يتم تنفيذها باستخدام آلية استعادة نقاط التفتيش، والتي تنفذ على وجه التحديد فرع تعليمات برمجية تم التنبؤ به بشكل غير صحيح، ثم تعود إلى الحالة الأصلية قبل بدء الفرع. يحاول Kasper أيضًا محاكاة العديد من نقاط الضعف في البرامج والأجهزة، ويحلل تأثير التأثيرات المعمارية والمعمارية الدقيقة، ويجري اختبارًا غامضًا لإجراءات المهاجم المحتملة. لتحليل تدفقات التنفيذ، يتم استخدام منفذ DataFlowSanitizer الخاص بنواة Linux، ولاختبار التشويش، يتم استخدام نسخة معدلة من حزمة syzkaller.

أصبح Kasper، وهو ماسح ضوئي لمشاكل تنفيذ التعليمات البرمجية التخمينية في Linux kernel، متاحًا الآن

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

المصدر: opennet.ru

إضافة تعليق