티스토리 뷰
시스템 보안 설정이 미흡하여 웹 서버 버전, 웹 애플리케이션 버전, 크로스 도메인 정책 파일 등이 노출되는 취약점이다. 이런 정보는 공격자에게 특정 서비스 및 버전에서 실행 가능한 취약점 공격에 악용될 수 있다.
1. 웹 서버 버전 정보 제공 금지
웹 서버 버전 정보가 노출되는 취약점을 제거하는 방법은 응답 헤더(Response Header)의 서버 정보를 표시하지 않도록 설정해야 한다.
Apache
Apache 설정 파일인 httpd.conf 파일이나 extra/httpd-default.conf 파일에서 ServerTokens 및 ServerSignature 값을 다음과 같이 설정
ServerToken Prod # 서버 이름만 표시
ServerSignature Off # 서버 정보 표시 안 함
Nginx
Nginx 설정 파일인 nginx.conf 파일에서 server_tokens 값을 Server 또는 location, http 절에 다음과 같이 설정
server_tokens Off # 내용 추가
2. PHP 버전 정보 제공 금지
X-Powered-By:PHP/5.x 헤더를 비활성화하는 방법은 php.ini 파일의 expose_php 값을 다음과 같이 설정
expose_php = Off
3. 톰캣 버전 정보 제공 금지 - 웹에서 톰캣 정보 숨기기
웹에서 톰캣 버전 정보가 노출되는 취약점을 제거하는 방법은 ServerInfo.properties 파일의 server.info 지시자를 다음과 같이 설정
# cd /톰캣 설치 위치/lib/org/apache/catalina/util
#vi ServerInfo.properties
Server.info=Server // Apache Tomcat/버전
server.number= // 톰캣 버전
server.built= // 빌드 날짜
4. 톰캣 버전 정보 제공 금지 - 응답 헤더에서 서버 정보 숨기기
HTTP 응답 헤더에서 톰캣 버전 정보가 노출되는 취약점을 제거하는 방법은 server.xml 파일의 Server 인자를 다음과 같이 설정
# vi server.xml
<Connector excecutor="tomcatThreadPool" port="8180" protocol="HTTP/1.1" connectionTimeout="20000" Server=" " redirectPort="81443" URIEncoding="UTF-8" />
5. 크로스 도메인 정책 파일 설정
기본적으로 현재 웹 사이트(A)에서 다른 웹 사이트(B)의 콘텐츠(웹 페이지, 이미지, 플래시 등) 접근이 제한되어 있다. 하지만, B 웹 사이트에서 크로스 도메인 정책 파일의 접근 제한을 해제한다면, A 웹 사이트는 B 웹 사이트의 콘텐츠를 마음대로 사용할 수 있게 된다. 모든 도메인에서 접근을 하지 못하도록 domain 및 port를 지정한다.
<?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="*.example.com" /> <allow-access-from domain="www.friendOfExample.com" /> <allow-access-from domain="192.0.34.166" /> </cross-domain-policy>