ثغرة أمنية في Apache Tomcat تسمح باستبدال كود JSP والحصول على ملفات تطبيقات الويب

حدد باحثون من شركة Chaitin Tech الصينية عالي التأثر (CVE-2020-1938) في اباتشي هر، وهو تطبيق مفتوح المصدر لتقنيات Java Servlet و JavaServer Pages و Java Expression Language وتقنيات Java WebSocket. تم إعطاء الثغرة الاسم الرمزي Ghostcat ومستوى خطورة حرج (9.8 CVSS). تسمح المشكلة ، في التكوين الافتراضي ، بإرسال طلب إلى منفذ الشبكة 8009 ، لقراءة محتويات أي ملفات من دليل تطبيق الويب ، بما في ذلك الملفات ذات الإعدادات ورموز مصدر التطبيق.

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

توجد الثغرة الأمنية في بروتوكول AJP ، و لا يسمى خطأ في التنفيذ. بالإضافة إلى قبول الاتصالات عبر HTTP (المنفذ 8080) ، يسمح Apache Tomcat افتراضيًا بالوصول إلى تطبيق الويب عبر بروتوكول AJP (بروتوكول Apache JServ، المنفذ 8009) ، وهو مكافئ ثنائي محسّن للأداء لـ HTTP ، شائع الاستخدام عند إنشاء مجموعة من خوادم Tomcat أو لتسريع الاتصال مع Tomcat على وكيل عكسي أو موازن تحميل.

يوفر AJP وظيفة قياسية للوصول إلى الملفات الموجودة على الخادم ، والتي يمكن استخدامها ، بما في ذلك الحصول على الملفات التي لا تخضع للكشف. من المفترض أن يكون الوصول إلى AJP متاحًا فقط للخوادم الموثوقة ، ولكن في الواقع كان التكوين الافتراضي لـ Tomcat هو تشغيل المعالج على جميع واجهات الشبكة وقبول الطلبات بدون مصادقة. يمكن الوصول إلى أي ملفات تطبيقات ويب ، بما في ذلك محتويات WEB-INF و META-INF وأي أدلة أخرى يتم تقديمها من خلال استدعاء ServletContext.getResourceAsStream (). يتيح لك AJP أيضًا استخدام أي ملف في الدلائل التي يمكن الوصول إليها لتطبيق الويب كنص JSP.

لقد ظهرت المشكلة منذ إصدار فرع Tomcat 13.x منذ 6 عامًا. ماعدا مشكلة Tomcat مباشرة يؤثر والمنتجات التي تستخدمها ، مثل Red Hat JBoss Web Server (JWS) و JBoss Enterprise Application Platform (EAP) ، بالإضافة إلى تطبيقات الويب المستقلة التي تستخدم التمهيد الربيع. ثغرة أمنية مماثلة (CVE-2020-1745) حاضر في خادم الويب تيار تحتيالمستخدمة في خادم تطبيق Wildfly. في JBoss و Wildfly ، لا يتم تمكين بروتوكول AJP إلا افتراضيًا في ملفات التعريف المستقلة-full-ha.xml و standalone-ha.xml و ha / full-ha في domain.xml. في Spring Boot ، يتم تعطيل دعم AJP افتراضيًا. تم إعداد أكثر من اثني عشر نموذجًا عمليًا لبرمجيات إكسبلويت من قبل مجموعات مختلفة (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

تم إصلاح الضعف في إصدارات Tomcat 9.0.31, 8.5.51 и 7.0.100 (فرع الصيانة 6.x منتهية). يمكنك متابعة مظهر التحديثات في التوزيعات على هذه الصفحات: ديبيان, أوبونتو, RHEL, فيدورا, SUSE, فري. كحل بديل ، يمكنك تعطيل خدمة Tomcat AJP Connector (ربط مأخذ الاستماع بالمضيف المحلي أو التعليق على السطر بمنفذ الموصل = "8009") إذا لم تكن هناك حاجة ، أو اقامة الوصول المصادق عليه باستخدام السمات "السرية" و "العنوان" ، إذا تم استخدام الخدمة للتفاعل مع الخوادم والوكلاء الآخرين بناءً على mod_jk و mod_proxy_ajp (لا يدعم mod_cluster المصادقة).

المصدر: opennet.ru

إضافة تعليق