公開日: 2004年9月7日 | 最終更新日:
2004年9月7日
トピック
目的
このモジュールの目的は次のとおりです。
| • | 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
を使用する」を参照してください。 |