본문 바로가기
보안관리

[보안취약점] 에러페이지를 통한 정보노출 조치 / jeus, webtob 설정

by ojava 2020. 10. 24.
반응형

보안취약점 도출내역을 조치 방법을 공유하고자 한다.

전체적으로 다양한 블로그를 서치하다가 발견된 내용들을 모두 조합하였고 서버 적용 결과 정상적으로 조치됨을 확인하여 아래와 같이 정리한다.



 

취약점 항목에서 오류페이지가 노출되어 보완 조치가 필요하다는 안내를 받았다.

오류 발생 시, 설정된 기본 오류페이지로 redirect 시키고 있는데 해당 페이지의 HTTP STATUS 값이 200이 아니라는 이유에서다.

모두 알고있겠지만 404, 500 에러 등은 에러코드만으로 어떤 오류인지를 알 수 있는데 이 조차도 오류페이지의 상태값을 통해 특정한 상태를 알 수 있게 한다는 이유로 조치가 필요하다는 것이다.

간단하게는 오류 페이지의 jsp 페이지 등의 제일 상단에 STATUS 값을 정상으로 인식시킬 수 있도록

response.setStatus(200);

등과 같은 조치로 간단하게 해결되는 문제도 있겠으나, 각 WAS/WEB 서버 설정에 따라 해당 내용이 불가할 수 있다.




본 포스팅의 경우, Jeus의 기본적인 설정으로도 해결이 안되는 대상에 대해 webtob 설정을 변경하여 해결한 사례를 공유하는 내용이다. 기본적으로 최소한 개발서버에 접속해서 수정 후 재기동 할 수 있는 권한이 있어야 한다.

 

오늘 해결하고자 하는 내용은 Jeus, webtob를 사용하는 웹 사이트라는 가정하에 아래와 유사한 URL 접속 시, 에러가 발생하겠지만 status 코드가 200이 나오도록 설정하는 내용이다.
https://ojava.tistory.com/%23

https://ojava.tistory.com/lib/

 




1. Jeus 설정 확인

우선 WAS의 설정부터 확인해야 한다.

에러가 발생하면 설정된 페이지로 이동시키는지, URL에 특정 문자가 입력되어 들어오는 경우 어떻게 처리하는 지 등 관리자 화면에서 설정할 수 있는 내용부터 확인해보자.


설정된 기본 오류 페이지가 있는지 확인하는 법은 [Engine] > [Web Engine] > [Basic] 메뉴를 선택한다.

하기 캡쳐화면과 같이 기본 오류 페이지와 관련된 'Default Error Page' 항목에 오류 발생 시 보여질 오류 페이지의 절대 경로를 설정하고 '확인' 버튼을 클릭한다.

 

 

 

URL에 특정 문자가 들어오는 경우, 요청이 처리되지 않도록 막는 기능도 존재한다고 하여 찾아봤으나 사실 이게 적용되지 않아서 이래저래 찾는 수고를 겪었다 ^_ㅜ 그래도 매뉴얼 찾아놨으니 내용을 공유한다.

 

 

[출처 : tmax 기술문서] technet.tmaxsoft.com/upload/download/online/jeus/pver-20140827-000001/web-engine/chapter_jeus_web_engine.html

 

위 벤더사에서 제공한 문서에도 작성되어 있듯이 Blocked Url Patterns 에 기본적인 설정이 다 되어 있다.

 

근데 어째 내가 보내는 도메인 뒤의 %23을 포함한 다양한 문자열을 입력한 URL은 기본 에러 페이지로 넘어가질 않고 404 status 값을 계속 띄운다.

아무래도 WAS 설정이 내가 원하는대로 되질 않는 거 같으니, 이보다 더 앞쪽에서 redirect 시켜버려야겠다.

 


2. webtob 설정 확인

WAS에서 해결이 안된다길래 앞에서 차단시킬 방법을 찾으러 왔습네다.
jeus를 쓰고있다면 세트로 같이 쓰고 있는 webtob 서버의 설정을 찾아보자.

웹서버 설정은 http.m이라는 파일에서 관리되고 있으니, webtob 폴더 들어가면 있는 해당 파일을 찾아서 열어보면 다양한 설정이 있는데 에러처리와 관련된 사항만 정리해서 아래와 같이 나열한다.

 


** http.m 파일 예시

* DOMAIN
해당 웹서버 이름

* NODE
서버명 등	WEBTOBDIR = "WEBTOB 경로",
			DOCROOT = "WEBTOB DOC 경로",
			PORT = "8080",
			~~ 중략 ~~
			ERRORDOCUMENT = "403,404,503", ## 이 부분이 제일 중요한 에러처리 대상 지정 부분
            ~~ 하략 ~~
            
* VHOST
Vhost이름	  DOCROOT = "웹서버가 읽어들일 문서 경로",
			HOSTNAME = "IP 주소 등",
            HostAlias = "도메인 주소 등",
            PORT = "80",
            ~~ 중략 ~~
            ## 하단 두 줄이 특정 url 처리하도록 설정하는 부분
            URLRewrite=Y,
            URLRewriteConfig="url 재작성하는 기준이 되는 설정파일 절대경로",
            ~~ 하략 ~~

.
.
.
.

# 상단 NODE의 ERRORDOCUMENT에 지정한 코드와 맵핑되는 대상
* ERRORDOCUMENT
403    status = 403, url = "/error.html"
404    status = 404, url = "/error.html"
503    status = 503, url = "/error.html"

 

** rewrite.conf 파일 내용

RewriteCond %{HTTP_HOST} 본인사이트 도메인
RewriteCond %{SERVER_PORT} 80
RewriteCond %{THE_REQUEST} (%23|%2E|%2F|%5C|%00|%0A|%0D) [NC]
RewriteRule . 리다이렉트 시킬 url 주소 [L]


[예시]

RewriteCond %{HTTP_HOST} ojava.tistory.com
RewriteCond %{SERVER_PORT} 80
RewriteCond %{THE_REQUEST} (%23|%2E|%2F|%5C|%00|%0A|%0D) [NC]
RewriteRule . http://ojava.tistory.com/error.html [L]

 

설정 변경하면 반드시 해줘야 하는 작업이 당연히 재기동인데, http.m 파일의 경우는 컴파일도 해줘야 한다고 한다. 명령어는 아래와 같으니 재기동해서 모두 정상적으로 원하는 페이지로 redirect 되는지 테스트 해보시기 바란다.

 

1) webtob 설정파일인 http.m compile

wscfl -i http.m 

2) webtob 서버 중지 후 재기동

wsdown
wsboot

 

반응형