JSP кодыг орлуулах, вэб програмын файлуудыг авах боломжийг олгодог Apache Tomcat-ийн эмзэг байдал

Хятадын Chaitin Tech компанийн судлаачид илрүүлжээ эмзэг байдал (CVE-2020-1938) -д Apache Tomcat, Java Servlet, JavaServer Pages, Java Expression Language болон Java WebSocket технологийн нээлттэй хэрэгжилт. Энэ эмзэг байдалд Ghostcat кодын нэр өгсөн бөгөөд ноцтой байдлын түвшин (9.8 CVSS). Асуудал нь анхдагч тохиргоонд 8009 сүлжээний порт дээр хүсэлт илгээснээр тохиргоо болон програмын эх код бүхий файлуудыг оруулаад вэб програмын лавлахаас дурын файлын агуулгыг унших боломжийг олгодог.

Энэ эмзэг байдал нь програмын код руу бусад файлуудыг импортлох боломжийг олгодог бөгөөд хэрэв програм нь файлуудыг серверт байршуулахыг зөвшөөрвөл сервер дээр код гүйцэтгэх боломжийг олгодог (жишээлбэл, халдагчид JSP скриптийг зураг хэлбэрээр далдалсан байдлаар байршуулж болно. зураг байршуулах маягт). AJP зохицуулагчтай сүлжээний порт руу хүсэлт илгээх боломжтой үед халдлага хийж болно. Урьдчилсан мэдээллээр онлайн олдсон AJP протоколоор дамжуулан хүсэлтийг хүлээн авсан 1.2 сая гаруй хост.

Энэ эмзэг байдал нь AJP протоколд байдаг ба дуудаагүй хэрэгжилтийн алдаа. Apache Tomcat нь HTTP (порт 8080)-ээр дамжуулан холболтыг хүлээн авахаас гадна анхдагчаар AJP протоколоор дамжуулан вэб программд хандах боломжийг олгодог.Apache Jserv протокол, порт 8009) нь HTTP-ийн хоёртын аналог бөгөөд илүү өндөр гүйцэтгэлтэй байхаар оновчтой бөгөөд ихэвчлэн Tomcat серверүүдийн кластер үүсгэх эсвэл урвуу прокси эсвэл ачааллын тэнцвэржүүлэгч дээр Tomcat-тай харилцах ажлыг хурдасгахад ашиглагддаг.

AJP нь сервер дээрх файлуудад хандах стандарт функцээр хангадаг бөгөөд үүнийг задруулах боломжгүй файлуудыг олж авах зэрэг ашиглаж болно. AJP нь зөвхөн итгэмжлэгдсэн серверүүдэд хандах боломжтой байх ёстой боловч үнэндээ Tomcat-ийн анхдагч тохиргоо нь бүх сүлжээний интерфейс дээр зохицуулагчийг ажиллуулж, баталгаажуулалтгүйгээр хүсэлтийг хүлээн авдаг. WEB-INF, META-INF болон ServletContext.getResourceAsStream() руу залгаж өгсөн бусад лавлах агуулгыг багтаасан дурын вэб програмын файлд хандах боломжтой. AJP нь вэб програмд ​​​​хэрэглэх боломжтой сангуудын дурын файлыг JSP скрипт болгон ашиглах боломжийг олгодог.

Энэ асуудал 13 жилийн өмнө гарсан Tomcat 6.x салбараас хойш гарч ирсэн. Tomcat-ийн асуудлаас гадна нөлөөлдөг Red Hat JBoss Web Server (JWS), JBoss Enterprise Application Platform (EAP) зэрэг үүнийг ашигладаг бүтээгдэхүүнүүд, мөн үүнийг ашигладаг бие даасан вэб програмууд Хавар ачаалах. Үүнтэй төстэй эмзэг байдал (CVE-2020-1745) байгаа вэб серверт Доорх, Wildfly програмын серверт ашиглагддаг. JBoss болон Wildfly-д AJP нь зөвхөн domain.xml доторх бие даасан full-ha.xml, standalone-ha.xml болон ha/full-ha профайлуудад анхдагчаар идэвхждэг. 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 салбарын засвар үйлчилгээ зогсоосон). Та эдгээр хуудаснаас түгээлтийн иж бүрдэлд шинэчлэлт байгаа эсэхийг хянах боломжтой: Debian, Ubuntu, RHEL, Федора, Сүйрэл, FreeBSD-ийн. Товч шийдэл болгон, хэрэв шаардлагагүй бол та Tomcat AJP Connector үйлчилгээг идэвхгүй болгож болно (сонсох залгуурыг localhost руу холбох эсвэл Connector port = "8009" гэсэн мөрийг тайлбарлах), эсвэл тохируулах Хэрэв үйлчилгээг mod_jk болон mod_proxy_ajp (mod_cluster нь нэвтрэлт танилтыг дэмждэггүй) дээр суурилсан бусад серверүүд болон прокситэй харилцахад ашигладаг бол "нууц" ба "хаяг" шинж чанаруудыг ашиглан баталгаажуулсан хандалт.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх