์ค๊ตญ ํ์ฌ์ธ ์ฐจ์ดํด ํ
ํฌ(Chaitin Tech)์ ์ฐ๊ตฌ์๋ค์ ์ทจ์ฝ์ (CVE-2020-1938)์์ Apache Tomcat, Java Servlet, JavaServer Pages, Java Expression Language ๋ฐ Java WebSocket ๊ธฐ์ ์ ์คํ ์์ค ๊ตฌํ์
๋๋ค. ์ด ์ทจ์ฝ์ ์ ์ฝ๋๋ช
Ghostcat๊ณผ ์ฌ๊ฐํ ์ฌ๊ฐ๋ ์์ค(9.8 CVSS)์ผ๋ก ์ง์ ๋์์ต๋๋ค. ์ด ๋ฌธ์ ๋ ๊ธฐ๋ณธ ๊ตฌ์ฑ์์ ๋คํธ์ํฌ ํฌํธ 8009๋ก ์์ฒญ์ ์ ์กํ์ฌ ์ค์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์์ค ์ฝ๋๊ฐ ์๋ ํ์ผ์ ํฌํจํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์
๋๋ ํ ๋ฆฌ์์ ๋ชจ๋ ํ์ผ์ ๋ด์ฉ์ ์ฝ์ ์ ์๋๋ก ํ์ฉํฉ๋๋ค.
์ด ์ทจ์ฝ์ ์ผ๋ก ์ธํด ๋ค๋ฅธ ํ์ผ์ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ก ๊ฐ์ ธ์ฌ ์ ์์ผ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ด ํ์ผ์ ์๋ฒ์ ์
๋ก๋ํ๋๋ก ํ์ฉํ๋ ๊ฒฝ์ฐ ์๋ฒ์์ ์ฝ๋ ์คํ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค(์: ๊ณต๊ฒฉ์๊ฐ ์ด๋ฏธ์ง ์
๋ก๋ ์์์ ํตํด ์ด๋ฏธ์ง). AJP ํธ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ ํฌํธ์ ์์ฒญ์ ์ ์กํ์ฌ ๊ณต๊ฒฉํ ์ ์์ต๋๋ค. ์๋น ๋ฐ์ดํฐ์ ๋ฐ๋ฅด๋ฉด ์จ๋ผ์ธ ์ค๋ฆฝํ๋ค 1.2๋ง ๊ฐ ์ด์์ ํธ์คํธ๊ฐ AJP ํ๋กํ ์ฝ์ ํตํด ์์ฒญ์ ์๋ฝํฉ๋๋ค.
์ทจ์ฝ์ ์ AJP ํ๋กํ ์ฝ์ ์กด์ฌํ๋ฉฐ, ํธ์ถ๋์ง ์์ ๊ตฌํ ์ค๋ฅ. HTTP(ํฌํธ 8080)๋ฅผ ํตํ ์ฐ๊ฒฐ ์๋ฝ ์ธ์๋ Apache Tomcat์ ๊ธฐ๋ณธ์ ์ผ๋ก AJP ํ๋กํ ์ฝ(์ํ์น JServ ํ๋กํ ์ฝ, ํฌํธ 8009)๋ HTTP์ ๋๋ฑํ ์ฑ๋ฅ ์ต์ ํ ๋ฐ์ด๋๋ฆฌ๋ก Tomcat ์๋ฒ ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ๊ฑฐ๋ ๋ฆฌ๋ฒ์ค ํ๋ก์ ๋๋ ๋ก๋ ๋ฐธ๋ฐ์์์ Tomcat๊ณผ์ ํต์ ์๋๋ฅผ ๋์ผ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
AJP๋ ๊ณต๊ฐ ๋์์ด ์๋ ํ์ผ์ ์ป๋ ๊ฒ์ ํฌํจํ์ฌ ์ฌ์ฉํ ์ ์๋ ์๋ฒ์ ํ์ผ์ ์ก์ธ์คํ๊ธฐ ์ํ ํ์ค ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. AJP๋ ์ ๋ขฐํ ์ ์๋ ์๋ฒ์๋ง ์ก์ธ์คํ ์ ์์ด์ผ ํ์ง๋ง ์ค์ ๋ก Tomcat์ ๊ธฐ๋ณธ ๊ตฌ์ฑ์ ๋ชจ๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์์ ํธ๋ค๋ฌ๋ฅผ ์คํํ๊ณ ์ธ์ฆ ์์ด ์์ฒญ์ ์๋ฝํ๋ ๊ฒ์ด์์ต๋๋ค. WEB-INF, META-INF ๋ฐ ServletContext.getResourceAsStream() ํธ์ถ์ ํตํด ์ ๊ณต๋ ๊ธฐํ ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ์ ํฌํจํ์ฌ ๋ชจ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
ํ์ผ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. AJP๋ฅผ ์ฌ์ฉํ๋ฉด ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ก์ธ์ค ๊ฐ๋ฅํ ๋๋ ํ ๋ฆฌ์ ์๋ ๋ชจ๋ ํ์ผ์ JSP ์คํฌ๋ฆฝํธ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ 13๋
์ ์ ์ถ์๋ Tomcat 6.x ๋ธ๋์น ์ดํ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ง์ ์ ์ธ Tomcat ๋ฌธ์ ๋ฅผ ์ ์ธํ๊ณ ์ํฅ์ ๋ฏธ์น๋ค JWS(Red Hat JBoss Web Server), JBoss Enterprise Application Platform(EAP) ๋ฐ ์ด๋ฅผ ์ฌ์ฉํ๋ ๋
๋ฆฝํ ์น ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ๊ฐ์ด ์ด๋ฅผ ์ฌ์ฉํ๋ ์ ํ ๋ด ๋ถํ
. ์ ์ฌํ ์ทจ์ฝ์ (CVE-2020-1745) ์ ๋ฌผ ์น ์๋ฒ์์ ๋ฌผ๊ฐ์์ ๋ฌผ๋ฌ๊ฐ๋ ๋ฌผ๊ฒฐWildfly ์์ฉ ํ๋ก๊ทธ๋จ ์๋ฒ์์ ์ฌ์ฉ๋ฉ๋๋ค. JBoss ๋ฐ Wildfly์์ AJP ํ๋กํ ์ฝ์ ๊ธฐ๋ณธ์ ์ผ๋ก standalone-full-ha.xml, standalone-ha.xml ๋ฐ domain.xml์ ha/full-ha ํ๋กํ์ผ์์๋ง ํ์ฑํ๋ฉ๋๋ค. Spring Boot์์ AJP ์ง์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ต๋๋ค. XNUMX๊ฐ ์ด์์ ์
์ฉ ์ฌ๋ก๊ฐ ์ฌ๋ฌ ๊ทธ๋ฃน์์ ์ค๋น๋์์ต๋๋ค(
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11).
Tomcat ๋ฆด๋ฆฌ์ค์์ ์์ ๋ ์ทจ์ฝ์ 9.0.31, 8.5.51 ะธ 7.0.100 (์ ์ง๋ณด์ ๋ถ๊ธฐ 6.x ๋จ์ข
). ๋ค์ ํ์ด์ง์์ ๋ฐฐํฌํ์ ์
๋ฐ์ดํธ ๋ชจ์์ ๋ฐ๋ฅผ ์ ์์ต๋๋ค. ๋ฐ๋น์, Ubuntu, RHEL, ํ๋๋ผ, SUSE, FreeBSD์. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ํ์ํ์ง ์์ ๊ฒฝ์ฐ Tomcat AJP ์ปค๋ฅํฐ ์๋น์ค๋ฅผ ๋นํ์ฑํํ ์ ์์ต๋๋ค(์์ ์์ผ์ localhost์ ๋ฐ์ธ๋ฉํ๊ฑฐ๋ ์ปค๋ฅํฐ ํฌํธ = "8009"๋ก ๋ผ์ธ์ ์ฃผ์ ์ฒ๋ฆฌ). ะฝะฐัััะพะธัั ์๋น์ค๊ฐ mod_jk ๋ฐ mod_proxy_ajp(mod_cluster๋ ์ธ์ฆ์ ์ง์ํ์ง ์์)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค๋ฅธ ์๋ฒ ๋ฐ ํ๋ก์์ ์ํธ ์์ฉํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ "๋น๋ฐ" ๋ฐ "์ฃผ์" ์์ฑ์ ์ฌ์ฉํ์ฌ ์ธ์ฆ๋ ์ก์ธ์ค.
์ถ์ฒ : opennet.ru