HTTPヘッダー研究その1: apacheソフトウェア情報隠蔽しよう
HTTPヘッダーって見たことありますか? 見てみるとソフトウェア情報がバレバレです。
---------------------------------------------------
% telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Mon, 18 Oct 2004 11:23:39 GMT
Server: Apache/1.3.31 (Unix)
Last-Modified: Fri, 10 Oct 2003 11:39:51 GMT
ETag: "b7d74-64-3f869a87"
Accept-Ranges: bytes
Content-Length: 100
Connection: close
Content-Type: text/html
---------------------------------------------------
こんな情報を出しておく合理的な理由は特にないです。悪意を持ったユーザが
こんな情報をこんな簡単な方法で入手できるのも問題です。そこで今回は
apacheでのソフトウェア情報隠蔽方法をご紹介します。
【apacheでのソフトウェア情報隠蔽方法】
以下の要領でファイルを書き換え、通常の方法でコンパイルすればOKです。
既にインストールされているapacheの場合でも再コンパイルが必要となります。
※apache1.3系の場合
include/httpd.h
#define SERVER_BASEPRODUCT "Apache"
#define SERVER_BASEREVISION "1.3.31"
↓
#define SERVER_BASEPRODUCT "HogeHoge"
#define SERVER_BASEREVISION ""
※apache2.0系 の場合
include/ap_release.h
#define AP_SERVER_BASEPRODUCT "Apache"
#define AP_SERVER_BASEREVISION AP_SERVER_MINORREVISION "." AP_SERVER_PATCHLEVEL
↓
#define AP_SERVER_BASEPRODUCT "HogeHoge"
#define AP_SERVER_BASEREVISION ""
すると以下のようになります。
---------------------------------------------------
HTTP/1.1 200 OK
Date: Mon, 18 Oct 2004 11:23:39 GMT
Server: HogeHoge/ (Unix)
Last-Modified: Fri, 10 Oct 2003 11:39:51 GMT
ETag: "b7d74-64-3f869a87"
Accept-Ranges: bytes
Content-Length: 100
Connection: close
Content-Type: text/html
---------------------------------------------------
※ただしapacheの世界シェアは7割以上ということもあり、こんな隠蔽をしてもapacheであることはバレバレだと思ったほうがよいです。今回の対応は、まあやらないよりはやっておいたほうがよいくらいに思ったほうがよいでしょう。
Comments