블로그 이미지
Welcome to Tim's blog 딤스

카테고리

분류 전체보기 (13)
JAVA (4)
ASP.NET (8)
SECURITY (1)
ETC (0)
Total
Today
Yesterday



Apache mod_jk Access Control Bypass 취약점 (CVE-2018-11759)

아파치 보안 취약점 (업데이트 권고)


- 개요

최근 Biznet Bilisim 사의 Alphan YAVAS 연구원에 의해 Apache HTTPD 와 Tomcat 간의 경로 결정 중 세미콜론 문자열을 처리하는 과정에서 오류로 인해 접근 제어를 우회할 수 있는 취약점이 발견 됨.

(적용대상 : Apache mod_jk Connector 1.2.0 ~ 1.2.44)

현 시점에서 최신 버젼의 mod_jk가 아니면서 mod_jk를 사용하는 경우 모두 해당

mod_jk 최신 버젼 :  1.2.46


- 내용

Apache HTTPD는 경로 해석을 위해 URL의 세미콜론을 일반 문자로 해석하지만 Tomcat 은 쿼리 구분 기호("?" 와 같은 기능)로 해석함.

따라서 공격자는 http://server/java_app/..; 을 입력할 경우 Apache HTTPD 경로 통과를 허용하지 않으나 Tomcat 은 그대로 문자열을 .. 로 해석함.

이를 통해 Tomcat 에서 액세스할 수 없는 리소스를 가져올 수 있음



자세한 내용은 아래 링크 참조

http://svn.apache.org/viewvc/tomcat/jk/trunk/native/iis/jk_isapi_plugin.c?r1=1838573&r2=1838836&pathrev=1838836&diff_format=h


https://www.immunit.ch/blog/2018/11/01/cve-2018-11759-apache-mod_jk-access-bypass/





- 해결방법

기존 시스템의 mod_jk 버젼을 확인하고 최신 버젼이 아닐경우 최신 버젼으로 업데이트 한다.


centos에서 아파치 2.x 설치 하여 운영하고 있으며 해당 서버도 대상이라 mod_jk 업데이트를 진행하게 되었다.

먼저 whereis 등의 명령어로 아파치와 apax가 어디에 있는지 확인한다.

아파치 설치 위치가 확인되었으면 mod_jk 버젼을 확인한다.


아파치 설치 위치로 이동하여 아래 명령어를 실해해본다.

$ cd modules

$ strings mod_jk.so | grep -i mod_jk

실행하면 아래와 같은 mod_jk 정보를 볼 수 있다.

mod_jk.so

mod_jk.c

mod_jk/1.2.31


이와 같이 mod_jk 버젼 : 1.2.31 
(업데이트 대상)


빈 폴더를 하나 만들고 wget으로 mod_jk 최신 버젼을 내려 받아 업데이트 진행하였다.
업데이트 진행을 하기 전에 아파치와 톰켓을 모두 종료하고 프로세스를 kill 했다.

$ mkdir tmp
$ cd tmp
$ wget http://mirror.apache-kr.org/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.46-src.tar.gz
$ tar xvzf tomcat-connectors-1.2.46-src.tar.gz
$ cd tomcat-connectors-1.2.46-src
$ cd native
$ ./configure --with-apxs=아파치설치위치/bin/apxs
$ make
$ cp ./apache-2.0/mod_jk.so 아파치설치위치/modules

이후 tmp 삭제 또는 make clean등으로 정리한다.


아파치설치 하위 bin에는 apxs가 위치해 있다.
아파치설치 하위 modules에는 mod_jk.so가 위치해 있다.

모든 작업이 끝났으면 아파치와 톰켓을 재가동하고 웹서버가 잘 돌아가는지 체크한다.
mod_jk 버젼도 잘 업데이트가 되었는지 확인해본다. (위에 버젼 확인 방법으로 확인)

mod_jk/1.2.46



이 포스팅을 공유하는 이유는 mod_jk 업데이트 과정은 간단했고, 아파치와 톰켓 설정 파일 등은 신경쓸 필요가 없었다는 점을 공유 싶어서 이다. 보안 이슈가 있는 부분들은 바로바로 진행하는것이 좋다.
시간을 크게 잡아 먹는 부분이 아니니 되도록이면 빨리 패치하자.




Posted by 딤스
, |

최근에 달린 댓글

글 보관함