IIS Insider

2003 年 12 月

IIS Insider

Internet Information Services に関してよく寄せられる質問と答え

By Brett Hill

トピック
ネットワーク サービスとは何ですか?ネットワーク サービスとは何ですか?
Windows 2000 Professional の IIS 5.1 は 10 接続までに制限されますか?Windows 2000 Professional の IIS 5.1 は 10 接続までに制限されますか?
IIS Lockdown ツールはアプリケーション マッピングとどのような関係がありますか?IIS Lockdown ツールはアプリケーション マッピングとどのような関係がありますか?

ネットワーク サービスとは何ですか?

Q

Internet Information Services (IIS) 6 では、Web アプリケーションを動作させるワーカー プロセスは、"ネットワーク サービス" に割り当てられるプロセス ID で実行されるように設定されます。IIS 5 では、out of process の Web アプリケーションは、IWAM_<サーバー名> アカウントとして実行されるように設定され、それは、通常のローカル ユーザー アカウントです。セキュリティおよび管理に重要なこの新たなアカウントに関して何か情報はありますか?

A

ネットワーク サービスは、Windows Server 2003 のビルトイン アカウントです。IIS 5 のIUSRやIWAM アカウントなどのローカル ユーザー アカウントと、このビルトイン アカウントの違いに注目することは、非常に重要です。これを理解するには、Windows オペレーティング システムのすべてのアカウントには SID (セキュリティ ID) が割り当てられていることを知る必要があります。サーバーはサーバー上のすべてのアカウントを、ユーザー インターフェイスで対話を行うログオンに関連する名前ではなく、SID によって識別します。サーバー上で作成されるほとんどすべてのアカウントは、ローカル アカウントで、そのサーバーのユーザー データベースのメンバとしてアカウントを識別する一意の SID を持ちます。SID はサーバーに対して一意となるため、SID は、そのほかのコンピュータ上では無効となります。そのため、ファイルまたはフォルダの NTFS 権限をローカル アカウントに割り当て、そのファイルをアクセス権とともに別のコンピュータにコピーした場合、対象のコンピュータに同じ名前のアカウントがあったとしても、移行した SID のユーザー アカウントは割り当てられません。これにより、NTFS 権限の変更を含むコンテンツのレプリケーションを行うことができます。

ビルトイン アカウントとは、オペレーティング システムによって作成されるシステム アカウント、ネットワーク サービス、Everyone グループなど、アカウントおよびグループの特別なクラスのことです。これらのオブジェクトの主な特徴の 1 つに、すべてのコンピュータ上で同一の既知の SID を持つことがあります。ビルトイン アカウントに割り当てられた NTFS 権限を持つファイルをコピーする際、SID はすべてのサーバー上で同一となるため、その権限はすべてのサーバー上で有効となります。Windows Server 2003 サービスのネットワーク サービス アカウントは、ネットワークにアクセスするのに十分な権限でアプリケーションを提供するように設計され、IIS 6 の場合は、権限の昇格を要求することなく Web アプリケーションを実行するように設計されています。これは、権限の高いアカウントでサービスを実行している事を利用したバッファ オーバー フローや、アプリケーションへの攻撃が発生しなくなるため、IIS のセキュリティにとってはよいニュースとなります。さらに、メタベースの InProcessIsapiApps キーを介してInetinfo.exe に読み込まれるアプリケーションを悪用するなど、システム アカウントで実行可能な "バックドア" は使用できなくなります。

ネットワーク サービス アカウントは、IIS 6 だけを考慮して作成されている訳ではありません。W3WP.exe を実行するのに必要なほとんどの権限を含みますが、すべての権限が含まれるわけではありません。ASPNET アカウントが ASP.NET アプリケーションを実行するために IIS 5 サーバーの特定のロケーションへのアクセスが必要なように、W3WP.exe の実行にも同様のロケーション リストへのアクセスおよび既定ではビルトイン グループに割り当てられないいくつかの権限が必要となります。

管理上の便宜により、IIS_WPG (IIS ワーカー プロセス グループと呼ばれます) が IIS 6 をインストールする際に作成され、ローカル システム、ローカル サービス、ネットワーク サービスおよび IWAM アカウントをメンバとして持ちます。IIS_WPG のメンバは、適切な NTFS アクセス権および IIS 6 のワーカー プロセスのプロセス ID として実行するのに必要なユーザー権限を所有しています。

%windir%\help\iishelp\common - 読み取り

%windir%\IIS Temporary Compressed Files - 一覧、読み取り、書き込み

%windir%\system32\inetsrv\ASP - コンパイルされたテンプレート読み取り

Inetpub\wwwroot (or content directories) - 読み取り、実行

また、IIS_WPG には以下のユーザー アクセス権が設定されます。

バイパス トラバース チェック (SeChangeNotifyPrivilege)

バッチ ジョブとしてログオン (SeBatchLogonRight)

ネットワークからこのコンピュータにアクセス (SeNetworkLogonRight)

これにより、ネットワーク サービス アカウントにより、上記のロケーションへのアクセス権が提供され、IIS 6 のワーカー プロセスのプロセス ID として実行するのに十分な権限を持ち、ネットワーク上での権限が提供されます。

