본문 바로가기
+ Security/보안 가이드

[보안가이드] Tomcat(톰켓) Version 정보 노출 방지

by :: Teacher :: 2021. 9. 16.
728x90
반응형

Tomcat은 Apache와 연계하여 많이 사용하나, 간혹 독립적으로 Web 서비스를 사용하는 경우가 있다.

이때 기본 설정으로만 서비스 구동 시에 Response Header & Default Error Page 등에서 Tomcat Version이 노출된다.

Web Server인 Tomcat Version이 노출이 되어도 문제가 없다고 생각할 수 있으나, 그 생각은 매우 큰 오산이다.

이렇게 Version이 노출이 된 경우 현재 사용하고 있는 해당 Tomcat Version에 알려진 취약점을 이용하여 좀 더 쉽게 공격이 가능하다.

쉽게 이야기해 Version 정보를 모른다면 100번 만에 공격이 성공될 수 있지만, Version 정보를 안다면 단 한 번 만에도 공격이 성공될 수 있다. 

그러니 별문제 아니라 생각하지 말고 반드시 서비스를 사용하는 경우 꼭 아래와 같이 설정하여 Tomcat Version 정보를 노출하지 않도록 하자.

참고로 Tomcat의 경우 Apache와 같이 많이 사용하니 아래 Apache에서 Version 정보 제거하는 방법도 남겨 놓도록 하겠다.

그럼 Tomcat에서 어떻게 적용하는지 한번 알아보도록 하자.

1. Header(헤더) Vesrion 정보 제거

# 버전 정보 확인

$ curl -i http://127.0.0.1:8080
HTTP/1.1 404 Not Found
Server: Apache-Coyote/1.1
... 이하 생락 ....


# Tomcat Header Version 정보 노출 수정

$ vi {tomcat_path}/conf/server.xml
<Connector port="8080" ... server="Web Server" />

$ curl -i http://127.0.0.1:8080
HTTP/1.1 404 Not Found
Server: Web Server
반응형

2. Default Error Page(기본 에러 페이지) 정보 제거

# 기본 에러 페이지 확인

$ curl -i http://127.0.0.1:8080/aaaa
HTTP/1.1 404
... 이하 생략 ...
<!doctype html>
... 이하 생략 ...
<hr class="line" /><h3>Apache Tomcat/10.0.11</h3>
</body></html>


# 기본 에러 페이지 버전 정보 노출 수정
- 해당 경로 및 파일이 없는 경우 생성

$ vi {tomcat_path}/lib/org/apache/catalina/util/ServerInfo.properties 
server.info=Web Server
server.number=  


$ curl -i http://127.0.0.1:8080/aaaa
HTTP/1.1 404
... 이하 생략 ...
<!doctype html>
... 이하 생략 ...
<hr class="line" /><h3>Web Server</h3>
</body></html>

3. ErrorReportValve 설정을 통한 정보 제거

# ErrorReportValve 설정을 통한 버전 정보 노출 수정

$ vi {tomcat_path}/conf/server.xml
<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />

위 3가지 방법으로 Tomcat Version 정보를 제거하는 방법을 알아보았다. 

물론 이 방법만으로 모든 공격을 막아낼 수는 없다.

그러나 조금이라도 버전 정보 노출을 줄여 쉽게 공격이 당하지 않도록 하는 게 좋겠다. 

4. 같이 보면 좋은 문서

728x90
반응형

댓글


loading