사용자 도구

사이트 도구


wiki:was:tomcat:tip:tomcat_버전_정보_숨기기

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
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:
 ======  Tomcat 서버 버전정보 숨기기 ====== ======  Tomcat 서버 버전정보 숨기기 ======
 <WRAP left notice 80%> <WRAP left notice 80%>
-  * description : Tomcat 서버의 버전정보를 숨기는 방법 +  * description : Tomcat 서버의 버전정보 및 오류 내용을 숨기는 방법 
-  * author      : 김토피아, 밤즌+  * author      : 김토피아
   * email       : kimmk@repia.com   * email       : kimmk@repia.com
-  * lastupdate 2020-04-06 -> 2022-07-21+  * lastupdate 2023-07-06
 </WRAP> </WRAP>
 <WRAP clear/> <WRAP clear/>
  
-===== Intro =====+====== 취약점 내용 ====== 
 +항목명 : 에러 메시지 관리 (사용자 화면) 
 +중요도 : 중 
 +항목개요 : 공격자가 대상 시스템의 정보를 획득하기 위해 고의적으로 다양한 에러를 유발하여 돌아오는 에러 메세지를 통해 웹 프로그램 구조 및 환경설정을 추정할 수 있음
  
-Tomcat은 Apache와 연계하여 많이 사용하나, 독립적으로 Web 서비스를 사용하는 경우가 있다. \\ +===== 판단기준 ===== 
-때 기본 설정으로만 서비스 구동 시에 Response Header나 Default Error Page 등서 톰캣 버전이 노출된다. \\ +양호: 에러 페지 설정과 에러 페이지가 모두 존재할 경우\\ 
-이렇게 버전이 노출이 된 경우 현재 사용하고 있는 해당 톰캣 버전에 알려진 취약점을 이용하여 좀 더 쉽게 공격이 가능하다. \\+취약: 에러 페지 설정이 없거나 에러 페지가 없을 경우\\
 \\ \\
-\\ +{{:wiki:was:tomcat:tip:tomcat_error.png?400|tomcat 류 화면}} \\
-===== 톰캣 보안 ===== +
->  * 초기 설정 * +
-1. 기본 에러 페이지 정보 제거 +
- +
-1) CATALINA_HOME/server/lib 으로 이동 +
-<code bash> +
-cd {$CATALINA_HOME}/lib +
-</code> +
- +
- +
-2) catalina.jar 에서 ServerInfo.properties 파일만 압축 해제 +
-<code bash> +
-jar xvf catalina.jar org/apache/catalina/util/ServerInfo.properties +
-</code> +
- +
-3) ServerInfo.properties 수정 +
-<code bash> +
-server.info=Apache Tomcat +
-server.number= +
-server.built= +
-</code> +
-4) catalina.jar ServerInfo.properties파일 repackage +
-<code bash> +
-jar uf catalina.jar org/apache/catalina/util/ServerInfo.properties +
-</code> +
- +
-\\ +
-2. Header(헤더) 버전 정보 제거 \\ +
-server.xml 파일 수정 \\ +
-Connector 태그에 server 속성을 추가. +
-<code bash> +
-vi {$CATALINA_HOME}/conf/server.xml +
-<Connector port="8080"  ...  server="apache tomcat" /> +
-</code> +
-\\ +
-> 결과 +
-<code bash> +
-curl -i 192.168.10.86:8080/search/front/Search.jsp +
- +
-HTTP/1.1 200 OK +
-Serverapache tomcat +
-Content-Typetext/html;charset=UTF-8 +
-Content-LanguagekoTransfer-Encoding: chunked +
-Date: Tue , 02 Jan 2018 04:33:57 GMT +
-</code> +
- +
-\\ +
-3ErrorReportValve 설정을 통한 정보 제거 \\ +
-  * server.xml 파일 수정 +
-<Host> </Host> 사이에 <Valve> 추가 \\ +
-<Valve> 태그를 통해 Tomcat에 들어는 각 요청에 대한 전처리를 수행할 수 있다. \\ +
-\\ +
-> 아래 내용 추가 +
-<code bash> +
-<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false"/> +
-</code> +
-\\ +
-4. 불필요한 examples 디렉토리(/examples) 제거 +
-  * 서버에 대한 상세 정보를 제공하고 있고, 예제 프로그램 취약점 공격 예방을 위해서 삭제. +
-    {$CATALINA_HOME}/webapps/examples 폴더 삭제 +
-\\ +
-5. 에러 페이지 처리 \\ +
-  * 공격자가 대상 시스템의 정보를 획득하기 위해 고의적으로 다양한 에러를 유발하여 돌아오는 에러 메시지를 통해 웹 프로그램의 구조 및 환경 설정을 추정할 수 있음. \\+
  
-1{$CATALINA_HOME}/webapps/ROOT 디렉토리에 error.jsp 에러 페이지 생성+===== 조치 방법 =====  
 +1{$CATALINA_HOME}/webapps/ROOT 디렉토리에 error.jsp 에러 페이지 생성
 <code bash> <code bash>
 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
줄 95: 줄 36:
 </code> </code>
  
-2{$CATALINA_HOME}/conf web.xml에 에러 페이지 설정+2{$CATALINA_HOME}/conf web.xml에 에러 페이지 설정 \\
  
 web.xml 제일 하단 </welcome-file-list> </web-app> 사이에 넣고 톰캣 재시작 web.xml 제일 하단 </welcome-file-list> </web-app> 사이에 넣고 톰캣 재시작
/volume1/web/dokuwiki/data/attic/wiki/was/tomcat/tip/tomcat_버전_정보_숨기기.1658465487.txt.gz · 마지막으로 수정됨: 2022/07/22 13:51 저자 bjlee