
أداة فحص وتصحيح للثغرة CVE-2021-44228 والمخاوف ذات الصلة بـ log4j.
روابط لتحميل أحدث إصدار:
| Linux x64 مع glibc2.17+ (RHEL7+) | Windows وجميع المنصات الأخرى |
|---|---|
| تحميل ثنائي Linux | تحميل Java .jar |
🚑 ملاحظة: يجب على عملاء SAS الراغبين في تصحيح نشرات SAS 9.4 أو SAS Viya 3.x اتباع التعليمات المحددة الواردة في وثائق مركز مساعدة SAS.
هذا المشروع هو فرع مبكر من logpresso/CVE-2021-44228-Scanner، تم تعديله في البداية لفحص الأرشيفات بشكل متكرر وإضافة دعم لضغط tar/gz. منذ التفرع، تطور المشروع بالتوازي مع المشروع الأصلي وينفذ العديد من الميزات المشابهة، على الرغم من إعادة كتابة معظم الكود. بينما تم استبدال وظيفة "الإصلاح" الأصلية بطريقة patch تدعم بعض الحالات المتداخلة العميقة وتكون أكثر تسامحًا مع الفشل والتراجع، فإن آلية الكشف (أمر scan) تستمر في العمل بطريقة مشابهة جدًا للأصل.
يمكنك تنزيل نسخة من الأداة من صفحة الإصدارات أو باتباع الروابط في أعلى هذه الصفحة. الصورة الأصلية هي ملف تنفيذي مستقل يعمل على EL7 والإصدارات الأحدث. يمكن تشغيل ملف jar باستخدام java -jar على JRE 1.8+. هذه حاليًا أفضل طريقة لتشغيله على المنصات الأخرى والإصدارات الأقدم من glibc (بما في ذلك Windows وAIX وSolaris وغيرها).
بعد تنزيل الصورة الأصلية، من الضروري تنفيذ chmod +x على الملف قبل تشغيله.
بناء جملة الأوامر هو نفسه سواء قمت باستدعاء ملف .jar أو الملف التنفيذي الأصلي. على سبيل المثال، هذا:
./loguccino help
مطابق وظيفيًا لهذا
java -jar ./loguccino-all.jar help
يوفر أمر loguccino help توثيقًا للأوامر المتاحة.
./loguccino scan /path/to/approot
سيؤدي هذا إلى اجتياز جميع الدلائل الفرعية في /path/to/approot، بما في ذلك الاجتياز المتكرر لجميع الأرشيفات المتداخلة .tar.gz و.tgz و.tar و.zip و.ear و.war و.jar.
سيتم إنشاء ملف .csv باسم loguccino-scan-[datetime].csv في دليل العمل، يحتوي على البيانات التالية:
/opt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear/install/deploy/21w47SASConfig/Lev5/Web/Staging/sas.webreportstudio4.4.21w47AIX.earopt/sas/config/Lev1/Web/Staging/sas.webreportstudio4.4.21w47AIX.ear::sas.webreportstudio.war::WEB-INF/lib/log4j-core-2.1.jarمزيد من المعلومات حول أمر الفحص متاح عبر ./loguccino help scan.
إذا تم العثور على ثغرات، يتم استخدام loguccino-scan-[datetime].csv كمدخل لأمر التصحيح:
./loguccino patch ./loguccino-scan-23122021003311.csv
يقوم هذا بإزالة كل ثغرة تم العثور عليها، وينشئ دليل loguccino-patch-[timestamp] يحتوي على نسخة احتياطية من كل ملف تم تصحيحه. حيث تم تصحيح ملف لثغرات متعددة (مثل أرشيف نسخ احتياطي أكبر يحتوي على أدوات أو إصدارات برامج متعددة)، يتم نسخ إصدارات متعددة من الملف المصحح احتياطيًا في كل مرحلة من العملية لتمكين التراجع المرحلي في حالة الفشل.
ملاحظة:
تصحيح ملف على القرص لا يصحح إصدار البرنامج الذي يعمل بالفعل على المضيف. تذكر أنه يجب عليك إيقاف الخدمات / التطبيقات ذات الصلة قبل التصحيح وإعادة تشغيلها بعد التصحيح حتى تدخل التغييرات حيز التنفيذ.
مزيد من المعلومات حول أمر التصحيح متاح عبر ./loguccino help patch.
عند فحص الثغرات، قد يتم الإبلاغ عن بعض الأرشيفات على أنها تالفة (يحدث هذا أيضًا مع الأرشيفات المتداخلة حيث لا تتطابق طرق الضغط مع امتداد الأرشيف). سيقوم أمر الفحص بطباعة المسار إلى هذه الأرشيفات في logpresso-scan-[datetime].log. إذا اعتُبرت مهمة، يجب فك ضغط هذه الأرشيفات وفحصها (أو مسحها) يدويًا للتأكد من أنها تالفة بالفعل.
إذا واجهت أي أخطاء أو سلوك غير متوقع، يرجى فتح مشكلة وإرفاق أي خطوات لإعادة إنتاج الخطأ إلى جانب معلومات أساسية أخرى.
طلبات السحب والتحديثات على الكود مرحب بها ومشجعة.