보안 아파치 톰캣 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
번호 | 제목 | 날짜 | 조회 수 |
---|---|---|---|
65 | route access-list | 2017.10.30 | 590 |
64 | 포렌식 복사 도구 – forecopy_handy | 2017.11.11 | 593 |
63 | TCP 상태전이 | 2017.11.01 | 614 |
62 | HP-UX 볼륨 추가 방법 | 2017.09.07 | 653 |
61 | GeoIP 를 이용한 Apache 설정 - 국가별 접속 차단 | 2018.06.13 | 656 |
60 | 외부로 통신이 되지 않을 때 가지고 있는 CD-ROM으로 yum 사용하는 방법 | 2020.08.26 | 701 |
59 | NVIDIA_GRID_VMware | 2017.08.23 | 706 |
58 | Dos 공격유형 및 차단 | 2017.11.03 | 721 |
57 | 시스템 보안 과목 예상문제 풀이 | 2018.05.26 | 767 |
56 | IBM ds3500 guide | 2017.08.24 | 815 |
55 | 암호학 | 2017.11.01 | 816 |
54 | Apache나, Tomcat 버젼 노출 취약점 | 2019.12.09 | 896 |
53 | HP-UX networking - 11.31 10G NIC | 2019.03.19 | 912 |
52 | hpux ndd tuning | 2018.02.28 | 923 |
» | 아파치 톰캣 AJP 프로토콜에 '고스트캣(GhostCat)' 취약점 | 2020.04.06 | 935 |