ページのトップへページのトップへ

Windows 2000 Professional の IIS 5.1 は 10 接続までに制限されますか?

Q

Windows 2000 Pro の IIS 5.1 は 10 接続までに制限されていると聞きました。これは、自分たちの目的にとって使いにくいのですが、オペレーション システムへの接続数を増やすレジストリ設定または別の回避策はありますか。

A

多くのユーザーが複数の同時アクセスをサポートするシステムを開発、テストするために 10 以上の接続をサポートする必要があるため、これは最もよく聞かれる質問です。しかし、ユーザーの中には、そのために設計またはライセンスされていないサーバー プラットフォームとして Windows 2000 Professional を単に使用する必要がある場合があります。ニュースグループや他の場所で 10 以上の接続ができると言われている様々な設定について話されていることを知っていますが、サーバー サービスを提供する必要がある場合、サーバー オペレーティング システムが必要である、という単純な理由により、それらのいずれの方法もテストしてはいません。

10 接続が 10 人のユーザーとイコールであると一般的に勘違いされています。Web クライアントはしばしば、Web サーバーへの複数の接続を行うため、そのクライアントの IIS サーバーは、同時に 10 人のユーザーをサポートできない場合があります。そのため、Web サイトで 40 ユーザーまでサポートできる IIS 5.1 がインストールされた Windows 2000 Professional には、ほとんど知られていない例外的な設定があります。ただ 40 以下の接続の数を設定するだけで、同時に 40 までの HTTP 接続を行うことができます。ファイルと印刷共有では 10 接続以上行うことが許可されていないため、この例外は、HTTP の場合のみです。

ページのトップへページのトップへ

IIS Lockdown ツールはアプリケーション マッピングとどのような関係がありますか?

Q

IIS 5 で IIS Lockdown ツールを使用する際、.asp ファイル以外のすべてのアプリケーション マッピングを無効にします。Lockdown ツールでは、そのほかのアプリケーション マッピングが無効にされますが、削除はされません。今までに見たほとんどのセキュリティ関連の文書および書籍では、必要のないアプリケーション マッピングを削除するのが最善策であると記載されており、これは理にかなっていると思われます。Lockdown ツールはマッピングを削除するのではなく、拡張子をプログラム 404.dll にマッピングします。マイクロソフトの IIS 5 Security Checklist などのセキュリティ関連文書に記載されているように、拡張子を削除するのではなく、そのままにしておくのはどのような理由からですか?

A

Internet Information Services 5.0 ベースライン セキュリティ チェック リスト からチェックするのがよいと思いますが、Web セキュリティのより詳細な対処法は、http://msdn.microsoft.com/library/en-us/dnnetsec/html/ThreatCounter.asp (英語) の Improving Web Application Security: Threats and Countermeasures をご覧下さい。

しかし、これは IIS Lockdown Wizard 2.1 ツールの構造に関して非常に重要な質問です。このツールは、IIS 5 サーバーでの使用を推奨します。アプリケーション マッピングのロックダウンによって行われる動作は、おっしゃるように以下のようなものとなります。

Application Configuration

お分かりのように、.htr または .idc のすべてのリクエストにより 404.dll が実行され、それにより、「ファイルが見つかりません」というエラー メッセージ (簡単でそれ以外に説明がありません) が表示されます。単にこれらの拡張子を削除しないで 404.dll をマッピングするのはなぜでしょうか?もはや使われなくなった.ida、idq、.htw の拡張子を使用するいくつかのファイルで、インデックス サーバーの問い合わせを行い、結果を表示する機能を提供するとします。少し調べてみると、ASP を使用して、より効果的でセキュアに同じ機能を提供できることがわかります。コードの記述後、.ida、idq、.htw ファイルは必要なくなるため、アプリケーション マッピングでそれらの拡張子を削除します。その結果、IIS はサーバー上に残っている .ida、.idq、.htw ファイルをユーザーにテキストとして送信します。これにより、公開したくないサーバーに関する情報が漏えいする可能性があります。もちろん、最初からサーバーからファイルを削除すべきですが、これらの拡張子を 404.dll にマッピングすることにより、それらのファイルを見落としたり、サーバーに古いコンテンツがアップロードされた際のユーザーのリスクが低減されます。

時々アプリケーション マッピングをチェックし、インストールまたはアンインストール プロセスにより更新されていないことを確認するように気をつけてください。特別なファイルを使用する Web アプリケーションにより、アプリケーション マッピングに必要な拡張子が追加されます。インデックス サービスの場合、[Windows コンポーネントの追加と削除] を使用してIIS からインデックス サービスを削除するだけで、アプリケーション マッピングに.idq、.idq、.htw の元のマッピングを再度追加し、また Winnt\System32 に関連する .dll (idq.dll、webhits.dll) を残します。したがって、インデックス サービスを使用する予定がない場合、IIS Lockdown ツールを実行する前に削除してください。


関連情報

これまでの IIS Insider コラムの質問と答えの一覧は、ここをクリックしてください。

ページのトップへページのトップへ