[検証] WindowsでインターネットWebサーバ 第4回 Windows Web Server 2008のセキュリティ対策 3.不要なコンポーネントの無効化 デジタルアドバンテージ 打越 浩幸2008/12/22 |
![]() |
|
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における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で処理するという意味である。特定のマッピングを使わない/使いたくない場合は、手動でこれらのマッピングを削除する必要がある。 | |||||||||
|
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.定期的なセキュリティ・パッチの適用 | ||
![]() |
![]() |
「検証」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
![]() |
|
|
|
![]() |