보안 아파치 톰캣 AJP 프로토콜에 '고스트캣(GhostCat)' 취약점
2020.04.06 20:30
□ 개요
o 최근 Apache Tomcat의 원격코드실행 취약점(CVE-2020-1938)을
악용할 수 있는 개념증명코드(Proof of concept code, PoC)가 인터넷상에 공개되어 사용자의 보안 강화 필요
※ 개념증명코드 : 취약점을 증명/검증할 수 있는 프로그램 또는 소스코드
□ 설명
o Tomcat이 AJP request 메시지를 처리할 때, 메시지에 대한 처리가 미흡하여 발생하는 원격코드실행 취약점(CVE-2020-1938)
※ AJP(Apache JServ Protocol) : 웹서버와 어플리케이션 서버 간 연결 요청을 8009포트를 사용하여 전달하는 프로토콜(모니터링 기능 지원)
□ 영향을 받는 버전
o Apache Tomcat
- 9.0.0.M1 ~ 9.0.30
- 8.5.0 ~ 8.5.50
- 7.0.0 ~ 7.0.99
※ 상기 버전은 AJP 커넥터가 기본으로 활성화되어 취약점에 영향 받음
□ 해결 방안
o 각 버전에 해당되는 페이지를 참고하여 최신 버전으로 업데이트 적용
- 7.0.103 이상 버전 [2]
- 8.5.53 이상 버전 [3]
- 9.0.33 이상 버전 [4]
#1. Apache Tomcat 최신 버전 업데이트
- https://github.com/apache/tomcat/releases
#2. 설정 파일 수정 후 톰캣 재기동
CASE1. AJP Connector service 사용하지 않는 경우
<CATALINA_BASE>/conf/server.xml 내 ... <!-- <Connector prot="8009" protocol="AJP/1.3" redirectPort="8443" /> --> //주석처리 ... |
CASE2. AJP Connector service 사용하는 경우
[최신 버전으로 업데이트 후] <CATALINA_BASE>/conf/server.xml 내 ... <Connector prot="8009" protocol="AJP/1.3" redirectPort="8443" address="YOUR_TOMCAT_IP_ADDRESS" secret="YOUR_TOMCAT_AJP_SECRET" /> ... |
혹은
[최신 버전으로 업데이트 불가한 경우] <CATALINA_BASE>/conf/server.xml 내 ... <Connector prot="8009" protocol="AJP/1.3" redirectPort="8443" address="YOUR_TOMCAT_IP_ADDRESS" requiredSecret="YOUR_TOMCAT_AJP_SECRET" /> ... |
※ "YOUR _TOMCAT_IP_ADDRESS"에는 속성에 맞는 IP주소를 입력합니다. (예:127.0.0.1, 내부아이피 등)
- address 값은 하나의 Connector에는 하나만 설정 가능한 것으로 확인되며,
다른 IP에서 접근하는 경우 추가 Connector를 생성하여 접근할 수 있도록 조치해야합니다.
※ "YOUR_TOMCAT_AJP_SECRET" 속성은 AJP 1.3에 접근하는 것에 대한 패스워드 역할을 하기 때문에
쉽게 해독/유추가 불가능한 값으로 설정해야 안전하게 사용 가능합니다.
1) 무한 로딩 해결 방법
이번에 릴리즈되면서 기본값으로 SSL을 사용하도록 설정되어있기 때문에 SSL을 사용하지 않는 환경에서는 무한 로딩이 발생 합니다.
${catalina-home}/conf/server.xml 파일의 AJP Connector 필드에 secretRequired="false" 를 입력 해주세요.
2) 403 에러 해결 방법
secretRequired="false" 가 아닌 requiredSecret="false"를 입력했을 경우 발생할 수 있습니다. 2020년 02월 11일에 릴리즈된 8.5.51 버전과 9.0.31 버전은 secretRequired 속성으로 사용하여야 합니다.
3) 503 에러 해결 방법
이번에 릴리즈되며 AJP가 기본값으로 루프백 주소를 사용하도록 되었습니다. address="192.168.1.2" 와 같이 네트워크 대역을 확인 후 추가 해주어야 합니다.
<Connector protocol="AJP/1.3"
address="192.168.1.2"
secretRequired="false"
port="8009"
redirectPort="8443" />
□ 기타 문의사항
o 한국인터넷진흥원 사이버민원센터: 국번없이 118
[참고사이트]
[1] https://lists.apache.org/thread.html/r7c6f492fbd39af34a68681dbbba0468490ff1a97a1bd79c6a53610ef%40%3Cannounce.tomcat.apache.org%3E
[2] http://tomcat.apache.org/security-7.html
[3] http://tomcat.apache.org/security-8.html
[4] http://tomcat.apache.org/security-9.html
댓글 0
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
155 | Linux system service bug gives you root on every major distro | 2022.02.05 | 205 |
154 | Red Hat Enterprise Linux technology capabilities and limits | 2021.05.13 | 117 |
153 | weblogic wlst 기반 암호화파일 복호화 (AES) | 2021.04.06 | 225 |
152 | weblogic admin 패스워드 변경 방법 | 2021.04.06 | 137 |
151 | vi, vim ^M 제거 | 2021.04.02 | 94 |
150 | wmic useraccount list brief | 2021.04.01 | 155 |
149 | Jeus7 Getting Start Guide | 2021.03.09 | 107 |
148 | hp-ux glance Memory Sort | 2021.02.26 | 217 |
147 | 외부로 통신이 되지 않을 때 가지고 있는 CD-ROM으로 yum 사용하는 방법 | 2020.08.26 | 792 |
146 | AIX 내부적인 Memory 관리 방법 | 2020.04.15 | 546 |
145 | AIX SYSTEM CHECK SCRIPT | 2020.04.10 | 2510 |
» | 아파치 톰캣 AJP 프로토콜에 '고스트캣(GhostCat)' 취약점 | 2020.04.06 | 1071 |
143 | top을 통해 살펴보는 프로세스 정보들 | 2020.03.05 | 396 |
142 | netstat | 2020.02.05 | 316 |
141 | Linux Cache Memory Clear | 2020.01.20 | 387 |