ثغرة Log4j، المعروفة أيضًا باسم Log4Shell، هي ثغرة خطيرة تم اكتشافها في مكتبة التسجيل Apache Log4j في نوفمبر 2021. تمنح Log4Shell المتسللين سيطرة كاملة على الأجهزة التي تشغل إصدارات Log4j غير المصححة.
يمكن للجهات الخبيثة استغلال ثغرة Log4j لتشغيل أي تعليمات برمجية تقريبًا على الأنظمة المعرضة للخطر.
يعتبر الباحثون Log4Shell ثغرة أمنية "كارثية" لكونها واسعة الانتشار، إذ يعد Log4J أحد أكثر البرامج مفتوحة المصدر استخداماً في العالم، وسهل استخدامه. أطلقت Jen Easterly، مديرة وكالة الأمن السيبراني وأمن البنية التحتية الأمريكية (CISA)، على هذا الأمر وصف "واحد من أخطر الأمور التي رأيتها في مسيرتي المهنية بأكملها، إن لم يكن الأخطر على الإطلاق".
غذّت Log4Shell موجة من الهجمات الإلكترونية في ديسمبر 2021. مؤشر X-Force Threat Intelligence Index من IBM سجل زيادة بنسبة 34% في استغلال الثغرات الأمنية بين عامي 2020 و2021، ويعزى ذلك بشكل أساسي إلى Log4Shell.
تم تصحيح Log4Shell بعد فترة وجيزة من اكتشافه ولكنه سيشكل خطراً لسنوات، لأن Log4J متغلغل بعمق في سلسلة توريد البرمجيات. تقدر وزارة الأمن الداخلي الأمريكية أن الأمر يستغرق عقدًا من الزمن على الأقل للعثور على كل ثغرة أمنية وإصلاحها.
Log4j هو إطار عمل للتسجيل تم تطويره بواسطة Apache Software Foundation. كما يوحي الاسم، فإن Log4J هو مسجّل. يقوم بتسجيل معلومات مهمة مثل رسائل الخطأ وإدخالات المستخدم في البرنامج.
Log4J هي مكتبة برمجيات مفتوحة المصدر، وهي حزمة من التعليمات البرمجية المكتوبة مسبقًا يمكن للمطورين استخدامها بحرية. فبدلاً من كتابة أدوات التسجيل الخاصة بهم، يمكن للمطورين دمج مكتبة Log4J في تطبيقاتهم. هذه السهولة هي سبب انتشار Log4j على نطاق واسع، حيث تم تضمينها في منتجات من مؤسسات كبرى مثل Microsoft و Amazon، على سبيل المثال لا الحصر.
Log4Shell، المعروف بمعرّف نقاط الضعف والتعرض الشائعة (CVE)، CVE-2021-44228، هو ثغرة أمنية تتيح تنفيذ تعليمات برمجية عن بُعد (RCE) موجودة في بعض إصدارات Log4J. ويؤثر الخلل في Apache Log4J 2 ، على الإصدارات 2.14.1 والإصدارات الأقدم. ولم تتأثر Log4J 2.15 والإصدارات الأحدث، وجميع إصدارات Apache Log4J 1.
Log4Shell ينشأ من كيفية معالجة الإصدارات القديمة من Log4J 2 لعمليات البحث في واجهة التسمية والدليل في Java (JNDI). JNDI هي واجهة برمجة تطبيقات (API) تستخدمها تطبيقات Java للوصول إلى الموارد المستضافة على خوادم خارجية. عملية بحث JNDI هي أمر يوجه التطبيق للذهاب إلى خادم وتنزيل كائن محدد، مثل جزء من البيانات أو برنامج نصي. تعمل الإصدارات الأقدم من Log4J 2 تلقائيًا على تشغيل أي تعليمات برمجية يتم تنزيلها بهذه الطريقة.
يمكن للمستخدمين إرسال عمليات بحث JNDI إلى الإصدارات الضعيفة من Log4J عن طريق تضمينها في رسائل السجل. القيام بذلك بسيط. على سبيل المثال، في الإصدارات القديمة من Minecraft Java Edition، والتي تستخدم Log4J لتسجيل رسائل المستخدم، يمكن للمستخدم كتابة بحث JNDI في نافذة الدردشة العامة.
يمكن للمخترقين استخدام وظيفة JNDI هذه لتشغيل تعليمات برمجية عشوائية خبيثة عن بُعد. أولًا، يقوم المتسلل بإعداد خادم يستخدم بروتوكولًا شائعًا، مثل بروتوكول الوصول الخفيف للملفات (LDAP) لتجنب لفت الانتباه. بعد ذلك، يقومون بتخزين حمولة ضارة على هذا الخادم، مثل ملف برنامج ضار . وأخيرًا، يرسلون بحثًا عن JNDI إلى برنامج، ويطلبون منه الانتقال إلى خادم LDAP الخاص بالمهاجم، وتنزيل الحمولة، وتشغيل التعليمات البرمجية.
اكتشف باحثو الأمن في شركة التكنولوجيا العملاقة Alibaba ثغرة Log4Shell في 24 نوفمبر 2021. وقد حصل على الفور على أعلى درجة ممكنة في نظام تقييم الثغرات الأمنية المشترك (CVSS): 10 من 10. وقد ساهمت بعض العوامل في هذا التصنيف.
بحلول 9 ديسمبر 2021، نُشرت تعليمات برمجية لإثبات المفهوم حول كيفية استخدام Log4Shell على GitHub، وكان المتسللون يشنون الهجمات. تعرضت شركات وخدمات كبرى مثل Minecraft و Twitter و Cisco للخطر. في ذروة نشاط Log4Shell، لاحظت Check Point أكثر من 100 هجوم كل دقيقة، مما أثر على أكثر من 40% من جميع شبكات الأعمال على مستوى العالم.
هاجمت الهجمات الأولى البرامج الضارة لشبكات الروبوتات وتعدين العملات المشفرة. استخدم بعض المتسللين هذا الخلل لبدء هجمات بدون ملفات، حيث أرسلوا نصوصًا برمجية ضارة إلى أجهزة الكمبيوتر التي تعمل بنظامي التشغيل Windows و Linux لجعلها تفصح عن كلمات المرور والمعلومات الحساسة الأخرى.
تم ضبط العديد من عصابات برامج الفدية على Log4Shell. والجدير بالذكر أن المتسللين نشروا سلالة برنامج الفدية Khonsari من خلال Minecraft. استهدف برنامج الفدية Night Sky الأنظمة التي تشغل VMware Horizon.
حتى الجهات الفاعلة من الدول القومية انضمت إلى ذلك. وشوهد متسللين مرتبطين بالصين وإيران وكوريا الشمالية وتركيا يستخدمون الثغرة الأمنية.
أطلقت Apache أول تصحيح (الإصدار 2.15.0 من Log4J) في 10 ديسمبر 2021. ومع ذلك، ترك هذا التصحيح ثغرة أمنية أخرى مكشوفة، CVE-2021-45046، والتي سمحت للمتسللين بإرسال أوامر ضارة إلى السجلات باستخدام إعدادات معينة غير افتراضية.
أصدرت Apache تصحيحًا ثانيًا (الإصدار 2.16.0 من Log4J) في 14 ديسمبر 2021. كان به أيضا عيب، CVE-2021-45105، مما سمح للمتسللين ببدء هجمات لحجب الخدمة (DoS).
التصحيح الثالث، Log4J الإصدار 2.17، أصلح ثغرة DoS ولكنه ترك ثغرة أخيرة، CVE-2021-44832، سمحت للمخترقين بالسيطرة على مكون Log4J يسمى "appender" لتشغيل تعليمات برمجية عن بُعد. عالجت Apache هذا الخلل بالتصحيح الرابع والنهائي، وهو الإصدار 2.17.1 من Log4J.
بينما أغلق Log4j 2.17.1 ثغرة Log4Shell وجميع الثغرات الأمنية ذات الصلة بها من جانب Apache، لا تزال التهديدات الإلكترونية تستغل هذا الخلل. في الآونة الأخيرة في مايو 2023، ظلت Log4Shell واحدة من أكثر الثغرات الأمنية استخدامًا.
يستمر Log4Shell لعدة أسباب.
أولاً، يكمن Log4J عميقًا في سلاسل توريد البرامج للعديد من الشركات. فاليوم، تُبنى العديد من التطبيقات بتجميع مكتبات برمجيات مفتوحة المصدر موجودة مسبقًا. هذه العملية مريحة، لكنها تعني أيضًا أن المؤسسات لديها رؤية محدودة لجميع المكونات التي تشكل تطبيقاتها. ويمكن بسهولة التغاضي عن الإصدارات القديمة من Log4J.
عندما يتم تصحيح إصدار ضعيف من Log4J ، فإنه لا يبقى دائمًا مصححًا. في نوفمبر 2022، أفادت Tenable أن 29% من الأصول التي لا تزال عرضة لـ Log4Shell كانت "حالات متكررة". وقد تم تصحيحها في الماضي، لكن الخلل ظهر مرة أخرى. يحدث هذا السيناريو لأنه عندما يقوم الأشخاص بإنشاء التطبيقات أو تحديثها، فإنهم أحيانًا يستخدمون عن طريق الخطأ مكتبات برمجية لا تزال تحتوي على إصدارات لم يتم تصحيحها من Log4J.
أخيرًا، طوّر المتسللون طريقة ذكية لإخفاء آثارهم. ووفقًا لوكالة CISA، يستخدم بعض المتسللين ثغرة Log4Shell لاختراق الشبكة، ثم يقومون بتصحيح الأصل. تعتقد الشركة أنها آمنة، لكن المتسللين موجودون بالفعل في الداخل.
أحدث إصدارات Log4J خالية من Log4Shell. يوصي الخبراء الأمن الإلكتروني بأن تركز فرق الأمان على ضمان أن جميع مثيلات Log4J في أنظمتهم حديثة.
يمكن أن يكون تحديث Log4J عملية بطيئة، حيث تحتاج الشركات غالبًا إلى التعمق في أصولها لتحديث الأصل. وفي الوقت نفسه، يمكن لفرق الأمن استخدام أدوات فحص الثغرات الأمنية واكتشاف التهديدات بشكل مستمر مثل منصات إدارة سطح الهجوم (ASM) و كشف نقطة النهاية والاستجابة لها لمراقبة الأصول المواجهة للإنترنت. يوصي الخبراء بأن تقوم فرق الاستجابة للحوادث بالتحقيق بشكل شامل في أي تلميح لنشاط Log4Shell.
بعد انتشار Log4Shell، أضافت العديد من جدران الحماية وأنظمة كشف التسلل (IDS) وأنظمة منع التسلل (IPS) قواعد لاكتشاف استغلال Log4Shell. يمكن لهذه الأدوات مساعدة فرق الأمن في اكتشاف وحظر حركة المرور القادمة من الخوادم التي يتحكم بها المهاجمون.
18 يوليو 2013: أصدرت Apache إصدار Log4J 2.0-beta9، وهو الإصدار الأول الذي يدعم المكون الإضافي JNDI. على الرغم من أن الثغرة الأمنية لن يتم اكتشافها إلا بعد سنوات، إلا أن Log4Shell موجود من هذه اللحظة فصاعدًا.
24 نوفمبر 2021: يكتشف باحثون أمنيون من Alibaba ثغرة Log4Shell ويبلغون Apache بها. بدأت Apache العمل على تصحيح، لكنها لم تصدر تحذيرًا أمنيًا عامًا.
9 ديسمبر 2021: يعثر باحثون أمنيون من شركة Alibaba على دليل على مناقشة Log4Shell علنًا، وتم نشر رمز استغلال لإثبات المفهوم على GitHub.
10 ديسمبر 2021: أصدرت Apache التصحيح الأول، ويكتشف مطورو Minecraft ثغرة Log4Shell في "Minecraft Java Edition". سرعان ما يدرك مجتمع الأمن الإلكتروني خطورة الموقف، وتبدأ المؤسسات في التدافع لتأمين أنظمتها.
11 ديسمبر 2021: وجدت Cloudflare أدلة على أن عناصر التهديد بدأت في استغلال Log4Shell في وقت أبكر مما كان يُعتقد في البداية، في 1 ديسمبر.
14 ديسمبر 2021: تم اكتشاف CVE-2021-45046، وأصدرت Apache تصحيحًا لمعالجتها.
17 ديسمبر 2021: تم اكتشاف CVE-2021-45105، وأصدرت Apache تصحيحًا لمعالجتها.
28 ديسمبر 2021: تم اكتشاف CVE-2021-44832، وأصدرت Apache تصحيحًا نهائيًا. اعتبارًا من Log4j الإصدار 2.17.1 فصاعدًا، تم إصلاح Log4Shell بالكامل.
4 يناير 2022: أعلنت لجنة التجارة الفيدرالية الأمريكية (FTC) أنها تعتزم ملاحقة أي شركات تعرّض بيانات المستهلكين للمتسللين لأنها فشلت في معالجة Log4Shell.
مايو 2023: وجدت شركة Check Point أن ثغرة Log4Shell لا تزال ثاني أكثر الثغرات استغلالاً.