ΠΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΎΡ ΠΊΠΈΡΠ°ΠΉΡΠΊΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Chaitin Tech ΠΎΡΠΊΡΠΈΡ
Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡ (CVE-2020 1938-) Π² Apache Tomcat, ΠΎΡΠ²ΠΎΡΠ΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡΠ΅ 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) ΠΏΡΠΈΡΡΡΡΠ²Π° Π² ΡΠ΅Π± ΡΡΡΠ²ΡΡΠ° Undertow, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΡΡΡΠ²ΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Wildfly. Π JBoss ΠΈ Wildfly AJP Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ ΡΠ°ΠΌΠΎ Π² ΠΏΡΠΎΡΠΈΠ»ΠΈ standalone-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 ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½). ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈΡΠ΅ Π½Π°Π»ΠΈΡΠ½ΠΎΡΡΡΠ° Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠΈ Π·Π° ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π·ΠΈ ΡΡΡΠ°Π½ΠΈΡΠΈ: Debian, Ubuntu, RHEL, Fedora, SUSE, FreeBSD. ΠΠ°ΡΠΎ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°ΡΠ΅ ΡΡΠ»ΡΠ³Π°ΡΠ° Tomcat AJP Connector (ΡΠ²ΡΡΠΆΠ΅ΡΠ΅ ΡΠ»ΡΡΠ°Ρ ΡΠΎΠΊΠ΅Ρ ΠΊΡΠΌ localhost ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ΅Π½ΡΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅Π΄Π° Ρ Connector port = "8009"), Π°ΠΊΠΎ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ°, ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΠ΅Π½ Π΄ΠΎΡΡΡΠΏ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π°ΡΡΠΈΠ±ΡΡΠΈΡΠ΅ βsecretβ ΠΈ βaddressβ, Π°ΠΊΠΎ ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π΄ΡΡΠ³ΠΈ ΡΡΡΠ²ΡΡΠΈ ΠΈ ΠΏΡΠΎΠΊΡΠΈ ΡΡΡΠ²ΡΡΠΈ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° mod_jk ΠΈ mod_proxy_ajp (mod_cluster Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ΄ΠΎΡΡΠΎΠ²Π΅ΡΡΠ²Π°Π½Π΅).
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru