ثغرة أمنية حرجة في مكتبة Java Log4j: تهديد لملايين التطبيقات

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

ثغرة أمنية حرجة في مكتبة Java الشهيرة Log4j: تهديد لملايين التطبيقات



في نهاية عام 2021، هزّ خبر الثغرة الأمنية الحرجة في مكتبة Log4j عالم مطوري Java — وهي واحدة من أشهر أدوات تسجيل الأحداث (logging) في تطبيقات Java. الثغرة، التي حصلت على المعرف CVE-2021-44228، تم تقييمها بأعلى درجة 10.0 على مقياس CVSS (نظام تقييم الثغرات الأمنية الشائع). وهذا يعني أنها تمثل تهديدًا حرجًا يسمح للمهاجم بتنفيذ تعليمات برمجية عشوائية عن بُعد على الخادم.



ما هي Log4j ولماذا هي مهمة؟

Apache Log4j هي مكتبة مفتوحة المصدر تُستخدم في الغالبية العظمى من مشاريع Java: بدءًا من تطبيقات الويب الصغيرة وصولاً إلى الأنظمة المؤسسية والخدمات السحابية. وفقًا لتقديرات الخبراء، تُستخدم Log4j في ملايين التطبيقات حول العالم، بما في ذلك عمالقة مثل Amazon وTwitter وMinecraft وغيرها الكثير.



كيف تعمل الثغرة؟

تكمن المشكلة في JNDI (واجهة تسمية ودليل Java) — وهي وظيفة مدمجة في Log4j تسمح بإدراج متغيرات من مصادر خارجية. تسمح الثغرة للمهاجم بما يلي:

  • تنفيذ تعليمات برمجية عشوائية على الخادم، عن طريق إرسال سلسلة نصية مصممة خصيصًا في أي حقل يتم تسجيله بواسطة التطبيق (مثل حقل "اسم المستخدم" أو "User-Agent" في طلب HTTP).
  • الحصول على سيطرة كاملة على الخادم، بما في ذلك سرقة البيانات، أو تثبيت برامج ضارة، أو استخدام موارد الخادم لشن هجمات على أنظمة أخرى.
  • تنفيذ هجوم دون ترك أي أثر تقريبًا — يكفي فقط إرسال طلب HTTP يحتوي على سلسلة نصية ضارة.


ما هي الإصدارات المتأثرة؟

تؤثر الثغرة على جميع إصدارات Log4j 2.x من 2.0-beta9 إلى 2.14.1. كما أن إصدارات Log4j 1.x بها مشاكل أيضًا، لكنها غير مدعومة منذ عام 2015 وتعتبر أيضًا عرضة للخطر. يُوصى بتحديث المكتبة فورًا إلى الإصدار 2.15.0 أو أعلى.



كيف تحمي مشاريعك؟

يجب على المطورين اتخاذ الخطوات التالية:

  • تحديث Log4j إلى أحدث إصدار مستقر (حاليًا 2.17.0 أو أعلى).
  • فحص جميع التبعيات في المشروع — العديد من المكتبات تتضمن Log4j كتبعية غير مباشرة (transitive dependency).
  • تعطيل JNDI lookup في الإعدادات إذا كان التحديث غير ممكن: قم بتعيين الخاصية النظامية log4j2.formatMsgNoLookups=true.
  • استخدام جدار الحماية وWAF (جدار حماية تطبيقات الويب) لحظر الطلبات الضارة.


دروس للمجتمع

كان حادث Log4j درسًا قاسيًا لمجتمع تكنولوجيا المعلومات بأكمله. لقد أظهر الأهمية القصوى لتحديث التبعيات في الوقت المناسب ومراقبة أمانها. حتى المكتبة الأكثر شهرة واختبارًا قد تحتوي على ثغرات مخفية. التدقيق الأمني المنتظم، واستخدام أدوات فحص التبعيات (مثل OWASP Dependency-Check)، والاستجابة السريعة لـ CVE ليست رفاهية، بل ضرورة لكل مطور.



تابع الأخبار على PythonLib لتبقى على اطلاع

المكتبات الموصى بها