運用
IIS安全対策ガイド

4.Windows 2000 Serverシステムの基本セキュリティ設定

井上孝司
2002/06/08


 ここまでは、Windows 2000 Serverそのもののセキュリティ対策について解説してきた。これでWindows 2000 Server、IIS、Internet Explorerに関する既知のセキュリティ・ホールは、すべて対策されたことになる。だがセキュリティ対策はセキュリティ・ホールをふさぐだけでは終わらない。後半では、IISやWindowsシステムに対する各種の設定を行って、安全なIISシステムを構築する方法について解説する。

 マイクロソフトでは、Windows 2000 ServerとIISのそれぞれについて、基本的な推奨セキュリティ設定に関する文書「Windows 2000 Serverベースライン・セキュリティ・チェックリスト」「IIS5ベースライン・セキュリティ・チェックリスト」を公開している。ここには、推奨されるセキュリティ設定の方法が簡潔にまとめられているので、これに基づいて各部の設定を行っていこう。ここで述べられているセキュリティ対策は、インターネット、イントラネットを問わず有効なので、必ず守るようにしていただきたい。

Windows 2000 Serverの基本セキュリティ設定

 まずは、Windows 2000 Serverにおけるセキュリティ設定から見ていこう(「Windows 2000 Serverベースライン・セキュリティ・チェックリスト」)。

 このドキュメントでは、いままでに実行してきた設定変更に加えて、以下のような対策が取り上げられている。

  • ディスクのパーティションがすべてNTFSでフォーマットされていることを確認する
  • Administratorアカウントで強力なパスワードが使用されていることを確認する
  • 不要なサービスを無効にする
  • 不要なアカウントを無効にするか削除する
  • ファイルとディレクトリを保護する(ファイル・システムはNTFSにしておくこと)
  • Guestアカウントが無効になっていることを確認する
  • レジストリを匿名アクセスから保護する
  • 適切なレジストリのアクセス権を適用する
  • ローカル・セキュリティ機関(LSA)の公開された情報へのアクセスを制限する
  • より強力なパスワード・ポリシーを設定する
  • アカウント・ロックアウト・ポリシーを設定する
  • Administratorアカウントを別の名前に変更する
  • 不要なファイル共有をすべて削除する
  • すべての必要なファイル共有に適切なアクセス権を設定する
  • ウイルス対策ソフトウェアをインストールする

注 「」が付いている項目は、Windows NTから上書きアップグレードした場合に問題になる項目で、Windows 2000 Serverを新規にセットアップした場合は問題ない。

 このうち、すでに実行済みの対策と、Windows NT Serverからアップグレードした場合に必要な対策以外のものについて、その内容と対策の手順を解説する。

■Administratorアカウントで強力なパスワードが使用されていることを確認する
 Administratorアカウントのパスワードが破られた場合、侵入者はあらゆる破壊行為が可能になる。そのため、パスワードが破られないように対策するのは、堅固なサーバ構築のための基本といえる。

 特に、総当たり攻撃によるパスワード破りを防止するため、Administratorアカウントに対しては、アルファベット・数字・記号を混ぜた、複雑なパスワードを設定しておく必要がある。また複数のサーバでそれぞれ異なるパスワードを設定しておくと、万一パスワードが破られても、それで全部のサーバが攻撃対象になるという事態を避けられる。

■不要なサービスを無効にする
 Webサーバとしての運用には必要のないサービスを停止させることも重要だ。また、停止させたサービスについては起動方法を[自動]から[手動]に変更しておく。そうしないと、次にWindows 2000 Serverを起動したときに、同じサービスが再び起動してしまう。

  Webサーバとしてのみ使用することを考えると、初期状態で動作しているサービスのうち、「Print Spooler」は停止させても支障ないと考えられる。

  また、管理者権限を持たないユーザーが管理者の資格でプログラムの実行を行わないように、「RunAs Service」を停止させるとよい。

