ΠΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΈΡΠ΅ ΠΎΠ΄ ΠΊΠΈΠ½Π΅ΡΠΊΠ°ΡΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠ° 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 Protocol, ΠΏΠΎΡΡΠ° 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 Π΅ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ ΡΠ°ΠΌΠΎ Π²ΠΎ ΡΠ°ΠΌΠΎΡΡΠΎΡΠ½ΠΈ-ΠΏΠΎΠ»Π½Π°-ha.xml, ΡΠ°ΠΌΠΎΡΡΠΎΡΠ½ΠΈ-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, Π‘Π£EΠ, FreeBSD. ΠΠ°ΠΊΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ° ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ ΡΡΠ»ΡΠ³Π°ΡΠ° Tomcat AJP Connector (ΠΏΠΎΠ²ΡΠ·Π΅ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ Π·Π° ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π° localhost ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ΅Π½ΡΠΈΡΠ°ΡΡΠ΅ ΡΠ° Π»ΠΈΠ½ΠΈΡΠ°ΡΠ° ΡΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊ Π·Π° ΠΊΠΎΠ½Π΅ΠΊΡΠΎΡ = β8009β) Π°ΠΊΠΎ Π½Π΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ, ΠΈΠ»ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈ Π°Π²ΡΠ΅Π½ΡΠΈΡΠΈΡΠ°Π½ ΠΏΡΠΈΡΡΠ°ΠΏ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° Π°ΡΡΠΈΠ±ΡΡΠΈΡΠ΅ βΡΠ°ΡΠ½Π°β ΠΈ βΠ°Π΄ΡΠ΅ΡΠ°β, Π΄ΠΎΠΊΠΎΠ»ΠΊΡ ΡΡΠ»ΡΠ³Π°ΡΠ° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΡΠΎ Π΄ΡΡΠ³ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΈ ΠΈ ΠΏΡΠΎΠΊΡΠΈ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° mod_jk ΠΈ mod_proxy_ajp (mod_cluster Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡΠ°).
ΠΠ·Π²ΠΎΡ: opennet.ru