You cannot see this page without javascript.

진주성 블로그 방문하기

□ 개요

 

 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://tomcat.apache.org

- 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

 

진주성 블로그 방문하기
CLOSE