■不要なアカウントを無効にするか削除する
■Guestアカウントが無効になっていることを確認する
 Webサーバとしての運用に必要のないアカウントを無効化、あるいは削除する。これにより、不必要に存在するアカウントがバックドア(外部からの侵入のための裏口)となる可能性をなくすことができる。

 匿名アクセスを受け付けるWebサーバの場合、匿名アクセス用のアカウント(「IUSR_<コンピュータ名>」というアカウントがIISのインストール時に作成される)と、IISプロセス・アカウントの起動に用いられる「IWAM_<コンピュータ名>」、そして「Administrator」以外は必要ないだろう。

 なお、Guestアカウントについては初期値では無効にされているはずだが、念のために無効化されているかどうかを確認しておく。

Guestアカウントの無効化を確認する
「Guest」アカウントが無効になっている場合、アカウントのアイコンに赤い「×」がつけられている。
  Guestアカウントが有効になっていると、さまざまなサービスへ接続されてしまう可能性があるので、必ず無効にしておく。
  「IUSR_<コンピュータ名>」は匿名アクセスのために使われるアカウント。IISをインストールすると自動的に作成される。
  「IWAM_<コンピュータ名>」はIISの起動用のアカウント。IISをインストールすると自動的に作成される。

■レジストリを匿名アクセスから保護する
 Windows 2000のレジストリ・エディタには、ネットワークを経由してほかのコンピュータのレジストリを操作する機能がある。リモートからシステムを管理するためにこのような機能が用意されているのだが、これは外部からの攻撃を考えると極めて危険なので、管理者権限のあるユーザー以外はレジストリにネットワーク経由でアクセスできないようにする。それには、レジストリ・エディタ「REGEDT32.EXE」を使用して、以下のアクセス権を設定する。

[注意]
レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリ エディタの操作は慎重に行うとともに、あくまで御自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本Windows Insider編集部では責任を負いかねます。ご了承ください。

キー:
HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Control\SecurePipeServers\winreg

アクセス権:
Administratorsに「フル コントロール」を付与
Administrators以外のユーザーやグループにはアクセス権を与えない

 この設定により、Administratorsグループのメンバー以外はネットワーク経由でレジストリにアクセスできなくなる。

■匿名ユーザーが「ローカル・セキュリティ機関(LSA)」の公開情報にアクセスできないようにする
 LSAコンポーネントとは、ローカルコンピュータにおけるアクセス管理などの、セキュリティ管理を行うための機能のことだ。以下のレジストリ・キーにある値「RestrictAnonymous」の値を、デフォルトの「0」から「1」に変更すると、匿名ユーザーがLSAコンポーネントに関する公開情報を取得できなくなる。

[注意]
レジストリに不正な値を書き込んでしまうと、システムに重大な障害を及ぼし、最悪の場合、システムの再インストールを余儀なくされることもあります。レジストリ エディタの操作は慎重に行うとともに、あくまで御自分のリスクで設定を行ってください。何らかの障害が発生した場合でも、本Windows Insider編集部では責任を負いかねます。ご了承ください。

キー:
HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Control\LSA\RestrictAnonymous

種類:
DWORD

値:
デフォルトの「0」から「1」にする

■より強力なパスワード・ポリシーを設定する
 [コントロール パネル]の[管理ツール]−[ローカル セキュリティ ポリシー]で、以下の設定を行う。以下に、マイクロソフトの推奨値を基にして、さらに厳しい内容を追加したものを示した。パスワードのポリシーは、[セキュリティの設定]−[アカウントポリシー]−[パスワードのポリシー]で設定する。

