📁 آخر الأخبار

خطر خفي في عمق لينكس : كيف كشفت ثغرة XZ Utils عن هجوم سلسلة التوريد وكيف تحمي أنظمتك

في مارس 2024 تم الكشف عن ثغرة أمنية خطيرة في حزمة XZ Utils وهي أداة لضغط وفك ضغط البيانات تستخدمها معظم توزيعات Linux. الثغرة كانت عبارة عن كود خبيث مدسوس داخل الإصدارات 5.6.0 و5.6.1 من الحزمة، مما جعلها تمثل خطر أمني فوري على الأنظمة التي تعتمد عليها خاصة عندما تكون خدمة SSH مفتوحة. 
هذا الموضوع يشرح الحادثة بأسلوب عملي، يوضح سبب حدوثها، الآثار المحتملة، خطوات الفحص، وكيف تقوم بإصلاح وحماية أنظمتك. سأستخدم أمثلة حقيقية من تقارير موثوقة وتوجيهات الأمان المعتمدة.
ما هي XZ Utils ولماذا هي مهمة؟
XZ Utils هي مجموعة أدوات لضغط البيانات تعمل في بيئة Unix وLinux. تشمل هذه الأدوات:
  • أمر `xz` لضغط الملفات
  • مكتبة `liblzma` التي تستخدمها برامج كثيرة لضغط الملفات
  • أدوات مساعدة أخرى مثل `unxz` و `lzma`
هذه الأدوات يتم تضمينها تلقائيا في توزيعات Linux المختلفة، وتستخدم في بناء حزم البرمجيات، تحميل الصور،
 واستخدامت تطوير كثيرة. 
قد لا تكون الأداة نفسها هدف “مثير” للهاكرز، لكن بما أنها أساسية في سير عمل النظام، فإن أي ثغرة فيها تصل
 إلى آلاف الأنظمة حول العالم.
ما هي الثغرة CVE—2024—3094؟
في مارس 2024 تم الإعلان رسميا عن ثغرة إمداد سلسلة التوريد (supply chain) داخل مكتبة XZ Utils. 
يتم تتبع هذه الثغرة برمز CVE—2024—3094 وتم إعطاؤها أعلى درجة خطورة ممكنة (10/10).
سبب الثغرة ضمن الإصدارات:
  • الإصدارات المتأثرة هي5.6.0 و 5.6.1 من XZ Utils.
  • الكود الضار لم يكن جزءا من المشروع الأصلي في المخزن البرمجي، لكن تم توفره في ملفات tarballs التي توزع الحزمة.
  • هذا يعني أن من قام ببناء الحزمة من التوزيعات تلقى الكود الخبيث دون أن يكتشفه في كثير من الحالات. 
كيف يعمل الكود الخبيث؟

الكود لا يظهر بشكل صريح عند تفحص السورس. بدلا من ذلك، يوجد ملف اختبار مخفي (disguised test file) يتم فعله فقط أثناء مرحلة بناء liblzma. هذا يجعل من الصعب اكتشاف الكود بواسطة الفحص العادي للسورس قبل البناء. 
بمجرد أن يتم بناء liblzma بالكود الخبيث، يمكن لهذا الكود تعديل وظائف داخل مكتبة الضغط، وبما أن liblzma يرتبط بعدة برامج أخرى بما في ذلك OpenSSH daemon (sshd) في بعض الإعدادات، فإن المهاجم يمكنه الوصول إلى النظام وتنفيذ أوامر عن بعد عندما تتوافر ظروف معينة. 
كيف تم اكتشاف الثغرة؟
المكتشف الأساسي كان مهندس أمن برمجيات في أحد المشاريع المفتوحة، لاحظ سلوك غير طبيعي في أداء liblzma أثناء تحليل مشاكل في SSH، ثم تبين أن المشكلة كانت نتيجة كود خبيث ضمن مكتبة liblzma في XZ Utils. ([vulnera.com][1])
اكتشاف مثل هذه التفاصيل العملية يُظهر قيمة التحليل الدقيق للاداء وليس الاعتماد فقط على الفحص السطحي للشفرة.
ما هي آثار الصفقة؟
خطر الوصول غير المصرح به
الكود الخبيث فيه آلية يمكنها تحطيم مصادقة SSH في حالة معينة ومن ثم تنفيذ أوامر على النظام. 
اعتماد واسع
الحزمة جزء من توزيعات متعددة تشمل Fedora، Debian، openSUSE، و Kali Linux في فروع التطوير / غير المستقرة. 
تأثير قليل في الإنتاج
على الرغم من الانتشار النظري، النسخ المتأثرة لم تصل بعد إلى العديد من الإصدارات المستقرة الشائعة مثل Ubuntu LTS أو RHEL التقليدي في وقت الكشف، مما قلل انتشارها. 
خطوات عملية لتعرف إن نظامك تضرر
1. تأكد من إصدار XZ Utils
في توزيعات مدعومة استخدم:
 xz --version
