Az Apache Tomcat biztonsági rése, amely lehetővé teszi a JSP-kód helyettesítését és a webalkalmazás-fájlok letöltését

A kínai Chaitin Tech cég kutatói felfedezték sebezhetőség (CVE-2020 1938-) Apache Tomcat, a Java Servlet, a JavaServer Pages, a Java Expression Language és a Java WebSocket technológiák nyílt megvalósítása. A sérülékenységhez Ghostcat kódnevet és kritikus súlyossági szintet (9.8 CVSS) rendeltek. A probléma az alapértelmezett konfigurációban lehetővé teszi, hogy a 8009-es hálózati porton küldjön egy kérést, hogy a webalkalmazás-könyvtárban lévő fájlokat beolvassa, beleértve a beállításokat és az alkalmazás forráskódjait is.

A sérülékenység más fájlok importálását is lehetővé teszi az alkalmazás kódjába, ami lehetővé teszi a kód futtatását a szerveren, ha az alkalmazás lehetővé teszi fájlok feltöltését a szerverre (például a támadó egy képnek álcázott JSP-szkriptet tölthet fel a képfeltöltési űrlap). A támadás akkor hajtható végre, ha egy AJP-kezelővel lehet kérést küldeni egy hálózati portra. Az előzetes adatok szerint online megtalált több mint 1.2 millió gazdagép fogad el kéréseket az AJP protokollon keresztül.

A biztonsági rés az AJP protokollban található, és nem hívták hiba a megvalósításban. A HTTP-n (8080-as porton) keresztüli kapcsolatok elfogadása mellett az Apache Tomcat alapértelmezés szerint lehetővé teszi a webalkalmazások elérését az AJP protokollon keresztül (Apache Jserv protokoll, 8009-es port), amely a HTTP bináris analógja, nagyobb teljesítményre optimalizálva, és általában Tomcat-kiszolgálók fürtjének létrehozásakor vagy a Tomcattel való interakció felgyorsítására szolgál fordított proxyn vagy terheléselosztón.

Az AJP szabványos funkciót biztosít a kiszolgálón lévő fájlok eléréséhez, amelyek felhasználhatók, beleértve a nyilvánosságra hozatal hatálya alá nem tartozó fájlok megszerzését is. Az AJP állítólag csak megbízható szerverek számára érhető el, de valójában a Tomcat alapértelmezett konfigurációja minden hálózati interfészen futtatta a kezelőt, és hitelesítés nélkül fogadta a kéréseket. Bármilyen webalkalmazás-fájlhoz hozzáférhet, beleértve a WEB-INF, META-INF és a ServletContext.getResourceAsStream() meghívásával biztosított bármely más könyvtár tartalmát. Az AJP azt is lehetővé teszi, hogy a webalkalmazás számára elérhető könyvtárakban lévő fájlokat JSP-szkriptként használja.

A probléma a Tomcat 13.x 6 évvel ezelőtti megjelenése óta jelentkezik. Magán a Tomcat-problémán kívül érinti és az azt használó termékek, mint például a Red Hat JBoss Web Server (JWS), a JBoss Enterprise Application Platform (EAP), valamint az önálló webalkalmazások, amelyek Tavaszi bakancs. Hasonló biztonsági rés (CVE-2020-1745) ajándék a webszerverben Hullámtörés, amelyet a Wildfly alkalmazásszerverben használnak. A JBoss és a Wildfly alkalmazásban az AJP alapértelmezés szerint csak a tartomány.xml standalone-full-ha.xml, standalone-ha.xml és ha/full-ha profiljaiban van engedélyezve. A Spring Boot rendszerben az AJP támogatás alapértelmezés szerint le van tiltva. Jelenleg a különböző csoportok több mint egy tucatnyi működő példát készítettek kizsákmányolásra (
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).

A sebezhetőség javítása a Tomcat kiadásokban 9.0.31, 8.5.51 и 7.0.100 (6.x ág karbantartása megszűnt). Az alábbi oldalakon nyomon követheti a terjesztési készletekben található frissítések elérhetőségét: Debian, Ubuntu, RHEL, Fedora, SUSE, FreeBSD. Megkerülő megoldásként letilthatja a Tomcat AJP Connector szolgáltatást (egy lehallgató aljzatot köthet a localhosthoz, vagy megjegyzést fűzhet a sorhoz Connector port = "8009"), ha nincs rá szükség, vagy létre hitelesített hozzáférés a „secret” és „address” attribútumok használatával, ha a szolgáltatást más szerverekkel és proxykkal való interakcióra használják a mod_jk és mod_proxy_ajp alapján (a mod_cluster nem támogatja a hitelesítést).

Forrás: opennet.ru

Hozzászólás