|
![]()
Windows 2000 のデフォルトでは、厳しいセキュリティが施されておらず高度なセキュリティを必要とする環境では、管理者が適切なセキュリティ設定を行う必要があります。適切なセキュリティとは、サイトのポリシーにより異なるため一概に全ての設定を厳しく設定すればよいというわけではありません。
Windows 2000で新たに導入されたActive Drectoryでは、ユーザーやネットワーク上のプリンタや共有リソースがディレクトリのオブジェクトとして扱われます。この為、Active Directoryを利用する管理者はユーザーやリソースを論理的なディレクトリのオブジェクトとして管理する必要がありますが、Windows 2000 では、MMC(マイクロソフト管理コンソール)により、これらのオブジェクトの操作が統一的に行えるようになっています。
Windows NT 4.0サービスパック4から提供された「セキュリティ構成マネージャ(SCM)」はWindows 2000では標準機能として提供され、テンプレートを使ったセキュリティ設定が利用可能となっています。NT 4.0でSCMを利用した時と同様に、場合によってはSCMに該当する項目がなくレジストリエディタで直接システム設定を変更しなければならない個所もありますが、SCMを使うことで多くの設定を一度に行うことが可能です。
Windows 2000では複数のポリシー設定がツールから可能となっています。
・グループポリシーを利用する
・ローカルコンピュータのセキュリティ ポリシーを利用する
・セキュリティ テンプレートを利用する
複数のポリシーや相反するポリシーが適用された場合、どちらが優先されるかは環境により異なります。詳細についてはWindows 2000のマニュアルを参照してください。
また、Windows 2000においてもネットワークを構築する場合、認証における下位互換性がセキュリティ上の問題となるケースがあります。Windows
2000では、デフォルトのSSP(セキュリティ サービス
プロバイダ)として、NT 4.0まで使われていたNT LMではなく、Kerberosがデフォルトのプロバイダとなっています。しかしこれはあくまで、Windows
2000同士を(ActiveDirectory環境において)利用するように構成した場合であり、デフォルトでは
LAN Manager や Windows 95/98 といった下位互換OSを考慮した設定がなされています。
高度なセキュリティが必要なネットワークでは、Windows 2000のみ、または下位互換の必要のないネットワークを構築し、Windows
2000の下位互換機能をできる限り無効にする必要があります。下位互換性を無効にすることで、Windows
2000のもつ多くのセキュリティ機能を有効に利用することが可能となります。
次に、サイトのポリシーにあった設定を行えるように、「Windows 2000における基本的セキュリティ設定」にリストされている24項目をベースにポイントとなる個所をまとめます。
1.パスワードの設定
パスワードの設定を行う上で重要な点は、不正侵入者から推測しにくいパスワードを設定するということです。Windows 2000のデフォルトでは、パスワード無しが許可されているなど高度なセキュリティを求める場合には好ましくありません。複雑なパスワードを設定する上で便利なツールとして、Windows 2000では複雑なパスワードを要求するポリシーが提供されています。このポリシーを利用することで、ユーザーがパスワードを変更する際に比較的推測されにくいパスワードを設定する手助けをしてくれます。しかし、注意しなければいけない点として、パスワード長に関しては別のポリシーで定義する必要があるという点があります。「下位LM互換の制限」でも触れられていますが、LMレスポンスは解析されやすいことが知られており、特に7文字以下のパスワードが設定されている場合に危険性はより高くなります。高度なセキュリティ設定を考慮する場合、8文字以上のパスワードを設定する必要があります。
不正侵入者がシステムへの侵入を企てた場合、既知のアカウント名などを使い適当なパスワードで接続を試みる場合があります。適切なパスワードが設定されていれば、この試みは非常に時間がかかるものとなりますが、いつかはパスワードが発見されてしまうかもしれません。このようなアタックに対して、Windows
2000ではアカウントのロックアウトを設定しておくことで対処することが可能です。アカウントがロックアウトされるまでの回数は、なるべく少ない方が良いですが少なすぎるのも問題があります。ネットワーク上のリソースなどに対し、Windows
2000が現在ログオンしているユーザーのコンテキストで接続を自動的に試みる回数を考慮し、5回を目処にするとよいでしょう。
注意すべき点として、ロックアウトの設定を行っても「Administrator」アカウントに対してはロックアウトが有効にならないという点があります。
「Administrator」や「Guest」などWindows 2000にデフォルトで存在しているユーザー名は、既知のアカウントとしてよく知られています。特に、「Administrator」は管理者アカウントであるため、不正侵入者のターゲットとなる可能性が高いといえます。このため、これらのアカウントの名前を変更しておくことで危険性を減らすことができます。
注意すべき点として「匿名ユーザーの制限」も行っておかないと、匿名ユーザーによる接続によって、変更後のアカウント名が不正侵入者に発見されてしまいます。社内ネットワークにあるドメインコントローラなどの場合、匿名ユーザーを制限してしまうと利便性に影響が出る可能性があるので、デフォルトのアカウントに対する保護には「パスワードの設定」や「アカウントロックアウトの設定」などで対処する必要があります。Webサーバやドメインに参加しない単なるサーバなどの場合には、「匿名ユーザーの制限」を行っても影響は少ないので、それらのサーバではアカウント名の変更と合わせて「匿名ユーザーの制限」を行うとよいでしょう。
4.ログオンの設定
コンソール経由でのログオンに対しては、ユーザーならびに不正侵入者に対して、利用にあたっての警告メッセージを表示することが可能です。これにより、システムを誰が利用することができるのかを明確にできます。
また、最後にログオンしたユーザーのユーザー名を表示しないように設定しておくことも重要です。「Administrator」の名前を変更しておいた場合でも、最後にログオンしたユーザーのユーザー名が表示されることで不正侵入者が変更後の名前を知ってしまう危険性があります。
Windows 2000(主にProfessional)では、ドメインコントローラが利用不可能な場合に、キャッシュからログオンを行うことが可能です。しかし、ドメインコントローラが利用不可能な場合には、キャッシュからのログオンをさせたくないという場合にはキャッシュの数を「0」に設定しすることでこの機能を無効にすることができます。
誰でもシステムをシャットダウンできてしまうのは問題があります。重要なシステムでは、シャットダウンを行うにはログオンを要求することで、不正侵入者がコンソールから勝手にシステムをシャットダウンしてしまう危険性を減らすことができます。(電源スイッチを直接切られることがないように物理的な保護が別途必要です)
また、誰がシャットダウンを行うことができるのかについても「ユーザー権利の設定」で必要なユーザーのみが権限を持つように設定することも必要です。
ページファイルをクリアすることも、(複数のOSが起動する可能性がある環境では特に)重要です。この機能はシステムが正常にシャットダウンされた場合にのみ有効ですが、不正侵入者が他のOSを利用するなどして、直接ページファイルにアクセスすることがないように、システムのシャットダウン時にクリアされるようにした方がよいでしょう。
ユーザーの権利で特に重要となるのは、「ローカル
ログオン」と「ネットワーク経由でコンピュータへアクセス」です。ローカル
ログオンとは、コンソールから誰がログオン可能かという権利を設定しています。ドメインコントローラなど、重要なサーバーにおいてはコンソールからログオンできるユーザーは厳しく制限される必要があります。ローカルログオンの権限があるユーザーは、コンソールから直接ログオンできることを忘れないようにしてください。
同様に、「ネットワーク経由でコンピュータへアクセス」権を設定することで、ネットワークからコンピュータにアクセス可能なユーザーを制限することが可能です。「Administrator」のような高い権限を持つユーザーからのネットワーク経由のアクセスを制限することで、システムの管理にはコンソールから直接ログオンする必要があるように設定することが可能です。
これにより、不正侵入者が仮に「Administrator」のパスワードを入手したとしても、システムにログオンするにはコンソールから直接ログオンする必要があるようになります。
システムのセキュリティを確保する上でイベントログは重要な役割を持っています。Windows 2000のデフォルトでは、十分なログを保存するようには設定されていません。システムに異常が発生した場合やセキュリティ上の問題を発見するには、「システム監査の設定」を行い必要なログを取るように設定する必要があります。また、ログを参照することでシステム異常の原因となった事柄を把握もしくは推測することも可能です。ログは十分過去にさかのぼれるように設定・保存した方がよいでしょう。
Windows 2000のデフォルトでは、監査の設定はされていません。この為、不正侵入者により重大なセキュリティ違反が起きた場合でもログにそれらが記録されない危険性があります。監査の設定を行うことでセキュリティ上必要なログを取ることが可能になりますが、多すぎるログは時として管理上問題になります。セキュリティ上特に必要と思われる項目のみチェックし、不必要に多くのログを取らないようにします。非常に多くのログを取るように設定すると、システムのパフォーマンスに影響を与える可能性があります。
成功の監査より、失敗の監査を取ることで、不正侵入者などによるアクセス違反を発見しやすくなります。
9.NTFSの設定
Windows 2000では、デフォルトでファイルシステムのアクセス権は一般ユーザー(制限ユーザー)については厳しく設定されています。また、さらに高度なセキュリティ環境での利用を想定したテンプレートが標準で添付されています。これらのテンプレートを利用することで、手動によるアクセス権設定を行うのではなく、多くの設定について一貫した設定を一度に設定することが可能です。
しかし、セキュリティ設定が厳しくなることで動作に影響を受けるアプリケーションが発生する可能性があります。動作に影響を受けるアプリケーションがあった場合、テンプレートまたは構成データに対して、にアプリケーションが必要とするアクセス権の設定を追加する必要があります。一度ポリシーにあったテンプレートを作成すれば、次回からはそれを利用することが可能です。
10.レジストリの設定
ファイルシステム同様、レジストリのアクセス権についても、標準で高度なセキュリティ環境での利用を想定したテンプレートが添付されています。これらのテンプレートを使うか、独自のカスタマイズを行うことでより高度なセキュリティ設定を行うことが可能です。
フロッピーディスクならびにCD-ROMドライブに対して、ローカルにログオンしたユーザーのみにアクセスを制限したい場合には、リムームーバルメディアのアクセス制限を行うことで可能です。高度なセキュリティ設定を考慮する場合、これらは制限される方がよいでしょう。
デフォルトでは、一般ユーザーがプリンタドライバをインストールすることが可能です。高度なセキュリティ設定を考慮する場合、これらは制限される方がよいでしょう。
13.COM1 共有資源の管理
Windows 2000では、デフォルトでシステムオブジェクトに対する保護が有効に設定されています。
14.スケジューラの制限
高度なセキュリティ設定が必要な場合には、スケジューラに対してタスクを追加できるのは管理者のみに制限するべきです。これは、スケジューラサービスがデフォルトでシステム アカウントという高い権限で起動されるためです。通常システム アカウントである「System」は、システム上重要な多くのファイルに対して「フルコントロール」のアクセス権を持っています。不正侵入者にスケジューラサービスが悪用されると、システム上重要なファイルが危険にさらされることになります。
RISCシステムでは、Windows 2000のシステムパーティションがFATファイルシステム上に置かれます。この為、セキュリティを確保するため、システムパーティションへアクセスできるアカウントをAdministrators グループに制限する必要があります。
16.SYSKEY
Windows 2000では、System Key機能が提供されておりデフォルトで有効になっています。これは、不正侵入者に対して、Windows
2000のパスワードデータベースである「SAM」をより安全にするためにあります。
System Key 機能が有効になっていることで、不正侵入者が「SAM」などからパスワードハッシュを直接読み取る危険性を減らすことが可能になります。しかし、System
Key
機能を利用していたとしても、不正侵入者がシステム管理者と同等の権限を入手している場合には、パスワードハッシュの読み取りを防ぐ手段が無いため、SYSKEY
以外の設定にも十分注意する必要があります。
Windows 2000のレジストリに、ネットワークからアクセスできるかどうかは「winreg」というレジストリキーのアクセス権で制御されています。「winreg」キーのアクセス権を厳しく設定することで、不正侵入者がレジストリにアクセスすることを防ぐことが可能です。システムの管理者のような、リモートからレジストリに接続する必要のあるアカウントだけが、「winreg」キーに対してアクセス権を持つように設定する必要があります。
場合によっては、「winreg」キーに設定されていないユーザーに対してもレジストリへのアクセスを許可しなければならない時があります。Windows
NTでは、この為にレジストリアクセスに対して「例外パス」を設定する機能を持っています。
この「例外パス」を設定することで、「winreg」キーにアクセス権を持たないユーザーでも、「例外パス」にリストされたレジストリキーへはリモートからアクセスすることができます。
18.デフォルト共有
デフォルト共有は主にシステム管理者が保守の目的で利用する為にデフォルトで設定されている共有です。この為、管理の作業上、必要がなければデフォルト共有を削除することが可能です。(デフォルト共有のアクセス権は変更することができません)
デフォルト共有が存在する場合、システムドライブのルートや、ADMIN$としてシステムルートが共有されるため、不正侵入者のターゲットとなる危険性があります。
19.匿名ユーザーの制限
匿名ユーザー(Anonymous)からの接続を制限することは、Windows 2000のセキュリティを考慮するうえで少々やっかいな部分と言えます。匿名ユーザーはシステムが主に利用するアカウントで、信頼関係を結んだドメイン間などにおいて、システムがアカウントリストを取得するようなケースで使われています。この為、匿名ユーザーのアクセスを制限した場合には、思いがけない部分で影響を受けることがあります。しかし、これはドメインコントローラについては当てはまりますが、ワークステーション(Professional)や、Web
サーバーのように単独で実行されているコンピュータにはあまり当てはまりません。
匿名ユーザーのアクセスを制限しない場合、不正侵入者が匿名ユーザー経由でアカウントのリストや共有資源の一覧情報を入手する危険性があります。これらの情報は不正侵入者に対してアタックの手がかりを与えることになり望ましくありません。
匿名ユーザーからのアクセスを制限することで、不正侵入者がアカウントのリストや共有資源の一覧情報を入手することを防ぐことができます。
また、レジストリの「NullSessionPipes」値のリストを設定することで、ネットワーク経由の匿名ユーザーからアクセス可能なレジストリを制限することも可能です。
20.下位LM互換の制限
Windows 2000では、LMレスポンスと、NT LM レスポンスの 2種類のチャレンジ/レスポンス認証をサポートしており、デフォルトでは両方のタイプのレスポンスを送信するように設定されています。しかし、LM
レスポンスは下位互換性を維持する為に必要な認証方式であり、Windows
2000またはWindows NTのみで構築されたネットワークでは必要ありません。また、不正侵入者がネットワーク上を流れるLMレスポンスを解析した場合、NT
LMレスポンスに比べて短い時間でパスワードが解析される危険性があります。
Windows 2000では、ドメインコントローラ側でクリアテキストやLM
レスポンスによる認証を拒絶する機能が提供されています。この拒絶機能を利用することで、不正侵入者が大文字・小文字を区別しないクリアテキストやLM
レスポンスを使ったパスワード推測アタックに対処することができます。(NT
LM
認証では、大文字・小文字を区別するため、不正侵入者はより正確にパスワードを推測する必要がある)
また、NT LMv2 という NT LM
をより強力にした新たな認証方式が提供されており、高度なセキュリティが必要な環境では、NT
LMv2
を利用することで不正侵入者がネットワーク上を流れるチャレンジ/レスポンスからパスワードを解析することをより一層難しくすることができます。
Windows 2000のデフォルトではクリアテキストによるパスワードは送信されないように設定が変更されています。これは、クライアントとサーバー間の認証において、サーバーを詐称した不正侵入者の中継攻撃により、ユーザーのパスワードがクリアテキストでネットワーク上に流れないようにする為のものです。
この設定は「下位LM互換の制限」と同様、下位互換の為に必要なケースがありますが、高度なセキュリティが求められる場合には(デフォルトのまま)クリアテキストによるパスワードは送信されないようにします。
22.セッション自動切断の設定
Windows 2000のサーバ サービスのデフォルトでは、15分間アイドルが続いたセッションは自動的にセッションを切断するように設定されています。この設定を変更することで、自動切断までの時間を変更することができます。
23.デジタル署名の設定
Windows 2000では、SMB メッセージに対してデジタル署名を行う機能が提供されています。この機能を利用することで、サーバとクライアントにおいて双方向でメッセージの認証を行うことが可能になります。これにより、不正侵入者がSMBメッセージを改竄したりした場合、それを発見することができます。
Windows 2000ではセキュリティ
チャネルに対して署名と暗号化の機能が提供されています。(デフォルトで署名と暗号化の機能が有効に設定されています)
セキュリティ
チャネルとは、システムが利用する通信路で、サーバとワークステーション(Professional)、ドメインコントローラ間などにおいて認証情報のやりとりなどに利用されています。
セキュアチャネルを保護することで、不正侵入者がセキュアチャネルを流れるデータを改竄し、ローカルシステムにおいて管理者権限を得るようなことを防ぐことができます。
まず、Windows 2000 そのものは FireWall
などで十分保護されている必要があります。Windows 2000
の標準機能である、TCP/IP
のフィルタリング機能を使い、利用するポートのみをオープンすることで不要なポートを閉じることも可能ですが、Windows
2000ではRRAS(ルーティングとリモートアクセスサービス)が標準機能として提供されており、このパケットフィルタリング機能を利用することで、より柔軟なパケットの制御が可能になります。
パケットのフィルタリングを行った場合、システムの管理をいかに行うかが問題となるケースがあります。Windows
2000 を TCP/IP
のみで動作させファイル共有機能などを利用しないケースでは、TCP/IPのプロパティからNetBIOS
over TCP/IPを無効にすることで、137,138/UDP、139/TCPがクローズされます。
Windows 2000では、NetBIOS over TCP/IPのポートを使わずに、445/TCPを通じてリモートからの管理が可能になっています。RRASのパケットフィルタリング機能などを使い、このポートへの接続を信頼できるネットワークまたはコンピュータに制限する必要があります。また、Windows 2000ではIPsecが標準機能として提供されているので、HTTP以外のパケットに関してはIPsecを要求するなどのルールを適用することで、非IPsec対応クライアントにサービスを提供しつつ、その他の通信については認証と暗号化を利用することも可能です。
公開されているサービス(例:SMTP、HTTP,DNS など)におけるサービスのセキュリティには注意を払う必要があります。公開されているサービスに対して、バッファオーバーフローなどのアタックにより侵入の足がかりとなるコードが実行された場合、通常それらのコードはサービスに設定されているアカウント権限により実行される危険性が高くなります。IIS の場合、サービスが LocalSystem 権限で実行されており、この権限が柔軟には変更できないことから常に最新のサービスパックと修正モジュールを適用しておく必要があります。また、システムにインストールするサービスで特に高い権限が不要な場合には、権限を限定したアカウントによりそれらのサービスを実行する必要があります。
クライアントとサーバーいずれも Windows 2000 でシステムを構築することで、下位互換性による問題を回避することが可能です。一般的なファイルサーバより厳しいセキュリティ設定を施す場合には、アカウントロックアウトなどの一般的な設定に加えて以下項目について制限を行う必要があります。
匿名ユーザーの制限を行うことで、信頼関係を結んだドメインなどにおいてユーザーアカウントがブラウズできないなどの影響が出る可能性がありますが、手動で追加することでそれらの影響は回避することが可能です。
ネットワーク上を流れる認証パケットについては、Active Directory環境ではKerberosが利用されため基本的に安全ですが、下位
LM 互換の制限を行いサーバー側では NTLMv2
のみ接続を許可し、より下位の認証パケットについては拒否するように設定します。クライアント側では、サーバーに対して
NTLMv2 のパケットのみを送信するように設定を行います。
また、管理作業は基本的にコンソールで直接行い、管理者アカウントがネットワーク経由でサーバーに接続することを制限します。これにより、不用意な設定などによりネットワーク上を流れるパケットから管理者アカウントのパスワードが解析された場合でも、コンソールから直接ログオンしなければシステムに接続することができなくなります。
また、通信内容の暗号化が必要なケースでは、IPsecを利用することで、ドメイン上のコンピュータに対してIPsecによる認証・暗号化を適用することも可能です。
Windows 2000 のファイル共有など NetBIOS over TCP/IPの機能が不要なケースでは、「インターネット接続サーバの構築時」で述べたように「NetBIOS over TCP/IP」を無効にすることで、Microsoft のネットワーク機能を使わない、TCP/IP のみで稼動する NT システムとすることが可能です。
「NetBIOS over TCP/IP」を無効にした場合でも、以下の TCP/IP のポートは依然としてオープンしています。
135/tcp loc-srv #DCE endpoint resolution
135/udp loc-srv #DCE endpoint resolution
445/tcp microsoft-ds
445/udp microsoft-ds
これにより、侵入者に対してシステムが Windows
系のオペレーティングシステムであるという手がかりを与えることになってしまいます。
135/tcp,udp ポートは RPC(Remote Procedure Call)
が利用しているもので、通常は停止できません。また、DCOM
の機能を利用する場合には、このポートはオープンしておく必要があります。通信相手が固定できる場合は、RRASのフィルタリング機能を使うことで、特定のIPからのパケットのみを許可するなどの運用が必要になります。
DCOM を利用しているサイトで、アプリケーションでは DCOM
による通信が可能であればよいというケースであれば、基本的にはほとんどのサービスが停止可能です。サーバーがスタンドアロンで構成されている場合には、認証はローカルの
SAM を通して行われるため、基本的には Procedure Call(RPC) Service
が動作していれば他のサービスについては(Event Log
など停止できないものを除き)停止することが可能です。
サーバーがドメインのメンバーサーバーとして構成されている場合には、DCOM
によるユーザー認証を行うのに、そのサーバーとドメインコントローラの通信の為に必要となるサービスを起動する必要があります。
また、通信内容の暗号化が必要なケースでは、IPsecを利用することで、コンピュータ間の通信に対してIPsecによる認証・暗号化を適用することも可能です。