印刷用ページ      送信     
クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Win32 および COM 開発
セキュリティ
セキュリティ (全般)
技術文書
How-To インデックス
 [HOWTO] URLScan を使用する方法
セキュリティ ガイダンス
[HOWTO] URLScan を使用する方法
公開日: 2004年9月7日 | 最終更新日: 2004年9月7日
トピック
目的 目的
適用対象 適用対象
モジュールの使用方法 モジュールの使用方法
要約 要約
URLScan をインストールする URLScan をインストールする
ログ ファイル ログ ファイル
URLScan を削除する URLScan を削除する
URLScan を構成する URLScan を構成する
URLScan で要求のサイズを制限する URLScan で要求のサイズを制限する
URLScan がインストールされた状態で VS .NET でデバッグする URLScan がインストールされた状態で VS .NET でデバッグする
コンテンツ ヘッダー (バナー) をマスクする コンテンツ ヘッダー (バナー) をマスクする
注意事項 注意事項
参照情報 参照情報

目的

このモジュールの目的は次のとおりです。

URLScan を入手してインストールする。

URLScan を使用して、サービス拒否攻撃やディレクトリ トラバーサル攻撃などの一般的な攻撃に対する Web サーバーの防御力を向上させる。

URLScan の使用時に Visual Studio .NET でデバッグできるようにする。

適用対象

このモジュールは、次の製品およびテクノロジに適用されます。

Microsoft® Windows® 2000 Server

インターネット インフォメーション サービス

モジュールの使用方法

モジュールの効果的な使用方法

インターネット インフォメーション サービスの管理経験が必要です。

Visual Studio .NET を使用したプログラミングの経験が必要です。

モジュール「[HOWTO] IISLockdown.exe を使用する方法」を参照してください。このモジュールには、URLScan のインストール方法の 1 つである IISLockdownのインストール方法の説明があります。

要約

URLScan は、Web サイト管理者がサーバーで処理する HTTP 要求の種類を制限するために使用できる ISAPI フィルタです。URLScan フィルタは、特定の HTTP 要求をブロックすることによって、有害である可能性のある要求がサーバーに到達して被害を発生させるのを防ぎます。このモジュールでは、URLScanの入手方法、インストール方法、および構成方法について説明します。

URLScan をインストールする

この文書の執筆時点では、URLScan 2.0 は IISLockdown (IISLockd.exe) を実行したときにインストールされるほか、単独でインストールすることも可能です。

IISLockdown を使用して URLScan 2.0 をインストールする: URLScan 2.0 は、IIS Lockdown Wizard (IISLockd.exe) からインストールすることができます。IISLockd.exe は、マイクロソフトの Web サイトの http://download.microsoft.com/download/iis50/Utility/2.1/NT45XP/EN-US/iislockd.exe (英語) からダウンロードして入手できます。

IISLockdown を実行しないで URLScan 2.0 をインストールする: IISLockdown を実行しないで URLScan をインストールするには、URLScan を IIS Lockdown ツールから手動で抽出する必要があります。まず、IISLockd.exe をディレクトリに保存します。次に、コマンド ラインで、IISLockd.exe をインストールしたディレクトリに移動してから次のコマンドを実行することにより、URLScan のセットアップ ファイルを抽出します。

iislockd.exe /q /c

このコマンドは、URLScan のインストール プログラムである URLScan.exe をアンパックします。

詳細については、http://www.microsoft.com/japan/technet/security/tools/urlscan.asp にある「URLScan セキュリティ ツール」の中の「URLScan 2.5 のインストール」を参照してください。

URLScan 2.5 をインストールする: URLScan 2.5 は、現時点での URLScan の最新のバージョンです。URLScan 2.5 をインストールするには、まず、URLScan 1.0 または URLScan 2.0 が必要です。

詳細については、http://support.microsoft.com/default.aspx?scid=kb;ja;307608 にある マイクロソフト サポート技術情報の 307608「[INFO] IIS の URLScan を使用する」を参照してください。

既定のインストール ディレクトリ: Urlscan.dll、URLScan.ini、および URLScan のログを含む一連の URLScan ファイルが、%windir%\system32\inetsrv\urlscan に格納されます。URLScan.dll は、フィルタです。URLScan.ini は、URLScan の動作方法を構成するために使用されるファイルです。

ログ ファイル

URLScan は、拒否された要求を記録したログ ファイルを生成します。ログ ファイルは次のフォルダに保存されます。

%windir%\system32\inetsrv\urlscan

ログ ファイルには、URLScan<date>.log という形式の名前が付けられます。

URLScan を削除する

URLScan の削除は、インターネット サービス マネージャから表示した Web サーバーのプロパティ ダイアログの ISAPI フィルタのページから手動で行います。

URLScan を構成する

どの要求を破棄するかを指定するために URLScan を構成するには、URLScan.ini を使用します。URLScan.ini は、次のフォルダに置かれています。

%windir%\system32\inetsrv\urlscan

