[検証]
WindowsでインターネットWebサーバ

第4回 Windows Web Server 2008のセキュリティ対策

3.不要なコンポーネントの無効化

デジタルアドバンテージ 打越 浩幸
2008/12/22


Code Redワームの正体とその対策[改訂版]
ネットを震撼させたコンピュータ・ワーム、Nimdaを検証する

 Webサーバをセキュアにするための重要な方策の1つとして、不要なコンポーネントを極力インストールしないということが挙げられる。使う予定のないコンポーネントが管理者の知らないうちに(関知していないうちに)インストールされ、そこが脆弱性となってシステムが攻撃されたり、ウイルスやワームに感染したりということが、過去何度か起こったことからも分かるだろう(Code RedやNimdaなどが有名。関連記事参照)。

 これらの直接の原因はWindows NTやWindows 2000のIIS関連コンポーネントのIndexing Service(IISで利用する全文検索エンジン)のコード(ファイルidq.dll)に含まれるセキュリティ・ホールが狙われて感染したものだが、そもそもこのようなコンポーネントがシステムにインストールされていることを把握していない管理者も少なくなかった。Windows OSをインストールするとこのファイルも同時にインストールされ、IISを介して呼び出されるようになっていたため、感染可能なシステムの数が非常に多く存在することになり、インターネット全体に計り知れないダメージを影響を与えることになってしまった。

 このようなセキュリティ・ホールを避けるための一番の方法は、システムに無用なコンポーネントをインストールしないということは明らかだろう。これらの経験により、Windows Server 2003では、システムにインストールしたり、有効になる機能をデフォルトでは大きく限定するようになった。ユーザーが明示的に許可したり指示しない限り、それらの機能が有効になったり、インストールされないようになっている。

 Windows Server 2008(Web Server 2008)ではその考え方をさらに進め、IISという「役割」を複数のサブコンポーネントである「役割サービス」に分割し、これらを組み合わせてWebサーバを構成/設定するという方針を採用している。Windows Server 2003のIIS 6.0のデフォルトでは(インストールされてはいるが)無効になっているといった機能でも、Windows Server 2008のIIS 7.0では、明示的にインストールしない限り、許可することもできないという仕組みになっている。これにより、システムのセキュリティは大きく向上したといえる。以下、過去のWindowsバージョンをいくつか見てみよう。

Windows NT Server 4.0のIIS 2.0

 次の画面はWindows NT 4.0のIISのインストール画面である。インストール時に選択できるオプションは、例えばWebサーバとFTPサーバをインストールするかどうか、といったものしかない。Webサーバのどのサブコンポーネントをインストールするかといったオプションの選択はできない。不要な機能が知らないうちにインストールされるので、非常に脆弱性は高い。もっとも、Windows NT自体にはファイアウォールといった機能などは含まれておらず、(いまから見れば)もともとイントラネットでの利用が前提となるシステムであった。とはいえ、ファイアウォールが用意されていないため、NT OSが1台ワームなどに感染すると、イントラネット内でもすぐに感染が広まってしまうという問題点があった。

Windows NT Server 4.0のIIS 2.0のセットアップ画面
1996年にリリースされたWindows NT Server 4.0のIISのインストール画面。このIISはOS標準のコンポーネントではなく、追加でアドオンするパッケージであった。インストール時に選択できるオプションはこれらだけしかなく、例えばWebサーバのどのサブコンポーネントをインストールするかといったオプションの選択はできない。
IISのインストール時に選択できるオプションはこれしかない。

Windows NT Server 4.0のIIS 2.0におけるWebサイトのプロパティの例
現在のIISと違い、非常にシンプルである。セキュリティらしきものも、[読み取り]許可と[実行]の許可ぐらいしかない。

Windows 2000 ServerのIIS 5.0

 2000年に発売されたWindows 2000 Serverには、より高機能で高性能なIIS 5.0が搭載されている。ただし、セキュリティ強化というよりは、機能の強化や利便性の向上を追求した製品である。

IIS 5.0の管理画面
いまとなっては非常にシンプルなWindows 2000 ServerのIISの管理画面。デフォルトではさまざまなサンプルがインストールされるなど(こういうものも、いまならセキュリティ上の問題となる可能性がある)、セキュリティよりは高機能/高利便性などを追求して開発されている。

 IIS 5.0をインストールすると、デフォルトではさまざまなファイル拡張子がDLLに関連付けられている。その中の1つのモジュールに脆弱性があり、Code Redなどで狙われた。注意深い管理者なら、不要なマッピングを削除していただろうが、ほとんどの場合はそのまま運用していたため、被害が広がった。

ファイル・タイプのマッピングの設定
IISをインストールすると、デフォルトでこれらすべてのファイル・マッピングが設定されている。例えば.aspというファイルは、asp.dllというDLLで処理するという意味である。特定のマッピングを使わない/使いたくない場合は、手動でこれらのマッピングを削除する必要がある。
ファイル拡張子。
指定したファイルを処理するためのDLL。
Indexing Serviceで利用するための.idcファイル・マッピングと、それを処理するDLL。このDLLがCode Redなどで狙われた。

Windows Server 2003のIIS 6.0

 2003年に発売されたWindows Server 2003では、Code Redなどの経験を踏まえ、さまざまなコンポーネントを、明示的に指示しない限り、有効にしたり、インストールしないようになっている。これにより、安全性が向上した。

Windows Server 2003のIISのインストール・ウィザード画面
これらの機能は、指定されない限り、インストールされない。

Windows Server 2003のIISの管理画面
CGIやISAPI、サーバ・サイド・インクルードなどの機能は、デフォルトでは無効になっている。
機能のリスト。
デフォルトではこれらはすべて禁止されている。

Windows Server 2008/Web Server 2008のIIS 7.0

 最新OSであるWindows Server 2008/Web Server 2008のIIS 7.0では、コンポーネント化や機能分離の方針をさらに進め、多くのサブコンポーネントに機能を分割している。細分化してセキュリティを向上させるためでもあるし、Server Coreのような用途での占有メモリ・サイズを抑えるという効果も狙っている。コンポーネントをインストールしていないので、ある機能が何らかの攻撃などによって、知らないうちに有効化され、利用されるというリスクも軽減させている。

Web Server 2008のIIS 7.0のインストール・ウィザードの画面
Webサーバの「役割」を複数の「役割サービス」に分割し、必要なもののみを選んでインストールするようになっている。


 INDEX
  [検証]WindowsでインターネットWebサーバ
  第4回 Windows Web Server 2008のセキュリティ対策
    1.互換性を重視したWindowsファイアウォール
    2.セキュリティが強化されたWindowsファイアウォール
  3.不要なコンポーネントの無効化
    4.定期的なセキュリティ・パッチの適用

 「検証」


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間