[IT 알아보기]/IT 소식

[그린IDC]APACHE/PHP 버전 정보 숨기기

이호스트ICT 2011. 5. 17. 14:41
공격자는 여러가지 경로를 통해 해당 공격 대상 시스템을 분석한다.
특히 버젼정보를 확인하여 취약점이 있는버젼이라면 타켓으로 정해 공격을 해오는 경향이 있다.
버젼정보를 숨기자~

shell>telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is "^]".
HEAD/ HTTP/1.0
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.0.59 (Unix) PHP/4.4.4 Server at * Port 80</address>
</body></html>
Connection closed by foreign host.

위와 같이 버전 정보를 이용해서 해킹을 시도하는 인간들이 간혹있다.
간단히 숨겨버리자~

Apache httpd.conf의 ServerTokens 지시자를 이용하자

ServerTokens Prod

ServerTokens Prod[uctOnly] : Apache만 보여줌
                   Min[imal]        : Apache 버젼만 보여줌
                   OS                  : 아파치 버젼과 운영체제를 보여줌
                   Full (또는 지시하지 않았을때) : 모두보여줌

PHP에서 php.ini 파일에서  expose_php = Off 로 설정후
Apache 재가동

shell>telnet localhost 80                   
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is "^]".
HEAD/ HEAD/1.0
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache Server at * Port 80</address>
</body></html>
Connection closed by foreign host.