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