Security Tips
 

IISのヘッダ情報の一部を消去

たかはしもとのぶ
2004/5/19

 IISに接続すると、デフォルトでは次のようなHTTPヘッダが返される。この内容には、WebサーバがIISであること(Serverヘッダ)や、Webサーバの実際のIPアドレスの情報(Content-Locationヘッダ/WWW-Authenticateヘッダに含まれるrealm)が含まれており、攻撃者に有用な情報を与えてしまう。

telnet 192.168.1.1 80
GET / HTTP/1.1
Host: 192.168.1.1


HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0 ← 
Serverヘッダ
Date: Sat, 14 Jun 2004 06:40:22 GMT
WWW-Authenticate: Negotiate
WWW-Authenticate: NTLM
WWW-Authenticate: Basic realm="192.168.1.1" ← realm
Connection: close
Content-Length: 117
Content-Type: text/html
Content-Location: http://192.168.1.1/iisstart.htm ← Content-Locationヘッダ

 なお、上記は一例であり、具体的な返却内容は、設定や環境によって異なる。 今回は、これらのヘッダ情報を隠ぺいする方法について説明しよう。

1. Serverヘッダ

  Serverヘッダの削除には、マイクロソフトから無償で提供されているURLScanを用いるのがよい。URLScanをインストールしたうえで、URLScan.iniのRemoveServerHeader行を1に設定する。

RemoveServerHeader=1

 URLScanではServerヘッダの削除ではなく修正も可能であるが、修正しただけでは、HTTPヘッダ中のServerヘッダの位置からIISのバージョンを推測することができてしまう。

 なお、URLScanのドキュメントには、Windows Server 2003のIIS 6.0の対応について明記されていないが、必要な場合はURLScanをIIS 6.0の環境にインストールすることで、Serverヘッダを削除することが可能である。

【参考】
URLScanセキュリティツール
http://www.microsoft.com/japan/technet/treeview/default.asp?
url=/japan/technet/security/tools/urlscan.asp

2. Content-Locationヘッダ

 Content-Locationヘッダについては、マイクロソフトサポート技術情報「218180: IIS が HTTP ヘッダー (Content-Location) で IP アドレスを返す」に記載されているようにメタベースを編集してヘッダにIPアドレスが表示されないようにする。以下のようにIIS付属のスクリプトを用いて修正すればよい。

cscript C:\inetpub\adminscripts\adsutil.vbs set w3svc/UseHostName True


3. WWW-Authenticateヘッダ中のrealm

 realmの文字列については、

cscript C:\inetpub\adminscripts\adsutil.vbs set w3svc/(仮想サイトの番号)/realm <文字列>

とすることで、任意の文字列を設定できる。

Security Tips Index



Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間