사용자 도구

사이트 도구


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

차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
wiki:was:tomcat:tip:tomcat_버전_정보_숨기기 [2022/07/22 10:16]
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. 기본 에러 페이지 정보 제거+
  
-1CATALINA_HOME/server/lib 으로 +===== 조치 방법 =====  
 +1. {$CATALINA_HOME}/webapps/ROOT 디렉토리에 error.jsp 에러 페지 생성
 <code bash> <code bash>
-cd {$CATALINA_HOME}/lib+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
 +<html> 
 +<head> 
 +<title>404 Not Found</title> 
 +</head> 
 +<body> 
 +<h1>Not Found</h1> 
 +<p>The requested URL was not found on this server.</p> 
 +<p>Additionally, a 404 Not Found 
 +error was encountered while trying to use an ErrorDocument to handle the request.</p> 
 +</body> 
 +</html>
 </code> </code>
  
 +2. {$CATALINA_HOME}/conf web.xml에 에러 페이지 설정 \\
  
-2) catalina.jar 에서 ServerInfo.properties 파일만 압축 해 +web.xml 제일 하단 </welcome-file-list> </web-app> 사이에 고 톰캣 재
-<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> +
- +
-\\ +
-1-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 +
-Server: apache tomcat +
-Content-Type: text/html;charset=UTF-8 +
-Content-Language: koTransfer-Encoding: chunked +
-Date: Tue , 02 Jan 2018 04:33:57 GMT +
-</code> +
- +
-\\ +
-1-3. ErrorReportValve 설정을 통한 정보 제거 \\ +
-- server.xml 파일 수정 +
-<Host> </Host> 사이에 <Valve> 추가 \\ +
-<Valve> 태그를 통해 Tomcat에 들어오는 각 요청에 대한 전처리를 수행할 수 있다. \\ +
-\\ +
-> 아래 내용 추가 +
-<code bash> +
-<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false"/> +
-</code> +
-\\ +
-2. 불필요한 examples 디렉토리(/examples) 제거 +
-    서버에 대한 상세 정보를 제공하고 있고, 예제 프로그램 취약점 공격 예방을 위해서 삭제. +
-    {$CATALINA_HOME}/webapps/examples 폴더 삭제 +
-\\ +
-3. 공격자가 대상 스템의 정보를 획득하기 위해 고의적으로 다양한 에러를 유발하여 돌아오는 에러 메시지를 통해 웹 프로그램의 구조 및 환경 설정을 추정할 수 있음. \\ +
-- web.xml에 에러 페이지 설정 +
- +
-web.xml 제일 하단 </web-app> 안쪽에 넣는다.+
  
 <code bash> <code bash>
줄 186: 줄 146:
 </error-page> </error-page>
 </code> </code>
 +{{tag>pseudo-classes}}
/volume1/web/dokuwiki/data/attic/wiki/was/tomcat/tip/tomcat_버전_정보_숨기기.1658452574.txt.gz · 마지막으로 수정됨: 2022/07/22 10:16 저자 bjlee