ポリシー項目 デフォルト 推奨値
パスワードの長さ 0文字以上 8文字以上(空のパスワードや短いパスワードは許可しない)
パスワードの変更禁止期間(最小有効期間) 0日 1〜7日
パスワードの有効期間 42日 42日未満
パスワードの履歴を記録する(記憶する過去のパスワードの数) 0 6以上(過去6回のいずれかと同じパスワードは使わない)
パスワードは要求する複雑さを満たす 無効 有効(複雑な文字をパスワードの一部に使用すること)
推奨されるパスワード・ポリシー

 最後の「パスワードは要求する複雑さを満たす」という設定は、パスワード変更の際に、使用する文字種としてアルファベット・数値・記号の組み合わせを必須とするものだ。単純なアルファベットや数字だけの組み合わせでは、破られる可能性が高いからである。

パスワード・ポリシーの設定を行った状態
ローカル・セキュリティ・ポリシーを変更して、より複雑で、破られにくいパスワードを要求するように設定する。このポリシーを変更するには、[管理ツール]−[ローカル セキュリティ ポリシー]を起動して、[セキュリティの設定]−[アカウントポリシー]−[パスワードのポリシー]で行う。
  パスワードのポリシーを設定するにはこれを選択する。
  パスワードに関する各種のポリシー。デフォルトでは非常に寛容な設定になっているので、より厳しいポリシーに変更して、安全性を高めておく。

■アカウントのロックアウト・ポリシーを設定する
 アカウントのロックアウトとは、パスワードの入力間違いなどでログオンが失敗した場合に、そのアカウントを一時的に無効にする機能のことである。クラッカーなどが侵入を試みようとして、さまざまなパスワードで何度もログオンしようとするのを阻止するために使われる。一度ロックアウトされると、一定時間はそのアカウントが無効になるので侵入される可能性は低くなる。このポリシーを変更するには、[セキュリティの設定]−[アカウント ポリシー]−[アカウント ロックアウトのポリシー]で設定する。

ポリシー項目 デフォルト 推奨値
アカウントのロックアウトのしきい値(ロックアウト発動までのログオン試行回数のこと) 0回 3〜5回
ロックアウト・カウントのリセット 未定義 30分以上経過したあとにリセットする
ロックアウト期間 未定義 0(無期限となり、管理者が解除するまでロックアウトが継続される)
推奨されるアカウントのロックアウト・ポリシー

 設定が完了すると、次のようになっているはずである。

アカウント・ロックアウト・ポリシーの設定を行った状態
ローカル・セキュリティ・ポリシーを変更して、ログオン失敗時にアカウントをロックアウトするように設定する。このポリシーの変更は、[管理ツール]−[ローカル セキュリティ ポリシー]を起動して、[セキュリティの設定]−[アカウントポリシー]−[アカウント ロックアウトのポリシー]で行う。
  ロックアウトのポリシーを設定するにはこれを選択する。
  ロックアウトに関する各種のポリシー。デフォルトではロックアウトしない設定になっているので、より厳しいポリシーに変更して、安全性を高めておく。

 さらに、不正なログオンが行われていないかどうかを調べるために、ログオン履歴の監査を有効にする。監査ポリシーは、[セキュリティの設定]−[ローカル ポリシー]−[監査ポリシー]で設定する。

ポリシー項目 デフォルト 推奨値
アカウント・ログオン・イベントの監査 監査しない [失敗]の監査を有効にする
アカウント管理の監査 監査しない [成功]と[失敗]の監査を有効にする
ポリシーの変更の監査 監査しない [成功]と[失敗]の監査を有効にする
推奨される監査ポリシー

 設定が完了すると、次のようになっているはずである。

監査ポリシーの設定を行った状態
ローカル・ポリシーを変更して、ログオン失敗などのログを記録するように設定する。このポリシーを変更するには、[管理ツール]−[ローカル セキュリティ ポリシー]を起動して、[セキュリティの設定]−[ローカル ポリシー]−[監査ポリシー]で行う。
  監査ポリシーを設定するにはこれを選択する。
  監査に関する各種のポリシー。デフォルトでは監査しない設定になっているので、失敗の履歴を記録するように変更しておく。

 これらの監査を有効にすることで、不正ログオンを試みた痕跡や、アカウントやポリシーの設定変更によって不正侵入を容易にするための工作を発見しやすくなる。

