중국 보안기업 차이틴 테크(Chaitin Tech)는 아파치 톰캣(Apache Tomcat) AJP 프로토콜에 GhostCat 취약점이 발견됐다고 밝혔다.
AJP는 Apache JServ 프로토콜의 약자로 바이너리 포맷에서 HTTP 프로토콜의 성능 최적화 버전이다. 톰캣은 AJP를 아파치 HTTPD 웹서버나 다른 톰캣 인스턴스와 데이터를 교환하기 위해 사용한다. 톰캣의 AJP 커넥터는 기본적으로 활성화되어 있고, 8009 포트로 열려있다.
차이틴의 연구원들은 AJP의 버그를 이용해 톰캣 서버에 파일을 읽거나 쓰는 공격을 할 수 있다고 말한다. 예를 들어 해커는 앱 설정 파일을 읽고, 패스워드나 API 토큰을 빼낼 수 있으며 서버에 백도어나 웹 쉘같은 파일을 쓸 수 있다(Ghostcat 쓰기 공격은 톰캣 서버에서 사용자에게 파일 업로드가 허용될 때 가능하다)
Ghostcat 취약점은 매우 광범위하다. 이 취약점은 톰캣의 6.x, 7.x, 8.x, 9.x까지 모두 영향을 미친다. 아파치 톰캣 6.x는 2007년 2월에 릴리즈된 것을 생각하면, 지난 13년간 릴리즈된 톰캣의 모든 버전이 공격에 취약하다는 것을 의미한다.
차이틴 테크 연구원들은 올해 1월 초에 이 취약점을 발견했으며 아파치 톰캣 프로젝트와 협업하여 공개하기 전에 패치를 준비했다. 패치는 톰캣 7.x, 8.x, 9.x에 대해 이루어졌으며 2016년에 지원이 종료된(end-of-life) 6.x에 대해서는 이루어지지 않았다.
차이틴 테크는 또한 네트워크 내에 취약한 톰캣 서버의 존재 여부를 확인할 수 있는 XRAY 툴을 공개했다.
-XRAY: https://github.com/chaitin/xray/releases/tag/0.19.2
Ghostcat 취약점에는 CVE-2020-1938과 중국의 취약점 정보 CNVD-2020-10487가 할당되었다.
바이너리에지(BinaryEdge) 연구에 따르면 현재 온라인에 백만 이상의 톰캣 서버가 있으며, Synk에 따르면 Spring Boot 자바 프레임워크에서 빌트 된 앱 역시 톰캣 서버가 선-포함되어 있기 때문에 취약하다고 한다. 또한 레드햇에 따르면 톰캣은 JBossWeb, JBoss EAP 같은 다른 자바 기반 프레임워크 및 서버에도 탑재되어 있다.
대부분의 AJP는 클러스터 환경에서 사용되며 8009 포트는 엄격한 액세스 제어 목록 없이 인터넷에 노출되어서는 안 되기 때문에 레드햇은 사용하지 않는다면 AJP 커넥터를 비활성화하거나 로컬 호스트 포트에 바인딩할 것을 권장한다.
지난주 취약점이 공개된 이후 GitHub에 개념증명 코드가 공개되었다.
[Ghostcat PoC]
-https://github.com/laolisafe/CVE-2020-1938
-https://github.com/xindongzhuaizhuai/CVE-2020-1938
-https://github.com/0nise/CVE-2020-1938
-https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
-https://github.com/nibiwodong/CNVD-2020-10487-Tomcat-ajp-POC
★정보보안 대표 미디어 데일리시큐!★