يعد بروتوكول Secure Shell (SSH) طريقة لإرسال الأوامر بشكل آمن إلى جهاز كمبيوتر عبر شبكة غير آمنة. يستخدم SSH التشفير لمصادقة وتشفير الاتصالات بين الأجهزة. أما XZ Utils ومكتبتها الأساسية liblzma فهي مشروع مفتوح المصدر تستخدم لضغط compression وإلغاء ضغط الملفات. يتم تضمين هذه الأداة في العديد من توزيعات Linux الجاهزة. كما تحظى بشعبية ملحوظة لدى المطورين، وبالتالي يتم استخدامها على نطاق واسع في نظام Linux .
منذ عامين تقريباً، انضم مطور باسم Jia Tan إلى المشروع وبدأ يعالج طلبات إصلاحات الأخطاء أو التحسينات المختلفة. هذه هي الطريقة التي تدار بها الأمور في عالم المنتجات مفتوحة المصدر. في النهاية، بعد بناء الثقة والمصداقية، بدأ ذلك الشخص في اكتساب صلاحيات وأذونات أعلى وصلت لحقوق مدير الإصدار.
للحصول على هذه الأذونات، استخدم Jia Tan بذكاء أحد أشكال الهندسة الاجتماعية. أرسلت حسابات مزيفة عدد هائل من طلبات الميزات والشكاوى حول وجود أخطاء. كان الهدف من ذلك السلوك الضغط على المشرف الأصلي على المشروع. نجحت خطة المهاجمين. أضاف المشرف الأصلي مشرفاً آخر Jia Tan إلى مستودع البرمجيات repository الخاص بالأداة XZ Utils. الأن، وبعد أن تهيأت له الظروف، وبعد مساهمته في تطوير الكود لمدة عامين تقريباً، قدم Jia Tan في عام 2023 بعض التغييرات على XZ. تم تضمين هذه التغييرات كجزء من الإصدار 5.6.0 و 5.6.1. للأسف، من بين هذه التغييرات كان هناك باب خلفي متطور backdoor !!.
XZ – باب خلفي
قبل الحديث عن ذلك الباب الخلفي، من المهم أن نشرح ما هي tarball. في عالم لينكس فإن tarball هي ملف أرشيف مضغوط يحتوي على ملفات وأدلة متعددة. غالباً ما يتم استخدامها لدمج الملفات وضغطها لسهولة التوزيع والنسخ الاحتياطي. بناءاً على ما سبق، فإن الباب الخلفي الذي تم زرعه في XZ كان معقداً للغاية. لتجنب اكتشافه، اختار المشرف الخبيث تضمينه فقط في إصدارات tarball الخاصة بكود المصدر بدلاً من نشره عبر مستودع git كما جرت العادة، . وقد تسبب هذا التكتيك الخبيث في بقاء أجزاء من الباب الخلفي مخفية نسبياً. لكن مع الاستمرار في استخدامها أثناء عملية بناء المشاريع المعتمدة عليها. يستخدم ذلك الـBackdoor تقنيات معقدة تتضمن سلسلة تنفيذ من عدة مراحل. بالنهاية،سيتمكن المهاجم عن بعد من تنفيذ تعليمات برمجية عبر SSH. وهذا يعني أن أي جهاز يحتوي على الحزمة التي تم تضمينها ذلك الباب الخلفي من المحتمل أن يكون معرضاً لخطر الاختراق من الانترنت عبر SSH.
بناءاً على ما عرفناه حتى الأن عن طريقة عمل هذا الباب الخلفي والضرر البالغ الذي سببه زرعه في XZ فقد يكون من المناسب اعتبار اختراق SolarWinds -على فداحته- مجرد لعب أطفال. في حالتنا، كان المهاجمون قادرين تقريباً على الوصول الفوري إلى أي جهاز Linux.
بطل من هذا الزمان
لا بد من ضوء في آخر النفق. من المهم ألا يكون ذلك الضوء هو ضوء القطاء القادم لدهس عالم لينكس بأكمله. لحسن الحظ فإن فضول المهندس Andres Freund من شركة مايكرسوفت أوقف ما يمكن أن يكون كارثة بالمعنى التقني تهدد كل جهاز لينكس في العالم تقريباً. كان Andres يتحقق من تأخير مقدارة 500 مللي ثانية عانى منه بعد تحديث برنامج باستخدام حزمة xz. قاده ذلك لاكتشاف الباب الخلفي في تلك الحزمة. ومن الواضح أن هذا يثير الكثير من المخاوف. لو لم يساعد الفضول ذلك المهندس على اكتشاف الثغرة، فكم من الوقت كان سيظل الهجوم نشطاً؟ وماذا لو أن مثل هذه الحوادث الأمنية قد تكررت سابقاً دون أن يكتشفها أحد؟
بالعودة لأسباب ما حدث، يبدو أن جهة غير معروفة لاحظت أن مكتبة liblzma (المعروفة أيضاً باسم xz) تتداخل مع OpenSSH المستخدمة لإدارة ملايين خوادم لينكس في جميع أنحاء العالم. لم تكن هذه التبعية موجودة بسبب قرار متعمد من قبل مطوري OpenSSH ، ولكن بسبب الخلط الذي أضافته بعض توزيعات Linux. وبالتالي فإن من اخترع شخصية Jia Tan و استهدف المطور الأساسي للمشروع هو شخص أو جهة أمضى سنتين من العمل الدؤوب للوصول لهدفه وهو إضافة قناة سرية تسمح للمهاجمين بالوصول إلى جميع الخوادم المتأثرة.
إذا كان هذا الجدول الزمني صحيحاً، فإن ما حدث ليس من عمل الهواة. كان من الممكن لهواة يمتلكون هذا المستوى العالي من المهارات أن يجدوا عملاً براتب مرتفع بدل المخاطرة بدخول السجن عبر اختراق أكثر الأدوات شعبية في لينكس. تشير جميع الدلائل إلى أن هذه عملية احترافية مدفوعة الأجر، ولن يكون مفاجئاً أن من يقف وراءها هي جهة حكومية.
في البحث عن أسباب اختراق XZ
ربما من المبكر إلقاء اللوم أو توجيه الاتهام لأحد. لكن بعض النقاد يشيرون بأصابع الاتهام إلى العلاقة الاستغلالية بين شركات التكنولوجيا الكبرى ومجتمع المصادر المفتوحة. هم يزعمون أن حاجة مطوري المصادر المفتوحة OSS إلى المال توقعهم أحياناً في شباك المتصيدين من مجرمي الانترنت الذين يوظفون مهاراتهم لخدمة مشاريع ضارة. لكن ومع تأكيد أنه ليست دائماً العلاقة صحية بين تلك الشركات و مجتمع لينكس، فإنه يُلاحظ دعم الشركات للعديد من مشاريع برمجيات المصدر المفتوح إلى حد كبير.
يتقاضى عدد كبير من مطوري OSS رواتب من شركات التكنولوجيا الكبرى كما يتلقى آخرون منحاً لدعم مشاريعهم. وبالتالي فإن المشكلة الحقيقية أنه ليس هناك ما يمكن القيام به مع الكثير من مكتبات OSS الصغيرة التي تمت كتابتها منذ عقود من قبل شخص واحد. وفيما عدا إصلاحات الأخطاء، فإن هذا المكتبات من المفترض أن تتغير كثيراً. كما يحدث الشيء نفسه على الجانب الآخر، حتى مع وجود موظفين وأموال في شركات التكنولوجيا الكبرى، إذا كان لديك مكتبة لا تحتاج إلى أي اهتمام ، فإن “ملكية” هذا الكود تصبح نظرية وبالتالي تضعف المسؤولية والقدرة على المحاسبة.
كلمة أخيرة
في الوقت الراهن ينصح روبودين بمراجعة هذه المنصة لفهم الصورة كاملة وكذلك هذه الثغرة CVE-2024-3094 للمساعدة على اتخاذ الإجراءات الكفيلة بتقليل المخاطر. وفي الختام، ماذا نستنتج من كل ما سبق؟ يبدو، أن الباب الخلفي في xz ليس مشكلة فنية فقط وبالتالي ربما لا يمكن حلها بالتكنولوجيا وحدها. إن ما حدث يرقى إلى أن يكون من اختصاصات الحكومات وكبرى من الكيانات التجارية مثل مايكروسوفت التي تتمتع بقدرات مراقبة على مستوى عالي. لكن ماذا لو كان أولئك يعرفون بأمر الثغرة منذ فترة. هل كنا سنعلم؟