■Administratorアカウントを別の名前に変更する
 マイクロソフトのドキュメントでは「Administrator アカウントを構成する」となっているが、実際にはこれは『Administrator アカウントを別の名前に変更しておく』という操作を意味している。これにより、Administratorアカウントを使用した不正侵入を困難にすることができる。Windows NT/2000/XPが動作するすべてのコンピュータには、初期状態では「Administrator」というアカウントが存在する。そのため、攻撃者は、管理者のユーザー名を捜し当てるという作業を経ることなく、「Administrator」のパスワードを割り出すだけで不正侵入が可能になってしまう。すると、不正侵入を防止するための防波堤が1つ減ることになるので、Administratorという名前ではログオンできないようにしておくのが望ましい。

 しかしビルトイン・アカウントであるAdministratorは削除ができないので、代わりに別の名前に変更するという方法を取る。アカウント名の変更には、[コントロール パネル]の[管理ツール]−[コンピュータ]を起動し、[コンピュータの管理(ローカル)]−[ローカルユーザーとグループ]−[ユーザー]を使用する。ここで、ユーザー「Administrator」で右クリックし、[名前の変更]を選択すると、アカウント名の変更が可能になる。ただし「Admin」とか「Administrator1」というような、“安易な”名前に変更しても安全性は大して向上しないので、より複雑な名前にすることが望まれる。

Administratorアカウントの名前変更
Administratorアカウントを有効にしておくと、そのパスワードがクラックされれば、システムの管理者権限を奪われてしまう。このような事態を避けるためには、既知のアカウント名を削除するか、別の名前に変更しておく。Windowsの場合は、Administratorアカウントは削除できないので、別の名前に変更すること。
  これを選択して、Administratorアカウントを表示させる。
  デフォルトでは「Administrator」という名前の管理者アカウントが必ず存在する。
  名前を変更するにはこれを選択する。
 

ダミーのAdministratorアカウントを作成する
 
Administratorアカウントの名称変更後に、改めて「Administrator」という名前のユーザーを作成するという手法がある。このユーザーはどのグループにも所属させず、もちろん、何の権限も与えない。

 アカウント・ログオン・イベントの監査でログオン失敗の記録がイベント・ビューアの[セキュリティログ]に残るようにしておけば、不正侵入者がAdministratorアカウントを使って侵入を試みた記録を残すことができる。しかも、このアカウントのパスワードを探り当てることができても、不正侵入者は何もできないという仕組みだ。

■不要なファイル共有をすべて削除する
■すべての必要なファイル共有に適切なアクセス権を設定する
 ファイル共有は必要最低限にとどめ、不要なファイル共有はすべて停止させる。

 また、どうしてもファイル共有が必要な場合、初期値のアクセス権「Everyone:フルコントロール」は削除し、アクセスが必要なユーザーあるいはグループにだけ、必要最低限のアクセス許可を設定する。また、共有資源に対するアクセス権は、ユーザーがファイルやフォルダのアクセス権設定を変更できる「フルコントロール」ではなく、「変更」に設定する。

関連リンク
Microsoftセキュリティ
Microsoft TechNet セキュリティ情報一覧
マイクロソフト プロダクト・セキュリティ警告サービス
セキュリティ・ツールとチェックリスト
IIS Lockdown Tool
 

 INDEX
  [運用]IIS安全対策ガイド
    1.Windows 2000とIISのインストール
    2.最新のService PackとSRPの適用
    3.必要な修正プログラムの確認と組み込み
  4.Windows 2000 Serverシステムの基本セキュリティ設定
    5.IIS5の基本セキュリティ設定
    6.IIS Lockdown ToolとURLScanの導入
 
 運用


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

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間