لماذا تسبب CrowdStrike في ظهور شاشة Windows الزرقاء؟
في فيديو يوتيوب، نشر ديفيد ويليام بلامر، مهندس البرمجيات السابق في مايكروسوفت، الذي طور مدير مهام Windows، مقطع فيديو يصف كيفية تحديث CrowdStrike ربما يكون قد تسبب في توقف Windows.
وصفه CrowdStrike Falcon لمكافحة البرامج الضارة بالنسبة لخوادم Windows، التي “تكتشف بشكل استباقي الهجمات الجديدة” وتحلل سلوك التطبيق. للقيام بذلك، يحتاج CrowdStrike إلى التشغيل كبرنامج تشغيل جهاز kernel.
توفر برامج تشغيل الأجهزة الأساسية عادةً وسيلة لعزل الأجهزة، مثل بطاقات الرسومات، عن التطبيقات. وعندما يتم تشغيلها، فإنها تتمتع عمومًا بإمكانية الوصول الكامل إلى الكمبيوتر ونظام التشغيل، وفي مصطلحات أنظمة التشغيل، يُقال إنها تعمل عند “Ring Zero”. وهذا مختلف عن كود التطبيق، الذي يقوم المستخدمون بتشغيله في مساحة المستخدم لنظام التشغيل المعروفة باسم “Ring One”.
الفرق، كما يلاحظ بلامر، هو أنه عندما يتعطل تطبيق المستخدم، لا ينبغي أن يتأثر أي شيء آخر على الكمبيوتر. ومع ذلك، فإن الخطأ في التعليمات البرمجية التي تعمل عند Ring Zero يعتبر خطيرًا لدرجة أن نظام التشغيل يتوقف على الفور، وهو ما يؤدي في Windows إلى ما يسمى شاشة الموت الزرقاء.
“على الرغم من عدم وجود جهاز مادي يتحدث إليه حقًا، من خلال كتابة التعليمات البرمجية كبرنامج تشغيل للجهاز، فإن CrowdStrike يعيش في نواة Ring Zero ولديه وصول كامل وغير مقيد إلى هياكل بيانات النظام والخدمات التي تعتقد CrowdStrike أنها بحاجة إليها للقيام بعملها،” قال بلامر.
برامج تشغيل الأجهزة المعتمدة
وأشار بلامر إلى أن مايكروسوفت، ومن المحتمل أيضًا أن تكون CrowdStrike، على دراية بالمخاطر عندما يقوم البرنامج بتشغيل الكود في وضع kernel، مضيفًا: “لهذا السبب تقدم Microsoft WHQL [Windows Hardware Quality Labs] شهادة.”
وبحسب بلومر، فإن عملية التصديق تتضمن قيام مزودي برامج تشغيل الأجهزة باختبار أكوادهم على منصات وتكوينات أنظمة مختلفة. ثم يتم توقيع الكود رقميًا بواسطة مايكروسوفت، التي تشهد على توافقه مع نظام التشغيل ويندوز. وقال بلومر إن عملية التصديق تعني أن مستخدمي ويندوز يمكنهم أن يكونوا على ثقة معقولة من أن برنامج التشغيل قوي وجدير بالثقة.
إن عملية التصديق بطيئة للغاية لضمان الحماية من البرامج الضارة، مثل إصدار CrowdStrike تحديثات البرامج في كل مرة يظهر فيها تهديد جديد. ويعتقد بلامر أنه من المرجح أن تقوم CrowdStrike غالبًا بإصدار ملف تعريف تتم معالجته بواسطة برنامج تشغيل نواة Windows. وهذا يتجاوز عملية تصديق برنامج تشغيل الجهاز WHQL ويعني أن المستخدمين لديهم إمكانية الوصول إلى أحدث الحماية.
وأضاف “ربما يمكنك بالفعل رؤية المشكلة، دعونا نتكهن للحظة بأن ملف تعريف CrowdStrike الديناميكي “ليس مجرد تعريف للبرامج الضارة، بل هو برنامج كامل مكتوب في الكود الزائف الذي يمكن للسائق تنفيذه بعد ذلك.”
وقال إن هذا من شأنه أن يسمح لبرنامج تشغيل الجهاز من CrowdStrike بتنفيذ ملف التعريف ككود يعمل داخل نواة Windows في Ring Zero حتى لو لم يتم توقيع التحديث نفسه مطلقًا. “الرمز التنفيذي p [pseudocode] وقال بلامر “إن الدخول إلى نواة النظام أمر محفوف بالمخاطر في أفضل الأحوال، وفي أسوأ الأحوال، قد يؤدي إلى المتاعب”.
من خلال النظر إلى تفريغات الأعطال المنشورة على X (Twitter سابقًا)، قال بلومر إن “مرجع مؤشر فارغ” تسبب في تحميل ملف فارغ يحتوي على أصفار بواسطة برنامج تشغيل جهاز CrowdStrike، بدلاً من الكود الزائف الفعلي.
وأضاف “نحن لا نعرف كيف أو لماذا حدث هذا، ولكن ما نعرفه هو أن برنامج تشغيل CrowdStrike الذي يتعامل مع هذه التحديثات ويعالجها ليس مرنًا للغاية ويبدو أنه لا يتمتع بالقدر الكافي من التحقق من الأخطاء والتحقق من المعلمات”.
وهذه الإجراءات ضرورية لضمان أن تكون قيم البيانات المطلوبة بواسطة البرنامج صالحة وجيدة. وإذا لم تكن كذلك، فإن الخطأ لا ينبغي أن يتسبب في تعطل النظام بأكمله، كما قال بلامر.
في حين أنه من الممكن في كثير من الأحيان إعادة تشغيل Windows من آخر “حالة جيدة” معروفة، والتي يمكنها إزالة برامج تشغيل kernel المارقة التي تمنع نظام التشغيل من التشغيل، قال بلامر أن الوضع أصبح أسوأ بسبب حقيقة أن CrowdStrike تم وضع علامة عليه كبرنامج تشغيل بدء التشغيل، مما يعني أنه مطلوب لبدء تشغيل Windows بشكل صحيح.
في حين أنه من السابق لأوانه فهم كيفية ضمان عدم حدوث ذلك مرة أخرى، فمن الواضح أن هناك قيودًا خطيرة في شهادة WHQL من Microsoft التي سمحت لـ CrowdStrike بتثبيت تحديث لمكافحة البرامج الضارة كان له تأثير مدمر على مجتمع Windows.