문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
wiki:was:tomcat:tip:tomcat_버전_정보_숨기기 [2022/07/22 13:51] bjlee |
wiki:was:tomcat:tip:tomcat_버전_정보_숨기기 [2023/07/06 15:59] (현재) r_kimmk |
||
|---|---|---|---|
| 줄 1: | 줄 1: | ||
| ====== | ====== | ||
| <WRAP left notice 80%> | <WRAP left notice 80%> | ||
| - | * description : Tomcat 서버의 버전정보를 숨기는 방법 | + | * description : Tomcat 서버의 버전정보 |
| - | * author | + | * author |
| * email : kimmk@repia.com | * email : kimmk@repia.com | ||
| - | * lastupdate | + | * lastupdate |
| </ | </ | ||
| <WRAP clear/> | <WRAP clear/> | ||
| - | ===== Intro ===== | + | ====== |
| + | 항목명 : 에러 메시지 관리 (사용자 화면) | ||
| + | 중요도 : 중 | ||
| + | 항목개요 : 공격자가 대상 시스템의 정보를 획득하기 위해 고의적으로 다양한 에러를 유발하여 돌아오는 에러 메세지를 통해 웹 프로그램 구조 및 환경설정을 추정할 수 있음 | ||
| - | Tomcat은 Apache와 연계하여 많이 사용하나, | + | ===== 판단기준 ===== |
| - | 이때 기본 | + | 양호: 에러 페이지 설정과 에러 페이지가 모두 존재할 |
| - | 이렇게 버전이 노출이 된 경우 | + | 취약: 에러 페이지 설정이 없거나 에러 페이지가 없을 |
| \\ | \\ | ||
| - | \\ | + | {{:wiki:was:tomcat:tip:tomcat_error.png? |
| - | ===== 톰캣 보안 ===== | + | |
| - | > * 초기 설정 * | + | |
| - | 1. 기본 에러 페이지 정보 제거 | + | |
| - | + | ||
| - | 1) CATALINA_HOME/ | + | |
| - | <code bash> | + | |
| - | cd {$CATALINA_HOME}/ | + | |
| - | </ | + | |
| - | + | ||
| - | + | ||
| - | 2) catalina.jar 에서 ServerInfo.properties 파일만 압축 해제 | + | |
| - | <code bash> | + | |
| - | jar xvf catalina.jar org/ | + | |
| - | </ | + | |
| - | + | ||
| - | 3) ServerInfo.properties 수정 | + | |
| - | <code bash> | + | |
| - | server.info=Apache Tomcat | + | |
| - | server.number= | + | |
| - | server.built= | + | |
| - | </ | + | |
| - | 4) catalina.jar ServerInfo.properties파일 repackage | + | |
| - | <code bash> | + | |
| - | jar uf catalina.jar org/ | + | |
| - | </ | + | |
| - | + | ||
| - | \\ | + | |
| - | 2. Header(헤더) 버전 정보 제거 \\ | + | |
| - | server.xml 파일 수정 \\ | + | |
| - | Connector 태그에 server 속성을 추가. | + | |
| - | <code bash> | + | |
| - | vi {$CATALINA_HOME}/ | + | |
| - | < | + | |
| - | </ | + | |
| - | \\ | + | |
| - | > 결과 | + | |
| - | <code bash> | + | |
| - | curl -i 192.168.10.86:8080/ | + | |
| - | + | ||
| - | HTTP/1.1 200 OK | + | |
| - | Server: apache | + | |
| - | Content-Type: text/ | + | |
| - | Content-Language: koTransfer-Encoding: | + | |
| - | Date: Tue , 02 Jan 2018 04:33:57 GMT | + | |
| - | </ | + | |
| - | + | ||
| - | \\ | + | |
| - | 3. ErrorReportValve 설정을 통한 정보 제거 \\ | + | |
| - | * server.xml 파일 수정 | + | |
| - | < | + | |
| - | < | + | |
| - | \\ | + | |
| - | > 아래 내용 추가 | + | |
| - | <code bash> | + | |
| - | <Valve className=" | + | |
| - | </ | + | |
| - | \\ | + | |
| - | 4. 불필요한 examples 디렉토리(/ | + | |
| - | * 서버에 대한 상세 정보를 제공하고 있고, 예제 프로그램 취약점 공격 예방을 위해서 삭제. | + | |
| - | {$CATALINA_HOME}/ | + | |
| - | \\ | + | |
| - | 5. 에러 페이지 처리 \\ | + | |
| - | * 공격자가 대상 시스템의 정보를 획득하기 위해 고의적으로 다양한 에러를 유발하여 돌아오는 에러 메시지를 통해 웹 프로그램의 구조 및 환경 설정을 추정할 수 있음. | + | |
| - | 1) {$CATALINA_HOME}/ | + | ===== 조치 방법 ===== |
| + | 1. {$CATALINA_HOME}/ | ||
| <code bash> | <code bash> | ||
| < | < | ||
| 줄 95: | 줄 36: | ||
| </ | </ | ||
| - | 2) {$CATALINA_HOME}/ | + | 2. {$CATALINA_HOME}/ |
| web.xml 제일 하단 </ | web.xml 제일 하단 </ | ||