Urlscan.ini の各セクションを変更する方法の詳細については、http://support.microsoft.com/default.aspx?scid=kb;ja;815155 にある マイクロソフト サポート技術情報の 815155「[HOWTO] URLScan を構成して ASP.NET Web アプリケーションを保護する方法」を参照してください。

URLScan で要求のサイズを制限する

URLScan は、要求が ASP.NET に到達すらしていない段階で、サービス拒否攻撃に対する別系列の防御として使用できます。この防御を行うには、MaxAllowedContentLength 属性、MaxUrl 属性、および MaxQueryString 属性の上限を設定します。

要求のサイズを制限するには、URLScan.ini に以下の構成を追加します。

[RequestLimits]
; このセクションのエントリは、要求の各部について、サーバーへの到達が
; 許可される長さを制限します。
;MaxAllowedContentLength=2000000000
;MaxUrl=16384
;MaxQueryString=4096

URLScan がインストールされた状態で VS .NET でデバッグする

既定では、URLScan では DEBUG 動詞が許可されていません。そのため、URLScan がインストールされているサーバー上で VS.NET を使用して Web アプリケーションをデバッグしようとすると、次のようなエラーが発生します。

Microsoft Development Environment: 
プロジェクトを実行しようとしているときにエラーが発生しました: Web サーバーでデバッグを開始できません。 
ASP.NET または ATL Server のデバッグを開始できませんでした。

ASP.NET または ATL Server のどちらかが正しくサーバーにインストールされていることを確認してください。次回からこのプロジェクトの ASP.NET ページのデバッグを無効にしますか?はい   いいえ   
ヘルプ   

URLScan のログ ファイルにも、次のようなエントリが記録されます。

[01-18-2003 - 22:25:26] Client at 127.0.0.1:  
specifically allowed.Request will be rejected.

デバッグをサポートするには、次に示すように、URLScan.ini の [AllowVerbs] セクションに DEBUG を追加します。

[AllowVerbs]
GET
HEAD
POST
DEBUG

注: 変更を反映させるには、IIS を再起動する必要があります。

コンテンツ ヘッダー (バナー) をマスクする

バナー情報によって Web サーバーの種類やバージョンが暴露されるのを防ぐために、URLScan.ini 内で RemoveServerHeader 属性を探し、次に示すようにこの属性の値を 1 に設定します。

RemoveServerHeader=1

詳細については、http://support.microsoft.com/default.aspx?scid=kb;ja;317741 にある マイクロソフト サポート技術情報の 317741「HOW TO: ネットワーク トレースと Telnet からの IIS バージョン情報をマスクします。」を参照してください。

注意事項

URLScan を使用すると、以下のような問題が発生する可能性があります。

URLScan は、DEBUG 動詞をブロックして、アプリケーションのデバッグを遮断します。デバッグをサポートする必要がある場合は、URLScan.ini の [AllowVerbs] セクションに DEBUG 動詞を追加してください。

変更を反映させるには IIS を再起動する必要があります。URLScan は、IIS プロセス (Inetinfo.exe) 内で実行される ISAPI フィルタなので、URLScan のオプションは IIS の起動時に URLScan.ini から読み込まれます。コマンド プロンプトから IISReset コマンドを実行することにより、IIS を再起動できます。

URLScan は、有害である可能性のある文字が含まれた要求をブロックします。たとえば、ディレクトリ トラバーサル攻撃に利用されるドット (.) など、過去に脆弱性を悪用するために使用された経緯のある文字を含む要求は、URLScan でブロックされます。このため、プロジェクトのパスにドット (.) を含めることはお勧めできません。ドット (.) の使用を許可しなければならない場合は、URLScan.ini で AllowDotInPath=1 に設定する必要があります。

Web アプリケーションのディレクトリのパスにドットが含まれている場合、たとえば、ディレクトリに "Asp.Net" などの名前が含まれている場合には、URLScan が要求を拒否し、「404 ファイルが見つかりません」というメッセージがクライアントに返されます。

URLScan に拒否されるという理由からプロジェクト名での使用を避けるべきその他の文字としては、カンマ (,)、シャープ記号 (#) などがあります。

参照情報

関連情報については、以下の URL を参照してください。

Urlscan.ini の各セクションを変更する方法の詳細については、http://support.microsoft.com/default.aspx?scid=kb;ja;815155 にある マイクロソフト サポート技術情報の 815155 「[HOWTO] URLScan を構成して ASP.NET Web アプリケーションを保護する方法」を参照してください。

URLScan の使用方法の詳細については、http://support.microsoft.com/default.aspx?scid=kb;ja;326444 にある マイクロソフト サポート技術情報の 326444「[HOWTO] URLScan ツールの構成方法」を参照してください。

URLScan 2.5 の詳細については、http://support.microsoft.com/default.aspx?scid=kb;ja;307608 にある マイクロソフト サポート技術情報の 307608 「[INFO] IIS の URLScan を使用する」を参照してください。


© 2008 Microsoft Corporation.All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker