トピック概要この章では、環境内で Microsoft® WindowsServer™2003 SP1 を実行する Web サーバーのセキュリティ強化に役立つ指針を説明します。組織のイントラネット内の Web サーバーおよびアプリケーションを包括的にセキュリティ保護するため、各 Microsoft インターネットインフォメーションサービス (IIS) サーバーと、そのサーバーで実行している各 Web サイトおよびアプリケーションを、そのサーバーおよびアプリケーションに接続してくるクライアント コンピュータから保護することをお勧めします。また、これらの Web サイトおよびアプリケーションを、組織のイントラネット内の他 IIS サーバー上で実行している Web サイトおよびアプリケーションから保護する必要もあります。 悪質なユーザーおよび攻撃者から保護するため、Windows Server 2003 ファミリのメンバについては、既定の構成では IIS はインストールされません。インストールされた場合、IIS はセキュリティの厳しい "ロック" モードになります。たとえば、IIS の既定の状態では、静的なコンテンツのみが処理されます。Active Server Pages (ASP)、ASP.NET、サーバー側インクルード (SSI)、Web Distributed Authoring and Versioning (WebDAV) 発行、Microsoft FrontPage® Server Extensions などの機能は、侵入者によって悪用される可能性があるので、動作させるには管理者が有効にする必要があります。これらの機能とサービスは、インターネット インフォメーション (IIS) サービス マネージャ の Web サービス拡張ノードで有効にできます。IIS マネージャは、IIS の管理を容易にするために設計されたグラフィカル ユーザー インターフェイス (GUI) です。IIS マネージャには、ファイル管理、ディレクトリ管理、およびアプリケーション プール構成に使用するリソースと、セキュリティ、パフォーマンス、および信頼性のための各種機能が組み込まれています。 組織のイントラネット内で HTML コンテンツをホストする IIS Web サーバーのセキュリティを向上させるために、この章の以下で説明する設定を実装することを検討してください。また、サーバーのセキュリティを保護するために、新しい脅威を検出できるようにセキュリティの監視、検出、および対応の手順を導入する必要もあります。 この章で説明しているほとんどの設定は、グループ ポリシーを使用して構成および適用されています。MSBP を補う付加的な GPO を適切な OU にリンクすると、Web サーバーのセキュリティはさらに向上します。使いやすさを考慮し、この章では MSBP と異なるポリシー設定だけについて説明します。 これらの設定は、Web サーバー OU に適用される付加的なグループ ポリシー テンプレートに、可能な限りまとめられています。この章で説明している設定の一部は、グループ ポリシーを使用して構成することができません。このような設定を手動で構成する方法についても、詳しく説明します。 次の表は、このガイドで定義している 3 種類の環境ごとに Web サーバー セキュリティ テンプレートの名前を示しています。これらの Web サーバー セキュリティ テンプレートには、付加的な Web サーバー テンプレートのポリシー設定が用意されています。このテンプレートを使用して、適切な環境で Web サーバー OU にリンクされる新しい GPO を作成できます。OU とグループ ポリシーを作成し、適切なセキュリティ テンプレートを各 GPO にインポートする手順の詳細については、「第 2 章 WindowsServer2003 のセキュリティ強化メカニズム」を参照してください。 表 9.1 IIS サーバー セキュリティ テンプレート LC-Web Server.inf | EC-Web Server.inf | SSLF-Web Server.inf |
すべての既定の設定については、http://go.microsoft.com/fwlink/?LinkId=15159 の関連ガイド『脅威とその対策 : Windows Server 2003 と Windows XP のセキュリティ設定』を参照してください。 このガイドでは、最小限の機能をインストールおよび有効にして IIS をセキュリティ保護する方法について説明します。IIS で追加機能を使用する予定がある場合は、セキュリティ設定の一部を調整する必要があります。SMTP、FTP、NNTP などのサービスを追加インストールする場合は、用意されたテンプレートやポリシーを調整する必要があります。 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/3648346f-e4f5-474b-86c7-5a86e85fa1ff.mspx の「IIS and Built-in Accounts (IIS 6.0)」(英語情報) では、IIS の各種機能で使用されるアカウントとそれぞれに必要な権限について説明しています。 複雑なアプリケーションをホストする Web サーバーにセキュリティの高い設定を実装する場合は、http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/848968f3-baa0-46f9-b1e6-ef81dd09b015.mspx の「IIS 6.0 Documentation」(英語情報) を全部を読むと参考になります。
匿名アクセスと SSLF 設定MSBP の SSLF のシナリオで明示的に定義されている 4 種類のユーザー権利は、IIS Web サイトへの匿名アクセスを阻止することを目的としています。ただし、SSLF 環境で匿名アクセスを許可する必要がある場合は、このガイドの第 2 章、第 3 章、および第 4 章で説明している OU 構造と GPO に重要な変更を行う必要があります。また、メンバ サーバー OU の下位階層に属さない新しい OU を作成する必要があります。この OU をドメイン ルートに直接リンクするか、別の OU 階層の子 OU にします。ただし、この新しい OU 内に配置する IIS サーバーに影響を与える GPO には、ユーザー権利を割り当てないでください。ユーザー権利がドメイン ベースの GPO によってではなくローカル ポリシーによって制御されるように、IIS サーバーを新しい OU に移動し、新しい GPO を作成してから、その GPS に MSBP 設定を適用し、ユーザー権利の割り当てを設定し直すことができます。つまり、この新しい GPO では、次のユーザー権利を未定義に設定する必要があります。 | • | ネットワーク経由でコンピュータへアクセス | | • | ローカル ログオンを許可する | | • | 横断チェックのバイパス | | • | バッチ ジョブとしてログオン |
有効にする必要がある IIS 機能の設定内容によって、未定義に設定する必要がある他のユーザー権利の割り当てを設定し直す必要があるかどうかが決まります。 監査ポリシーの設定このガイドで定義している 3 種類の環境における IIS サーバーの監査ポリシーの設定は、MSBP を使用して構成されます。MSBP の詳細については、「第 4 章 メンバ サーバー ベースライン ポリシー」を参照してください。MSBP の設定によって、関連するすべてのセキュリティ監査情報がすべての IIS サーバーに記録されます。 ユーザー権利の割り当てこのガイドで定義している 3 種類の環境における IIS サーバーのユーザー権利の割り当て設定は、MSBP を使用して構成されます。MSBP の詳細については、「第 4 章 メンバ サーバー ベースライン ポリシー」を参照してください。MSBP の設定によって、関連するすべてのセキュリティ監査情報がすべての IIS サーバーに記録されます。 セキュリティ オプションこのガイドで定義している 3 種類の環境における IIS サーバーのセキュリティ オプションの設定は、MSBP を使用して構成されます。MSBP の詳細については、「第 4 章 メンバ サーバー ベースライン ポリシー」を参照してください。MSBP の設定により、関連するすべてのセキュリティ オプションが IIS サーバー間で同一に構成されます。 イベント ログの設定このガイドで定義している 3 種類の環境における IIS サーバーのエラー ログの設定は、MSBP を使用して構成されます。MSBP の詳細については、「第 4 章 メンバ サーバー ベースライン ポリシー」を参照してください。MSBP の設定により、適切なイベント ログの設定が組織内の IIS サーバー間で同一に構成されます。 追加のセキュリティ設定IIS が WindowsServer2003 SP1 を実行するコンピュータにインストールされている場合は、IIS の既定の設定では、静的な Web コンテンツの転送のみが許可されます。Web サイトとアプリケーションが動的コンテンツを含んでいたり、何らかの追加 IIS コンポーネントが必要となる場合には、 IIS 追加機能を個別に有効にする必要があります。ただし、環境内の各 IIS サーバーに対する攻撃の危険性を最小限に抑えるように注意する必要があります。組織内の Web サイトが静的コンテンツのみで構成されており、他の IIS コンポーネントを一切必要としない場合は、既定の IIS の構成で、IIS サーバーの構成で、IIS サーバーが攻撃を受ける危険性を最小限に抑えることができます。 MSBP を使用してセキュリティ設定を適用することで、IIS サーバーのセキュリティを大幅に強化できます。それでも、検討する必要のある追加の設定がいくつかあります。ここで説明する設定はグループ ポリシーでは実装できないので、すべての IIS サーバーにおいて手動で構成する必要があります。 必要な IIS コンポーネントのみインストールするIIS 6.0 には、World Wide Web Publishing Service 以外にも、FTP、NNTP、SMTP を提供するために必要なサービスなど、コンポーネントとサービスがあります。IIS のコンポーネントとサービスをインストールして有効化するには、Windows コンポーネント ウィザードの [アプリケーション サーバー] を使用します。このツールは、[コントロールパネル] の [プログラムの追加と削除] から起動します。IIS をインストールしたら、Web サイトおよびアプリケーションに必要なすべての IIS コンポーネントおよびサービスを有効にする必要があります。 インターネット インフォメーション サービス (IIS) 6.0 をインストールするには 1. | [コントロール パネル] で、[プログラムの追加と削除] をダブルクリックします。 | 2. | [Windows コンポーネントの追加と削除] をクリックして、Windows コンポーネント ウィザードを起動します。 | 3. | [コンポーネント] リストで [アプリケーション サーバー] をクリックし、[詳細] をクリックします。 | 4. | [アプリケーション サーバー] ダイアログ ボックスの [アプリケーション サーバーのサブコンポーネント] で、[インターネット インフォメーション サービス (IIS)] をクリックし、[詳細] をクリックします。 | 5. | [インターネット インフォメーション サービス (IIS)] ダイアログ ボックスの [インターネット インフォメーション サービス (IIS) のサブコンポーネント] リストで、次のいずれかを行います。 | • | オプションのコンポーネントを追加するには、インストールするコンポーネントの隣にあるチェック ボックスをオンにします。 | | • | オプションのコンポーネントを削除するには、削除するコンポーネントの隣にあるチェック ボックスをオフにします。 |
| 6. | Windows コンポーネント ウィザードに戻るまで [OK] をクリックします。 | 7. | [次へ] をクリックして、[完了] をクリックします。 |
Web サイトおよびアプリケーションに必要な最小限の IIS コンポーネントとサービスだけを有効にするようにしてください。不要なコンポーネントとサービスを有効にすると、IIS サーバーが攻撃を受ける危険性が高まります。以下の図と表に、IIS コンポーネントの場所と推奨設定を示します。 次の図は、[アプリケーション サーバー] ダイアログ ボックスのサブコンポーネントを示しています。  図 9.1 [アプリケーション サーバー] ダイアログ ボックスとサブコンポーネントのリスト 画像を画面全体に表示 次の表は、アプリケーション サーバーのサブコンポーネントの説明と、それを有効にすることが推奨される状況を示しています。 表 9.2 アプリケーション サーバー サブコンポーネントの推奨設定 アプリケーション サーバー コンソール | 無効 | Microsoft 管理コンソール (MMC) のスナップインが提供されます。これを使用すると、すべての Web アプリケーション サーバー コンポーネントを管理できます。このコンポーネントは専用の IIS サーバーには必要ありません。IIS サーバーでは IIS サービス マネージャを使用できます。 | ASP.NET | 無効 | ASP.NET アプリケーションのサポートが提供されます。IIS サーバーが ASP.NET アプリケーションを実行する場合には、このコンポーネントを有効にします。 | ネットワーク COM+ アクセスの有効化 | 有効 | IIS サーバーが、分散アプリケーションの COM+ コンポーネントをホストできるようになります。FTP、BITS サーバー拡張、World Wide Web サービス、IIS サービス マネージャなどに必要です。 | ネットワーク DTC アクセスの有効化 | 無効 | IIS サーバーは、分散トランザクション コーディネータ (DTC) でネットワーク トランザクションに参加するアプリケーションをホストできるようになります。IIS サーバーで実行しているアプリケーションで必要にならない限り、このコンポーネントは無効にします。 | インターネット インフォメーション サービス (IIS) | 有効 | 基本的な Web サービスと FTP サービスが提供されます。このコンポーネントは専用の IIS サーバーに必要です。 注 :このコンポーネントが無効の場合、すべてのサブコンポーネントも無効になります。 | メッセージ キュー | 無効 | Microsoft メッセージ キュー (MSMQ) は、エンタープライズ Web アプリケーションに、メッセージのルーティング、保存、および転送を実行するミドルウェア層を提供します。 |
次の図は、[インターネット インフォメーション サービス (IIS)] ダイアログ ボックスのサブコンポーネントを示しています。 次の表は、IIS のサブコンポーネントの説明と、それを有効にすることが推奨される状況を示しています。 表 9.3 IIS サブコンポーネントの推奨設定 バックグラウンド インテリジェント転送サービス (BITS) サーバー拡張 | 無効 | BITS サーバー拡張を使用すると、クライアント上の BITS が、ファイルをこのサーバーにバックグラウンドでアップロードします。このサーバーへのファイルのアップロードに BITS を使用するアプリケーションがクライアント上にある場合は、BITS サーバー拡張を有効にして構成します。そうでない場合は、無効のままにします。Windows Update、Microsoft Update、SUS、WSUS、および自動更新には、このコンポーネントの実行は不要です。これらが必要とするのは BITS クライアント コンポーネントであり、IIS の一部ではありません。 | 共通ファイル | 有効 | IIS にはこれらのファイルが必要です。IIS サーバーでは常に有効にしておく必要があります。 | FTP (File Transfer Protocol) サービス | 無効 | 有効に設定すると、IIS サーバーが FTP サービスを提供できるようになります。このサービスは、専用の IIS サーバーには必要ありません。 | FrontPage 2002 Server Extensions | 無効 | 有効に設定すると、FrontPage による Web サイトの管理と公開がサポートされるようになります。どの Web サイトでも FrontPage Server Extensions が使用されない場合には、専用の IIS サーバーで無効にします。 | インターネット インフォメーション サービス マネージャ | 有効 | IIS の管理インターフェイスです。 | インターネット印刷 | 無効 | 有効にすると、Web ベースのプリンタ管理が提供され、プリンタを HTTP で共有できるようになります。このコンポーネントは、専用の IIS サーバーには必要ありません。 | NNTP Service | 無効 | インターネットで Usenet 記事を配信、問い合わせ、取得、投稿します。このコンポーネントは、専用の IIS サーバーには必要ありません。 | SMTP Service | 無効 | 有効にすると、電子メールの転送がサポートされます。このコンポーネントは、専用の IIS サーバーには必要ありません。 | WWW (World Wide Web) サービス | 有効 | 有効にすると、Web サービス、静的および動的コンテンツをクライアントに提供できるようになります。このコンポーネントは専用の IIS サーバーに必要です。 |
次の図は、[メッセージ キュー] ダイアログ ボックスのサブコンポーネントを示しています。 次の表は、メッセージ キューのサブコンポーネントの説明と、それを有効にすることが推奨される状況を示しています。 表 9.4 メッセージ キュー サブコンポーネントの推奨設定 Active Directory 統合 | 無効 | 有効にすると、IIS サーバーがドメインに属しているときには必ず ActiveDirectory® ディレクトリ サービスとの統合が提供されます。IIS サーバーで実行している Web サイトおよびアプリケーションが Microsoft メッセージ キュー (MSMQ) を使用する場合に、このコンポーネントが必要になります。 | 共通 | 無効 | IIS サーバーで実行している Web サイトおよびアプリケーションが MSMQ を使用する場合に、このコンポーネントが必要になります。 | ダウンレベル クライアント サポート | 無効 | 有効にすると、ActiveDirectory へのアクセスと、ダウンストリーム クライアントのサイト認識が可能になります。IIS サーバーの Web サイトとアプリケーションが MSMQ を使用する場合には、このコンポーネントが必要になります。 | MSMQ HTTP サポート | 無効 | 有効にすると、HTTP トランスポートでメッセージを送受信する機能が使用可能になります。IIS サーバーの Web サイトとアプリケーションが MSMQ を使用する場合には、このコンポーネントが必要になります。 | ルーティング サポート | 無効 | MSMQ にストア アンド フォワード メッセージング サービスおよび効率の良いルーティング サービスが提供されます。IIS サーバーで実行している Web サイトおよびアプリケーションが MSMQ を使用する場合に、このコンポーネントが必要になります。 | トリガ | 無効 | 受信メッセージがキューに到達したことを、COM コンポーネントの機能またはスタンドアロン実行可能プログラムに関連付けます。 |
次の図は、[バックグラウンド インテリジェント転送サービス (BITS) サーバー拡張] ダイアログ ボックスのサブコンポーネントを示しています。 次の表は、BITS サーバー拡張のサブコンポーネントの説明と、それを有効にすることが推奨される状況を示しています。 表 9.5 BITS サーバー拡張サブコンポーネントの推奨設定 BITS 管理コンソール スナップイン | 無効 | BITS を管理する MMC スナップインがインストールされます。ISAPI (Internet Server Application Programming Interface) で BITS サーバー拡張を有効にしている場合に、このコンポーネントを有効にします。 | BITS サーバー拡張 ISAPI | 無効 | IIS サーバーが BITS を使用してデータを転送できるように、BITS ISAPI がインストールされます。BITS サーバー拡張を使用すると、クライアント上の BITS が、ファイルをこのサーバーにバックグラウンドでアップロードします。このサーバーへのファイルのアップロードに BITS を使用するアプリケーションがクライアント上にある場合は、BITS サーバー拡張を有効にして構成します。そうでない場合は、無効のままにします。Windows Update、Microsoft Update、SUS、WSUS、および自動更新には、このコンポーネントの実行は不要です。これらが必要とするのは BITS クライアント コンポーネントであり、IIS の一部ではありません。 |
次の図は、[WWW (World Wide Web) サービス] ダイアログ ボックスのサブコンポーネントを示しています。  図 9.5 [WWW (World Wide Web) サービス] ダイアログ ボックスとサブコンポーネントのリスト 画像を画面全体に表示 次の表は、WWW (World Wide Web) サービスのサブコンポーネントの説明と、それを有効にすることが推奨される状況を示しています。 表 9.6 は、WWW (World Wide Web) サービス サブコンポーネントの推奨設定 Active Server Pages | 無効 | ASP のサポートが提供されます。IIS サーバーの Web サイトまたはアプリケーションが ASP を使用しない場合は、このコンポーネントを無効にします。無効にするには、Web サービス拡張を使用します。詳細については、この章の「必要な Web サービス拡張のみ有効にする」を参照してください。 | インターネット データ コネクタ | 無効 | 有効にすると、.idc 拡張子のファイルを使用する動的コンテンツがサポートされます。IIS サーバーで実行している Web サイトまたはアプリケーションに拡張子が .idc のファイルがない場合は、このコンポーネントを無効にします。無効にするには、Web サービス拡張を使用します。詳細については、この章の「必要な Web サービス拡張のみ有効にする」を参照してください。 | リモート管理 (HTML) | 無効 | IIS の管理に使用する HTML インターフェイスが提供されます。IIS サービス マネージャを代わりに使用して、管理を容易にし、IIS サーバーの攻撃対象領域を減らすことができます。この機能は、専用の IIS サーバーには必要ありません。 | リモート デスクトップ Web 接続 | 無効 | ターミナル サービス クライアント接続をホストするための Microsoft ActiveX® コントロールとサンプル ページが含まれます。IIS サービス マネージャを代わりに使用して、管理を容易にし、IIS サーバーの攻撃対象領域を減らすことができます。専用の IIS サーバーには必要ありません。 | サーバー側インクルード | 無効 | 有効にすると、.shtm、.shtml、.stm ファイルのサポートが提供されます。IIS サーバーで実行している Web サイトやアプリケーションに、これらの拡張子を持つファイルが含まれない場合には、このコンポーネントを無効にします。 | WebDAV 発行 | 無効 | WebDAV により HTTP/1.1 プロトコルが拡張され、クライアントは Web 上のリソースを発行、ロック、および管理できるようになります。専用の IIS サーバーでこのコンポーネントを無効にするか、Web サービス拡張を使用して無効にします。詳細については、この章の「必要な Web サービス拡張のみ有効にする」を参照してください。 | WWW (World Wide Web) サービス | 有効 | 有効にすると、Web サービス、静的および動的コンテンツをクライアントに提供できるようになります。このコンポーネントは専用の IIS サーバーに必要です。 |
必要な Web サービス 拡張のみ有効にするIIS サーバーで実行している多くの Web サイトとアプリケーションには、動的コンテンツの生成など、静的なページの処理以外の機能が用意されています。IIS サーバーによる動的コンテンツの機能と拡張は、Web サービス拡張を使用して実現されます。 IIS 6.0 の拡張セキュリティ機能により、Web サービス拡張を個別に有効または無効にすることができます。前述のように、新規インストール後の IIS サーバーは、静的なコンテンツのみ送信します。動的コンテンツ機能を有効にするには、IIS マネージャの Web サービス拡張ノードを使用することができます。これらの拡張には、ASP.NET、SSI、WebDAV、FrontPage Server などがあります。 既存のアプリケーションとの互換性を最大限に活かす方法の 1 つは、すべての Web サービス拡張を有効にすることですが、この方法では、IIS が攻撃を受ける危険性が増し、セキュリティ リスクが増大します。環境内の IIS サーバーで実行している Web サイトおよびアプリケーションに必要な Web サービス拡張だけを有効にする必要があります。こうすることで、サーバーの機能が最小限に抑えられ、各 IIS サーバーの攻撃の危険性を低減できます。 IIS サーバーが攻撃を受ける危険性をできる限り小さくするには、このガイドで定義している 3 種類の環境内の IIS サーバーで、必要な Web サービス拡張のみを有効にする必要があります。 次の表は、事前定義されている Web サービス拡張と、それが必要になる状況の詳細な説明を示しています。 表 9.7 Web サービス拡張を有効にする Active Server Pages | IIS サーバーで実行している 1 つ以上の Web サイトとアプリケーションに ASP コンテンツが含まれる場合。 | ASP.NET v1.1.4322 | IIS サーバーで実行している 1 つ以上の Web サイトおよびアプリケーションに ASP.NET コンテンツが含まれる場合。 | すべての不明な CGI 拡張 | IIS サーバーで実行している 1 つ以上の Web サイトおよびアプリケーションに不明な CGI 拡張コンテンツが含まれる場合。 | すべての不明な ISAPI 拡張 | IIS サーバーで実行している 1 つ以上の Web サイトおよびアプリケーションに不明な ISAPI 拡張コンテンツが含まれる場合。 | FrontPage Server Extensions 2002 | IIS サーバーで実行している 1 つ以上の Web サイトで、FrontPage Server Extensions を使用する場合。 | インターネット データ コネクタ (IDC) | IIS サーバーで実行している 1 つ以上の Web サイトおよびアプリケーションが、IDC を使用してデータベース情報 (このコンテンツには .idc ファイルと .idx ファイルが含まれる) を表示する場合。 | サーバー側インクルード (SSI) | IIS サーバーで実行している 1 つ以上の Web サイトが、SSI ディレクティブを使用して IIS サーバーに再利用可能なコンテンツ (たとえば、ナビゲーション バー、ページ ヘッダーまたはフッター) を別の Web ページに挿入するように指示する場合。 | WebDAV | WebDAV サポートは、クライアントが Web リソースを透過的に発行し、管理する場合に IIS サーバーに必要です。 |
専用のディスク ボリューム上にコンテンツを配置するIISは、既定の Web サイトのファイルを <systemroot>\inetpub\wwwroot フォルダに配置します。この <systemroot> は、Windows Server 2003 オペレーティング システムがインストールされているドライブです。 このガイドで定義している 3 種類の環境では、Web サイトおよびアプリケーションを構成するすべてのファイルとフォルダが、オペレーティング システムとは異なる専用ディスク ボリュームに配置されます。このようにすることで、ディレクトリ トラバーサル攻撃を防ぐことができます。ディレクトリ トラバーサル攻撃とは、攻撃者が IIS サーバーのディレクトリ構造外にあるファイルの要求を送信する攻撃です。 たとえば、Cmd.exe ファイルが <systemroot>\System32 フォルダにあるとします。この場合、攻撃者はコマンド プロンプトを起動しようとして、次のような要求を送信してきます。 ..\..\Windows\system\cmd.exe in an attempt to invoke the command prompt. Web サイト コンテンツが別のディスク ボリュームにある場合は、このタイプのディレクトリ トラバーサル攻撃は、次の 2 つの理由から阻止することができます。1つは、WindowsServer 2003SP1 の基本ビルドの一部として Cmd.exe のアクセス許可はリセットされており、このファイルにアクセスできるユーザー グループは制限されています。2 つ目として、Cmd.exe ファイルは Web ルートと同じディスク ボリューム上には存在しません。そして、このタイプの攻撃で異なるドライブ上のコマンドにアクセスする方法は、現在のところありません。 Web サイトおよびアプリケーションのファイルとフォルダを専用ディスク ボリューム上に配置すると、セキュリティ関連の効果だけではなく、バックアップや復元などの管理作業も簡単になります。また、別の専用物理ドライブに配置すると、システム ボリュームでのディスク競合が減少し、全体的なディスク アクセス パフォーマンスが向上します。 NTFS アクセス許可を設定するWindows Server 2003 SP1 を実行するコンピュータは、NTFS ファイル システムのアクセス許可を検証し、ユーザーやプロセスが特定のファイルまたはフォルダに対して持っているアクセス許可の種類を判断します。このガイドで定義している 3 種類の環境で、IIS サーバー上の Web サイトに NTFS アクセス許可を割り当て、特定のユーザーからのアクセスを許可したり禁止したりする必要があります。 NTFS アクセス許可を割り当てる対象は、Web サイトおよびアプリケーションのコンテンツに対するアクセスを許可または拒否されているアカウントに限られます。NTFS アクセス許可は、Web アクセス許可の代わりとして使用するのではなく、Web アクセス許可と組み合わせて使用する必要があります。これに対し、Web サイトのアクセス許可を割り当てる対象は、Web サイトとアプリケーションにアクセスするすべてのユーザーに及びます。同じディレクトリまたはファイルに対する Web アクセス許可と NTFS アクセス許可が競合する場合は、さらに制限された設定を適用します。 匿名アクセスが望ましくない Web サイトおよびアプリケーションでは、匿名アカウントのアクセスを明示的に拒否する必要があります。匿名アクセスが発生するのは、認証された資格情報を持たないユーザーがネットワーク リソースにアクセスした場合です。匿名アカウントには、ビルトインの Guest アカウント、Guests グループ、IIS Anonymous アカウントなどがあります。また、どのような書き込みアクセス許可も、IIS 管理者以外のユーザーには一切、付与しないでください。 次の表は、IIS サーバーのファイルの種類ごとに適用すべき推奨 NTFS アクセス許可をまとめたものです。ファイルを種類ごとにグループ化して別々のフォルダに分類しておくと、NTFS アクセス許可の適用が簡単になります。 表 9.8 NTFS アクセス許可の推奨設定 CGI ファイル (.exe、.dll、.cmd、.pl) | Everyone (実行) Administrators (フル コントロール) System (フル コントロール) | スクリプト ファイル (.asp) | Everyone (実行) Administrators (フル コントロール) System (フル コントロール) | インクルード ファイル (.inc、.shtm、.shtml) | Everyone (実行) Administrators (フル コントロール) System (フル コントロール) | 静的コンテンツ (.txt、.gif、.jpg、.htm、.html) | Everyone (読み取り専用) Administrators (フル コントロール) System (フル コントロール) |
IIS Web サイトのアクセス許可を設定するIIS は、Web サイトのアクセス許可を検証し、スクリプト ソースへのアクセスの許可やディレクトリ参照など、Web サイト内で行う操作の種類を判断します。このガイドで定義している 3 種類の環境では、IIS サーバーで Web サイトのアクセス許可を割り当て、Web サイトのセキュリティをさらに強化する必要があります。 Web サイトのアクセス許可は、NTFS アクセス許可と組み合わせて、特定のサイト、ディレクトリ、およびファイルについて設定できます。このアクセス許可を割り当てる対象は、NTFS アクセス許可とは異なり、IIS サーバーで実行されている Web サイトにアクセスするすべてのユーザーに及びます。Web サイトのアクセス許可は、MMC の [IIS マネージャ] スナップインを使用して適用します。 次の表は、IIS 6.0 でサポートされている Web サイトのアクセス許可の一覧を示し、各アクセス許可を Web サイトに割り当てる状況について簡単に説明しています。 表 9.9 IIS 6.0 Web サイトのアクセス許可 読み取り | ユーザーは、ディレクトリやファイルの内容とプロパティを参照できます。このアクセス許可は、既定で選択されています。 | 書き込み | ユーザーは、ディレクトリまたはファイルの内容とプロパティを変更できます。 | スクリプト ソース アクセス | ユーザーはソースファイルにアクセスできます。"読み取り" が許可されている場合は、ソースを読み取ることができます。"書き込み" が許可されている場合は、スクリプトのソース コードを変更できます。スクリプト ソース アクセスには、スクリプトのソース コードが含まれています。"読み取り" と "書き込み" のどちらも許可されていない場合は、このオプションは選択できません。 重要 :スクリプト ソース アクセスが許可されている場合、ユーザーは、ユーザー名やパスワードなどの重要な情報まで参照できます。また、IIS サーバーで実行されているソース コードを変更したり、サーバーのセキュリティやパフォーマンスに重大な影響を与えたりすることもできます。 | ディレクトリの参照 | ユーザーは、ファイルの一覧とコレクションを参照できます。 | ログ アクセス | Web サイトにアクセスがあるたびに、ログ エントリが作成されます。 | このリソースにインデックスを付ける | インデックス サービスによるリソースのインデックス付けを許可します。これにより、リソースの検索を実行できるようになります。 | Execute | 次のオプションで、ユーザーのスクリプト実行レベルを決定します。 | • | なし。スクリプト実行可能ファイルをサーバーで実行できません。 | | • | スクリプトのみ。スクリプトのみサーバーで実行できます。 | | • | スクリプトおよび実行可能ファイル。スクリプトと実行可能ファイルのどちらもサーバーで実行できます。 |
|
IIS ログを構成するこのガイドで定義している 3 種類の環境では、IIS サーバーで IIS のログを有効にすることをお勧めします。 ログは、Web サイトやアプリケーションごとに個別に作成できます。IIS は、Windows オペレーティング システムのイベント ログとパフォーマンス監視機能よりも有効な情報をログに記録します。IIS のログには、誰がサイトにアクセスしたか、何を参照したか、いつその情報が最後に参照されたかといった情報が含まれます。IIS のログを使用すると、コンテンツのアクセス頻度を評価したり、情報のボトルネックを把握できる他、攻撃調査のリソースとしても利用できます。 MMC の [IIS マネージャ] スナップインを使用すると、ログ ファイルの形式、ログ スケジュール、およびログに記録する具体的な情報を設定できます。ログのサイズを制限するために、ログにどのフィールドを記録するかを慎重に計画する必要があります。 IIS のログを有効にすると、IIS は W3C 拡張ログ ファイル形式を使用して、毎日の動作状況のログを作成します。このログは、IIS マネージャで Web サイトごとに指定されたディレクトリに保存されます。サーバーのパフォーマンスを向上させるため、ログはシステムの入っていないストライプ ディスク ボリュームまたはストライプ/ミラー ディスク ボリュームに保存してください。 また、ログは、UNC (Universal Naming Convention) 形式の完全なパス名を使用して、ネットワーク上のリモート共有にも書き込むことができます。このリモート ログ機能により、管理者はログ ファイルの保存とバックアップを集中管理するように設定できます。ただし、ネットワーク経由でログ ファイルが書き込まれる場合は、サーバーのパフォーマンスが低下する可能性があります。 IIS のログファイルは、他の ASCII や ODBC (Open Database Connectivity) 形式を使用するように設定することができます。ODBC ログは、動作状況情報を SQL データベースに保存できます。ただし、ODBC ログを有効にすると、IIS のカーネル モード キャッシュが無効になり、サーバー パフォーマンスが全体的に低下する場合があります。 何百個ものサイトをホストする IIS サーバーでは、集中バイナリ ログを有効にすると、ログのパフォーマンスが向上します。集中バイナリ ログは、IIS サーバー上のすべての Web サイトが 1 つのログ ファイルに動作状況情報を書き込むことができます。これにより、個別に保存し分析する必要のあるログの数が減少し、IIS ログ プロセスの管理しやすさと拡張性が大幅に向上します。集中バイナリ ログの詳細については、http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/13a4c0b5-686b-4766-8729-a3402da835f1.mspx の「IIS Centralized Binary Logging」ページ (英語情報) を参照してください。
IIS ログが IIS サーバー上に保存されている場合、ログへのアクセス許可があるのは既定ではサーバー管理者のみです。ログ ファイルのディレクトリまたはファイルの所有者が Local Administrators グループに属していない場合は、HTTP.sys ファイル (IIS 6.0 のカーネルモード ドライバ) により NT イベント ログにエラーが記録されます。このエラーは、ディレクトリまたはファイルの所有者が Local Administrators グループに属しておらず、所有者が Local Administrators グループに追加されるか、既存ディレクトリか既存ログ ファイルが削除されるまで、ログ記録が中止されていることを示します。 ユーザー権利の割り当てに独自のセキュリティ グループを手動で追加するMSBP を使用して適用されるユーザー権利の割り当てのほとんどに対して、このガイドに付属のセキュリティ テンプレートでは適切なセキュリティ グループが指定されています。ただし、テンプレートに含まれていないアカウントとセキュリティ グループもいくつかあります。これらのセキュリティ識別子 (SID) はそれぞれの Windows 2003 ドメインに固有のものであるためです。手動で設定する必要があるユーザー権利の割り当てを以下の表に示します。 警告 :次の表には、ビルトイン Administrator アカウントの記載があります。Administrator アカウントとビルトイン Administrators セキュリティ グループとを混同しないように注意してください。以下のアクセス拒否のユーザー権利のいずれかに Administrators セキュリティ グループを追加した場合、ローカルにログオンしてその間違いを修正する必要があります。 また、「第 4 章 メンバ サーバー ベースライン ポリシー」の推奨に従ってビルトイン Administrator アカウントの名前を変更している場合があります。Administrator アカウントをいずれかのユーザー権利に追加した場合は、名前の変更後のアカウントを指定していることを確認してください。 表 9.10 手動で追加されるユーザー権利の割り当て ネットワーク経由でコンピュータへアクセスを拒否する | ビルトイン Administrator、Support_388945a0、 Guest、すべての非オペレーティング システム サービス アカウント | ビルトイン Administrator、Support_388945a0、 Guest、すべての非オペレーティング システム サービス アカウント | ビルトイン Administrator、Support_388945a0、 Guest、すべての非オペレーティング システム サービス アカウント |
重要 :"すべての非オペレーティング システム サービス アカウント" には、企業全体において特定のアプリケーションで使用されるサービス アカウントが該当しますが、LOCAL SYSTEM アカウント、LOCAL SERVICE アカウント、および NETWORK SERVICE アカウント (オペレーティング システムが使用するビルトイン アカウント) は該当しません。 既知のアカウントを保護するMicrosoft Windows Server 2003 には、削除できず、名前だけ変更できるビルトイン ユーザー アカウントがいくつかあります。Windows Server 2003 の最もよく知られているビルトイン アカウントは、Guest と Administrator です。 既定では、Guest アカウントはメンバ サーバーとドメイン コントローラでは無効になっています。この設定は変更しないでください。悪意のあるコードの多くは、サーバーへの侵入で最初の試みとしてビルトイン Administrator アカウントを使用します。この理由から、ビルトイン Administrator アカウントの名前と説明を変更して、攻撃者がよく知られているアカウントを使用してリモート サーバーへ侵入することを防止してください。 ビルトイン Administrator アカウントのセキュリティ識別子 (SID) を指定し、その本当の名前を調べてサーバーに侵入しようとする攻撃ツールが出現して以来、この構成変更の価値はここ数年間で減少しています。SID は、各ユーザー、グループ、コンピュータ アカウント、およびネットワークのログオン セッションをそれぞれ識別する値です。このビルトイン アカウントの SID を変更することはできません。ただし、Administrator アカウント名を一意の名前に変更すると、運用グループが Administrator アカウントに対する攻撃を簡単に監視できるようになります。 IIS サーバーのよく知られたアカウントをセキュリティで保護するには | • | すべてのドメインやサーバーで、Administrator アカウントと Guest アカウントの名前を変更し、パスワードを長く複雑な値に変更します。 | | • | 各サーバーで異なる名前とパスワードを使用します。すべてのドメインとサーバーで同じアカウント名とパスワードを使用する場合、攻撃者があるメンバ サーバーへのアクセスに成功した場合に、他のすべてのサーバーにもアクセスできるようになってしまいます。 | | • | アカウントを容易に識別できないように、アカウントの説明を既定以外に変更します。 | | • | 変更した内容を安全な場所に記録します。 注 :ビルトイン Administrator アカウントの名前は、グループ ポリシーを使用して変更できます。このアカウントには各組織が固有の名前を指定する必要があるので、このガイドに付属のセキュリティ テンプレートではこの設定は構成していません。ただし、このガイドで定義している 3 種類の環境すべてでは、[アカウント: Administrator アカウント名の変更] 設定を使用して、Administrator アカウント名を変更できます。このポリシー設定は、GPO のセキュリティ オプション設定に含まれています。 |
サービス アカウントをセキュリティ保護する避けられない場合を除いて、ドメイン アカウントのセキュリティ コンテキストでサービスを実行するようには構成しないでください。サーバーに物理的にアクセスされた場合、LSA シークレットをダンプすることで、ドメイン アカウントのパスワードが容易に取得されます。サービス アカウントのセキュリティを保護する方法の詳細については、http://www.microsoft.com/japan/technet/security/topics/serversecurity/serviceaccount/default.mspx の「サービスおよびサービス アカウントのセキュリティ計画ガイド」を参照してください。 SCW を使用してポリシーを作成する必要なセキュリティ設定を展開するには、セキュリティの構成ウィザード (SCW) と、このガイドのダウンロード バージョンに付属のセキュリティ テンプレートの両方を使用して、サーバー ポリシーを作成する必要があります。 独自のポリシーを作成する場合は、[レジストリ設定] セクションと [監査ポリシー] セクションをスキップします。これらの設定は、選択した環境のセキュリティ テンプレートで提供されます。この方法は、テンプレートのポリシー要素が SCW によって構成されるポリシー要素より優先されるようにするために必要です。 構成作業を始める際には、オペレーティング システムの新規インストールを使用することをお勧めします。こうすることにより、以前の構成の古い設定やソフトウェアが残っていないことが保証されます。可能であれば、展開に使用するものと同様のハードウェアを使用することをお勧めします。これにより、互換性が向上します。このような新規インストールを参照コンピュータと呼びます。 IIS サーバー ポリシーを作成するには 1. | Windows Server 2003 SP1 の新しいインストールを新しい参照コンピュータに作成します。 | 2. | [コントロール パネル]、[アプリケーションの追加と削除]、[Windows コンポーネントの追加と削除] の順に選択して、セキュリティの構成ウィザードのコンポーネントをコンピュータにインストールします。 | 3. | コンピュータをドメインに参加させます。これにより、親 OU からすべてのセキュリティ設定が適用されます。 | 4. | この役割を共有するすべてのサーバーに必要な必須アプリケーションのみをインストールし、構成します。たとえば、役割固有のサービス、ソフトウェア エージェント、管理エージェント、テープ バックアップ エージェント、ウイルス対策ユーティリティ、スパイウェア対策ユーティリティなどが該当します。 | 5. | SCW GUI を起動し、[新しいセキュリティ ポリシーの作成] を選択して、参照コンピュータを指定します。 | 6. | アプリケーション サーバーの役割、Web サーバーの役割など、検出されたサーバーの役割が環境に適していることを確認します。 | 7. | 検出されたクライアント機能が環境に適していることを確認します。 | 8. | 検出された管理オプションが環境に適していることを確認します。 | 9. | ベースラインに必要な追加サービス、たとえばバックアップ エージェントやウイルス対策ソフトウェアが検出されていることを確認します。 | 10. | 環境で指定されていないサービスの扱いを決定します。セキュリティをさらに向上させるため、このポリシー設定を [無効] にします。この設定は、運用ネットワークに展開する前にテストしてください。運用サーバーが、参照コンピュータに複製されていない追加サービスを実行する場合に、問題が発生することがあります。 | 11. | [ネットワーク セキュリティ] セクションで [このセクションをスキップする] チェック ボックスがオフであることをオフであることを確認し、[次へ] をクリックします。前の手順で特定した適切なポートとアプリケーションが、Windows ファイアウォールの例外として構成されます。 | 12. | [レジストリの設定] セクションで、[このセクションをスキップする] チェック ボックスをオンにし、[次へ] をクリックします。これらのポリシー設定は、付属の INF ファイルからインポートされます。 | 13. | [監査ポリシー] セクションで、[このセクションをスキップする] チェック ボックスをオンにし、[次へ] をクリックします。これらのポリシー設定は、付属の INF ファイルからインポートされます。 | 14. | 適切なセキュリティ テンプレート (EC-IIS Server.inf など) を含めます。 | 15. | ポリシーを適切な名前 (IIS Server.xml など) で保存します。 注 :MSBP により、FTP、SMTP、NNTP など、いくつかの IIS 関連サービスが無効になります。このガイドで定義している 3 種類の環境のいずれかに設置されている IIS サーバー上で、上記のサービスのいずれかを有効にする必要がある場合は、Web サーバー ポリシーを変更する必要があります。 |
SCW を使用してポリシーをテストするポリシーを作成して保存したら、テスト環境に展開することを強くお勧めします。テスト サーバーが運用サーバーと同じハードウェアおよびソフトウェア構成であることが理想的です。こうすることで、特定のハードウェア デバイスに予期しないサービスが必要になった場合などの、潜在的な問題を検出して解決できるようになります。 ポリシーのテストには、2 つの方法があります。SCW 独自の展開機能を使用する方法と、GPO を使用してポリシーを展開する方法です。 ポリシーの作成をこれから始める場合には、SCW 独自の展開機能を使用することを検討してください。SCW を使用して、ポリシーをサーバーごとにプッシュするか、Scwcmd を使用してポリシーをサーバーのグループにプッシュします。この展開方法を使用すると、SCW から展開したポリシーを簡単にロールバックできます。この機能は、テスト プロセスでポリシーの変更を複数行う場合に便利です。 ポリシーをテストする目的は、そのポリシーを対象サーバーに適用しても重要な機能に悪影響が及ばないことを確認することです。構成の変更を適用したら、コンピュータの主要な機能を検証する必要があります。たとえば、証明機関 (CA) として構成されているサーバーの場合は、クライアントが証明書を要求して取得できること、証明書失効リストをダウンロードできることなどを確認します。 ポリシーの構成に問題がないことを確認したら、次に示す手順に従って、Scwcmd を使用して、ポリシーを GPO に変換します。 SCW ポリシーのテスト方法の詳細については、http://technet2.microsoft.com/WindowsServer/ja/Library/5254f8cd-143e-4559-a299-9c723b3669461041.mspx?mfr=true の『セキュリティの構成ウィザードの展開ガイド』および http://go.microsoft.com/fwlink/?linkid=43450 の「Security Configuration Wizard Documentation」(英語情報) を参照してください。
ポリシーを変換して展開するポリシーを徹底的にテストした後、次の手順を実行して、ポリシーを GPO に変換して、展開します。 1. | コマンド プロンプトで、次のコマンドを入力します。 scwcmd transform /p:<PathToPolicy.xml> /g:<GPODisplayName> Enter キーを押します。次にその例を示します。 scwcmd transform /p:"C:\Windows\Security\msscw\Policies\IIS Server.xml" /g:"IIS Policy" 注 :コマンド プロンプトに入力する情報が、表示の制限により複数行にわたって表示されることがあります。この情報は、すべて 1 行に入力してください。 | 2. | グループ ポリシー管理コンソールを使用して、新しく作成した GPO を適切な OU にリンクします。 |
SCW セキュリティ ポリシー ファイルに Windows ファイアウォールの設定が含まれている場合、この手順を正常に完了するには、ローカル コンピュータで Windows ファイアウォールが有効になっている必要があります。Windows ファイアウォールが有効であることを確認するには、[コントロール パネル] を開き、[Windows ファイアウォール] をダブルクリックします。 次に、最後のテストを実行して、GPO により意図した設定が適用されることを確認します。この手順を完了させるために、設定が適切であること、機能がその影響を受けないことを確認します。 まとめこの章では、このガイドで定義している 3 種類の各環境で、Windows Server 2003 SP1 を実行する IIS サーバーのセキュリティ強化に使用できるポリシー設定について説明しました。ほとんどの設定は、MSBP を補うよう設計されたグループ ポリシー オブジェクト (GPO) を通じて適用されます。GPO は、IIS サーバーを含む適切な組織単位 (OU) にリンクして、セキュリティをさらに向上させることができます。 説明した設定のなかには、グループ ポリシーを使用して適用することができないものもあります。そのような設定については、手動で構成する方法について詳しく説明しました。 関連情報Windows Server 2003 SP1 を実行する IIS ベースの Web サーバーのセキュリティ強化に関する詳細情報は、以下のリンクから参照できます。 | • | IIS でログを有効にする方法の詳細については、http://support.microsoft.com/?kbid=313437 のマイクロソフト サポート技術情報「インターネット インフォメーション サービス (IIS) のログ収集を有効にする方法」を参照してください。 | | • | ログの詳細情報については、http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/d29207e8-5274-4f4b-9a00-9433b73252d6.mspx の「Enable Logging (IIS 6.0)」(英語情報) も参照してください。
| | • | サイトの動作状況をログに記録する方法の詳細については、http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/ab7e4070-e185-4110-b2b1-1bcac4b168e0.mspx の「Logging Site Activity (IIS 6.0)」ページ (英語情報) を参照してください。
| | • | 拡張ログの詳細については、http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/96af216b-e2c0-428e-9880-95cbd85d90a1.mspx の「Customizing W3C Extended Logging (IIS 6.0)」ページ (英語情報) を参照してください。
| | • | 集中バイナリ ログの詳細については、http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/b9cdc076-403d-463e-9a36-5a14811d34c7.mspx の「Centralized Binary Logging in IIS 6.0 (IIS 6.0)」ページ (英語情報) を参照してください。
| | • | リモート ログの詳細については、http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/a6347ae3-39d1-4434-97c9-5756e5862c61.mspx の「Remote Logging (IIS 6.0)」(英語情報) ページを参照してください。
| | • | IIS 6.0 に関する詳細情報については、http://www.microsoft.com/japan/windowsserver2003/iis/default.mspx の「インターネット インフォメーション サービス」を参照してください。 |
|