نشرت مجموعة من الباحثين من جامعة فريجي أمستردام مجموعة أدوات كاسبر، المصممة لاكتشاف النواة Linux مقتطفات برمجية يمكن استخدامها لاستغلال ثغرات Spectre الناتجة عن تنفيذ التعليمات البرمجية التخمينية على المعالج. يتم توزيع الشفرة المصدرية لمجموعة الأدوات بموجب ترخيص Apache 2.0.
دعونا نتذكر أنه من أجل تنفيذ هجمات مثل Spectre v1، والتي تتيح تحديد محتويات الذاكرة، يلزم وجود تسلسل معين من الأوامر (الأدوات) في الكود المميز، مما يؤدي إلى التنفيذ التخميني للتعليمات . ولأغراض التحسين، يبدأ المعالج في تنفيذ مثل هذه الأدوات في وضع التخمين، ثم يحدد أن تنبؤ الفرع لم يكن له ما يبرره ويعيد العمليات إلى حالتها الأصلية، ولكن البيانات التي تتم معالجتها أثناء التنفيذ التأملي ينتهي بها الأمر في ذاكرة التخزين المؤقت والمخازن المؤقتة المعمارية الدقيقة و متاح للاسترجاع منها باستخدام طرق مختلفة لتحديد البيانات المتبقية من خلال قنوات الطرف الثالث.
أظهرت الأدوات المتاحة سابقًا لفحص الأدوات الذكية بحثًا عن ثغرة Spectre، استنادًا إلى البحث عن الأنماط النموذجية، مستوى عالٍ جدًا من النتائج الإيجابية الخاطئة، بينما فقدت العديد من الأدوات الذكية الحقيقية (أظهرت التجارب أن 99% من الأدوات الذكية التي تم تحديدها بواسطة هذه الأدوات لا يمكن استخدامها لشن هجمات ، و 33٪ من أدوات العمل التي يمكن أن تؤدي إلى هجوم لم تتم ملاحظتها).
لتحسين جودة تحديد الأجهزة التي بها مشكلات، يقوم Kasper بنمذجة نقاط الضعف التي يمكن للمهاجم استغلالها في كل خطوة من خطوات تنفيذ هجمات فئة Spectre - يتم تصميم المشكلات التي تسمح بالتحكم في البيانات (على سبيل المثال، استبدال بيانات المهاجم في هياكل معمارية دقيقة للتأثير على التنفيذ التأملي اللاحق باستخدام هجمات فئة LVI)، والوصول إلى المعلومات السرية (على سبيل المثال، عند تجاوز حدود المخزن المؤقت أو استخدام الذاكرة بعد تحريرها) وتسريب المعلومات السرية (على سبيل المثال، عن طريق تحليل حالة ذاكرة التخزين المؤقت للمعالج أو استخدام طريقة MDS).

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

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