بقلم “فيليب مازين”، منسق فريق الكشف التلقائي عن التهديدات والذكاء الإصطناعي، و “ فريديريك فأشون”، الباحث في البرامج الضارة لدى شركة ESET
كان أمن UEFI (واجهة البرامج الثابتة القابلة للتوسيع) موضوعًا ساخنًا على مدار الأعوام القليلة الماضية، ولكن نظرًا للقيود المختلفة الموجودة، لم يتم العثور سوى على القليل جدًا من البرامج الضارة المستندة إلى UEFI في الوقت الماضي. وبعد اكتشاف أول جذر لبرنامج ضار خفي والمعروفة باسم LoJax، شرعنا في بناء نظام من شأنه أن يمكّننا من استكشاف المنطقة الواسعة لـ UEFI بطريقة فعالة والكشف عن تهديدات UEFI الناشئة بشكل موثوق به.
وباستخدام القياس عن بُعد الذي تم تجميعه بواسطة ماسحة “إسيت” لـ UEFI كنقطة انطلاق، ابتكرنا خط معالجة مخصصًا للمديرين التنفيذيين في UEFI يعززون به تعلم الآلة لاكتشاف الضرر من بين العينات القادمة. ويوفر هذا النظام بجانب إظهار قدرات قوية في تحديد الملفات التنفيذية المشتبه بها في UEFI، مراقبة في الوقت الفعلي لـ UEFI، ويعمل كذلك على تخفيف عبء العمل على المحللين بنسبة تصل إلى 90%.
وبحثًا عن تهديدات UEFI باستخدام خط المعالجة الخاص بنا، اكتشفنا العديد من مكونات UEFI المثيرة للاهتمام، والتي يمكن تقسيمها إلى فئتين – الخلفية الثابتة لبرامج UEFI ووحدات استمرارية على مستوى نظام التشغيل. إن أكثر ما يلفت الانتباه من الاكتشافات لدينا هو ما يسمى ASUS backdoor، وهو الباب الخلفي الثابت للبرامج UEFI الموجود في العديد من طرز ASUS لأجهزة الكمبيوتر المحمولة ويتم علاجه حاليًا بواسطة ” اَسوس” بعد تنبيهنا.
ما هو UEFI؟
UEFI هو أحد المواصفات التي تحدد الواجهة الموجودة بين نظام التشغيل والبرامج الثابتة للجهاز. ويحدد مجموعة من الخدمات الموحدة تسمى “خدمات التمهيد” و “خدمات وقت التشغيل”، والتي هي واجهات برمجة التطبيقات الأساسية المتاحة في البرامج الثابتة . UEFI وهو خليفة لواجهة BIOS الثابتة (نظام الإدخال / الإخراج الأساسي)، والتي تم تقديمها لمعالجة القيود الفنية لـ BIOS بعد التطورات التكنولوجية للأجهزة.
يتم تخزين البرامج الثابتة UEFI في ذاكرة فلاش SPI، وهي شريحة ملحومة على اللوحة الأم للنظام. وبالتالي، فإن إعادة تثبيت نظام التشغيل أو استبدال محرك الأقراص الثابتة لا يؤثر على رمز البرنامج الثابت. البرامج الثابتة لـ UEFI هي وحدات معيارية للغاية: تحتوي عادةً على العشرات إن لم يكن المئات ، من البرامج التنفيذية / برامج التشغيل المختلفة.
الشكل 1. كيف يتم تخزين الملفات التنفيذية / برامج UEFI في جهاز الكمبيوتر
UEFI بمثابة ناقل الهجوم
هناك طرق متعددة يمكن تعديل البرامج الثابتة بها، مما يعرض أمن الكمبيوتر المتأثر للخطر.
الطريقة الأولى والأكثر شيوعًا، هو تعديل البرنامج الثابت بواسطة صانع الكمبيوتر لتمكين التشخيص أو الخدمة عن بُعد، والتي إذا تم تنفيذها بشكل غير صحيح، يمكن أن تكون بمثابة مستتر للبرامج الضارة. وهناك طرقة أخرى وهي malicious flashing مقابل التدخل اليدوي، و ذلك عندما يكون للمهاجم حق الوصول المادي إلى الجهاز المتأثر. والطريقة الثالثة: الهجمات عن بعد باستخدام برامج ضارة قادرة على تعديل البرنامج الثابت.
تم توثيق هذا الخيار الثالث في بحثنا على LoJax، أول جذر UEFI يتم اكتشافه. في حملة استهدفت المنظمات الحكومية في البلقان وكذلك في أوروبا الوسطى والشرقية، نجحت مجموعة Sednit APT في نشر نموذج UEFI ضار على نظام الضحية. هذه الوحدة قادرة على إسقاط البرامج الضارة وتنفيذها على القرص أثناء عملية التمهيد – وهي طريقة ثباتية خاصة لن تنجو من إعادة تثبيت نظام التشغيل فحسب، بل وأيضًا مع استبدال القرص الصلب.
طريقة التعلم الآلي لاستكشاف تهديدات UEFI
يعد العثور على برامج ضارة مثل LoJax أمرًا نادرًا – فهناك ملايين من الملفات التنفيذية لـ UEFI وهناك جزء صغير منها ضار. لقد رأينا أكثر من 2.5 مليون ملف تنفيذي فريد لـ UEFI (من إجمالي ستة مليارات) على مدار العامين الماضيين وحدهما. نظرًا لأنه لا يمكن تحليل كل منها يدويًا، فقد احتجنا إلى التوصل إلى نظام آلي لتقليل عدد العينات التي تتطلب اهتمامًا بشريًا. ولمعالجة هذه المشكلة، قررنا إنشاء نظام مخصص لتسلط الضوء على عينات غريبة عن طريق إيجاد خصائص غير عادية في الملفات التنفيذية UEFI.
في بحثنا، قمنا بفحص ومقارنة الطرق المتعددة لكل جزء من العملية – بدءًا من استخراج الميزات وتضمين النص ودمج البيانات متعددة الأبعاد من خلال التخزين الفعال، واستعلام الأحياء المجاورة للعينات لإنشاء خوارزمية تسجيل نهائية – كل ذلك مع مراعاة الأداء والحقيقي قدرات الوقت الفعلي في التقنيات المختارة. وأنشأنا نظامًا لتعيين نقاط التشابه في النطاق من صفر إلى واحد إلى الملفات التنفيذية الواردة، ومقارنتها بالملفات التي تمت مشاهدتها مسبقًا. ثم فحص الملفات ذات أدنى درجة تشابه مع أولوية قصوى من قبل محلل.
وكدليل على ما تم كشفة في البحث، قمنا باختبار النظام الناتج على الملفات التنفيذية المعروفة المشبوهة والخبيثة والتي لم يتم تضمينها مسبقًا في مجموعة البيانات الخاصة بنا – وأبرزها برنامج التشغيل LoJax UEFI. استنتج النظام بنجاح أن برنامج التشغيل LoJax كان مختلفًا تمامًا عن أي شيء رأيناه من قبل، حيث أعطاه درجة تشابه قدرها “صفر”.
يمنحنا هذا الاختبار الناجح درجة من الثقة في أنه إذا ظهر تهديد مماثل آخر لـ UEFI، فسنكون قادرين على رصده على أنه أمر غريب، وتحليله على الفور وإنشاء كشف حسب الحاجة. بجانب ذلك، يمكن أن يستند نهجنا القائم على “التعلم الاَلي” إلى تقليل عبء عمل المحللين لدينا بنسبة تصل إلى 90٪ (إذا كان عليهم تحليل كل عينة واردة).و أخيرًا، وبفضل حقيقة أن كل UEFI جديدة قابلة للتنفيذ يتم إضافتها إلى مجموعة البيانات ومعالجتها وفهرستها وأخذها بعين الاعتبار بالنسبة للعينات المستقبلية القادمة، فإن حلنا يوفر مراقبة في الوقت الحقيقي لـ UEFI.
البحث عن مكونات UEFI الغير مرغوبة
بعد اختبار خط المعالجة الخاص بنا على عينات ضارة معروفة، فقد حان الوقت للبدء في البحث عن وحدات UEFI الغير مرغوبة. يمكن تجميع المكونات المثيرة للاهتمام التي وجدناها في فئتين – الخلفية الثابتة لبرامج UEFI ووحدات استمرارية على مستوى نظام التشغيل.
الخلفية الثابتة UEFI
فما هي الخلفية الثابتة UEFI؟ في معظم إعدادات برامج UEFI الثابتة تتوفر خيارات لحماية النظام بكلمة مرور من الوصول غير المصرح به خلال المراحل الأولى من عملية التمهيد. تتيح الخيارات الأكثر شيوعًا تعيين كلمات مرور لحماية الوصول إلى إعداد البرامج الثابتة UEFI، ولمنع النظام من التشغيل والوصول إلى القرص. تعتبر برامج UEFI الثابتة الخلفية آليات تسمح بتجاوز هذه الحماية دون معرفة كلمة مرور تكوين المستخدم.
في حين أن هذه البرامج الثابتة في UEFI شائعة للغاية- تستخدم بشكل رئيسي كآلية استرداد في حالة نسيان مالك الكمبيوتر لكلمة المرور – إلا أن لها آثارهاالأمنية. إلى جانب السماح للمهاجمين الذين لديهم وصول فعلي إلى الكمبيوتر المتأثر بتجاوز آليات الأمان المختلفة، فإنهم يخلقون أيضًا إحساسًا خاطئًا بالأمان لدى المستخدمين الذين ليسوا على دراية ويعتقدون أن أجهزة الكمبيوتر الخاصة بهم غير قابلة للتمهيد بواسطة أي شخص لا يملك كلمة المرور.
أكثر ما قمنا بتحليله و متعلق بالباب الخلفي لبرامج UEFI الثابتة ما يسمى “الباب الخلفي المستتر لاَسوس”. أكد بحثنا أنه تم شحن ما لا يقل عن ستة طرازات من أجهزة الكمبيوتر المحمولة من “اَسوس” مع الباب الخلفي المذكور ؛ و من المحتمل أن يكون الرقم أعلى بكثير (التحقق من وجود في كل طراز “اَسوس” المحمول كان خارج نطاق بحثنا). وبعد إشعارنا لـ “اَسوس” حول الباب الخلفي في أبريل 2019، أزال المصنع المشكلة وأصدر تحديثات البرامج الثابتة في 14 يونيو 2019.
وحدات استمرار مستوى OS
ما تبقى من النتائج التي توصلنا إليها هي وحدات الثبات على مستوى نظام التشغيل – مكونات البرامج الثابتة المسؤولة عن تثبيت البرامج على مستوى نظام التشغيل. من خلال وحدات الثبات هذه تتمثل مشكلة الأمن الرئيسية في أنه – بسبب الطبيعة المعقدة لتقديم تحديثات البرامج الثابتة – من المرجح أن يظل جهاز الكمبيوتر الذي يتم شحنه مع أحد مكونات البرامج الثابتة الضعيفة معرضًا للخطر خلال فترة إستخدامه بأكملها. لهذا السبب، نعتقد أنه يجب تجنب ثبات البرامج الثابتة قدر الإمكان وقصرها على الحالات التي تكون ضرورية للغاية، كما هو الحال مع حلول مكافحة السرقة.
لمعرفة المزيد حول بحثنا، يرجى الرجوع إلى الملف الكامل ، وهي “طريقة للتعلم الآلي لاستكشاف مساحات UEFI“.