إذا ظهرت 5.6.0 أو 5.6.1 فهذا مؤشر أولي على الإصدار المتأثر. 
2. استخدم إدارة الحزم
بدلا من الاعتماد على رقم النسخة فقط، تأكد من إدارة الحزم:
في Debian/Ubuntu:
apt list --installed | grep xz-utils
في Fedora/openSUSE:
dnf list installed | grep xz
إذا كانت النسخة ضمن 5.6.x، ضع هذا في قائمة التهديدات. 
3. راجع سجل SSH
إذا كان النظام يواجه أوامر غير مصرح بها في سجل sshd أو سجلات غير معتادة في `/var/log/auth.log` اساسها SSH،
 فقد تكون علامة على استغلال.
4. تحقق من سياق البناء
إذا كان النظام يستخدم بنية مخصصة لبناء هذه الحزمة (source builds أو CI/CD)، فراجع عملية البناء كاملة، 
وربما أعد بناءها من مصادر موثوقة.
خطوات إصلاح وحماية الأنظمة
إيقاف تشغيل النسخ المتأثرة
الأكثر فاعلية هو الرجوع إلى إصدار آمن مثل 5.4.6 أو ما قبله:
في Debian/Ubuntu:
sudo apt install xz-utils=5.4.6
وفي Fedora:
sudo dnf downgrade xz
تأكد من أن مدير الحزم لا يعيد ترقية الإصدار الخبيث.
تحديث التوزيعة بالكامل
بعد الرجوع إلى إصدار آمن، قم بتحديث بقية النظام:
sudo apt update
sudo apt upgrade
مراجعة إعدادات SSH
  • أغلق منفذ SSH إذا لم يكن ضروريا.
  • استخدم جدران حماية لحجب الاتصال من عناوين غير موثوقة.
  • استخدم مصادقة بمفتاح فقط بدون كلمات المرور.
مراقبة السلوك

راقب سجلات النظام وأدوات IDS/IPS لتحديد أي نشاط غير معتاد.
دروس عملية من الحادث
1. لا تعتمد على الثقة فقط في الجهات الموثوقة
الحزمة كانت معتمدة من المجتمع لكن تم استغلال ذلك لبناء كود خبيث. ([vulnera.com][1])
2. فحص الأداء مهم
اكتشاف الثغرة بدأ من ملاحظة سلوك غير طبيعي في الأداء وليس فقط من فحص الشفرة. ([Reddit][8])
3. كن مستعد لإجراءات إنقاذ سريعة
الهجمات على سلسلة التوريد تحتاج خطط استجابة احترافية تشمل الرجوع إلى نسخ آمنة وفحص الأنظمة المشتبه بها.
حادث XZ Utils CVE—2024—3094 يوضح خطر ثغرات سلسلة التوريد في البرمجيات المفتوحة. هذا الحادث تبين أن مجرد وجود كود موثوق في مشروع مفتوح لا يعني أنه آمن. إذا كنت مسؤول نظام، تأكد من فحص الإصدارات، تحديث الأنظمة، واتباع خطوات الحماية التي ذكرتها. هذه الإجراءات هي استثمار في أمان بياناتك وبيئتك الإنتاجية.
تعليقات