- 최근 JEUS 보안취약점 프로그램을 돌리면 나오는 취약점으로 JEUS webadmin.war 에 있는 web.xml을 수정하라는 내용이다.
- web.xml 파일에 하기 내용을 넣고 리패키징을 해야하는 것으로 adminServer(DAS) 재 기동이 필요하다.
- 서비스 영향도는 없으며 adminServer 재 기동 후 webadmin 로그인만 잘 되는지 확인하면 된다.
- 취약점 내용은 webadmin.war 에 특정 HTTP Method를 차단하는 것으로 PUT, DELETE, TRACE, OPTIONS를 차단해야한다.
| <security-constraint> <display-name>Restricted HTTP Methods</display-name> <web-resource-collection> <web-resource-name>Block Dangerous Methods</web-resource-name> <!-- 모든 URL에 대해 적용 --> <url-pattern>/*</url-pattern> <!-- 차단할 HTTP 메서드 목록 --> <http-method>PUT</http-method> <http-method>DELETE</http-method> <http-method>TRACE</http-method> <http-method>OPTIONS</http-method> </web-resource-collection> <!-- 인증이 필요하도록 설정하여 사실상 차단 (403 Forbidden 처리) --> <auth-constraint /> </security-constraint> |
- JEUS webadmin 은 GET, POST 만 사용한다고 한다. 따라서 PUT, DELETE, TRACE, OPTIONS를 차단해도 영향도는 없다.
1. webadmin.war 파일 백업하기
- JEUS webadmin.war 는 JEUS_HOME/lib/systemapps 경로에 있다. 해당 파일을 백업한다.

2. 별도 파일을 생성하여 webadmin.war 를 압축 풀기
- 압축을 풀어 WEB-INF/web.xml 을 수정한다.
- jar xvf webadmin.war 로 수행한다.(windows 도 가능)

3. web.xml 저장 후 webadmin.war 리패키징 하기
- webadmin.war를 푼 경로에서 jar cvf0M webadmin.war ./* 를 입력하여 리패키징한다.

*참고 cvf0M 옵션에 대한 설명
1). c (create)
- 새 JAR 파일을 생성
- 없으면 기존 JAR을 수정하는 모드가 될 수 있음
2). v (verbose)
- 처리되는 파일 목록을 화면에 출력
- 어떤 파일이 JAR에 들어가는지 로그로 확인 가능
3). f (file)
- 출력 파일명을 지정
- 바로 뒤에 output.jar 같은 JAR 파일명이 와야 함
4). 0 (숫자)
- 압축하지 않음 (store only)
- ZIP 압축을 하지 않고 그대로 저장
사용 이유:
- 이미 압축된 파일(jpg, png, zip 등)
- WAS(WebLogic, JEUS 등) 기동 속도 개선 목적
- 대용량 JAR 생성 시 CPU 사용량 감소
5). M (no manifest)
- MANIFEST.MF 파일을 생성하지 않음
- 기본적으로 META-INF/MANIFEST.MF는 자동 생성되는데, 이를 막음
주의:
- 실행형 JAR(Main-Class)에는 필수
- 라이브러리 JAR에서는 종종 불필요

4. 기존 webadmin.war 교체 및 재기동 / 캐싱 파일 삭제
- webadmin.war 가 배포되어 캐싱되는 파일을 삭제햐애 한다.
- 경로는 JEUS_HOME/domains/jeus_domain/servers/adminServer 파일을 삭제해야 한다.
- Windows 에서는 adminServer를 기동 중지해야 하므로 dsdown 을 먼저 해줘야 한다. (윈도우 서비스로 중지시 서비스 중인 컨테이너 까지 내려가기 때문에 CMD에서 별도로 dsdown 해준다.)

- Windows 서버에서 CMD로 adminServer를 기동할 때 주의사항이 있다.
JDK 1.8 마이너 200번대 이하 버전에어는 CMD로 기동 후 CMD 창을 닫으면 프로세스가 종료되는 이슈가 있다.(JDK 이슈로 보여짐) 때문에 마이너 300번대 이상에서만 사용하거나 윈도우 서비스를 재기동 해도 될 경우 사용하도록 하자.
작업 순서는
1) webadmin.war 교체
2) adminServer down(dsdown)
3) adminServer 캐싱파일 삭제(servers/adminServer)
4) adminServer start(dsboot)
5. 조치 됐는지 확인하기
- JEUS_HOME/domains/jeus_domain/servers/adminServer/.workspace/deployed/webadmin/숫자/webadmin.war/WEB-INF 경로로 이동하면 web.xml 파일이 있는데 해당 파일을 열어 수정된 파일 내용을 확인하자.


Linux 계열에서는 크기 문제가 안되는데 Windows 에서는 adminServer 기동/중지시 특이점이 있으니 주의하도록 하자.