ログオンと認証
 ユーザーの行為を監視したりシステムへの攻撃を検出したりする上で最も重要なのが,ログオンの監視である。Windowsのドメイン・アーキテクチャでは,ログオンと認証は異なる概念になっている。ドメイン・アカウントを使ってクライアントにログオンするとき,クライアントもドメイン・コントローラのADで認証されていなくてはならない。監視カテゴリ別に見ると,「ログオン/ログオフ・カテゴリ」はログオン行為を追跡するものであり,「アカウント・ログオン・カテゴリ」は認証イベントを追跡するものである。

 Windows NT時代は,アカウント・ログオン・カテゴリが存在せず,ログオン/ログオフ・イベントしか追跡できなかった。これはドメインへの認証を追跡したい場合に大きな問題になっていた。というのも,ログオン/ログオフ・イベントは,ドメイン・コントローラではなく,イベントが発生した各コンピュータ(クライアントやメンバー・サーバー)に記録される。従ってログオンの失敗を監視するには,すべてのクライアントとメンバー・サーバーの監視を試みる必要があった。さらにひどいことに,認証されていないコンピュータからログオンを試みられたとしても,それを検出する方法がなかった。

ドメインならアカウント・ログオン

△ 図をクリックすると拡大されます
図3●ユーザーのログオン時に記録されるイベント
 幸いなことに,Windows 2000からはアカウント・ログオン・カテゴリが加わった(図3)。名前が不適切で,本来は「認証カテゴリ」と命名するべきだが,これでドメインのアカウントにおけるログオン・イベントをすべてドメイン・コントローラで把握できるようになった。フォレスト上のすべてのドメイン・コントローラのセキュリティ・ログを監視する必要があるが,ネットワーク上の全コンピュータのセキュリティ・ログを監視するよりはずっと良いだろう。

 アカウント・ログオン・カテゴリが加わった今でも,ログオン/ログオフ・カテゴリは有用である。ログオン/ログオフは,ログオン・セッション全体の追跡を支援してくれる。アカウント・ログオン・イベントは誰がどこからいつログオンしようとしたかを教えてくれるものであり,ログオン/ログオフ・イベントはログオンしていた時間の長さを教えてくれる。ログオン/ログオフ・イベントはログオンや認証が失敗したかについて,より詳細な情報を提供してくれる。

※Windows Server 2003の変更点

 Windows 2000は,成功した認証イベントと失敗した認証イベントのそれぞれに対して別々のイベントID群を用意していた。ところがWindows Server 2003では,アカウント・ログオン・カテゴリでより詳細な情報が記録されるようになった一方,Microsoftはどういうわけか,失敗した認証イベント用のイベントID群を廃止し,対になっている成功した認証イベントと同じイベントID群を使うようになってしまった。


アカウント管理とディレクトリ・サービス・アクセス
 「アカウント管理カテゴリ」は,ユーザー/グループ/コンピュータに対して加えられた変更を追跡可能で,複数の行為を監視するに当たって重要な役割を果たす。一般にリソースへのアクセスを管理する際には,アクセス権をユーザーに直接与えるのではなく,グループに与えるのが最良である。アカウント管理カテゴリを使えば,グループのメンバーシップに変更があったときにそれを簡単に識別できる。また一般に攻撃者はシステムへの管理者権限を得たら,将来の攻撃で使えるように新しいユーザー・アカウントを作成するものである。これについてもアカウント管理カテゴリを監視すれば,新たに作成されたユーザー・アカウントの追跡が容易である。

 管理者の作業をチェックする上でも,アカウント管理カテゴリが有用である。誰かが誤ってユーザー・アカウントを削除したり,ユーザーまたはグループに対する変更の割り当てを間違えたりした場合でも,アカウント管理カテゴリが監査の手掛かりを提供してくれる。

 「ディレクトリ・サービス・アクセス・カテゴリ」は,ADのオブジェクトとそのプロパティに対する低レベルの監査を提供する。このカテゴリはADに関連しているため,ドメイン・コントローラではないコンピュータで監査を有効にしても意味はない。ユーザー/グループ/コンピュータはADのオブジェクトなので,ディレクトリ・サービス・アクセス・カテゴリとアカウント管理カテゴリはある程度重複する。アカウント管理カテゴリはユーザー/グループ/コンピュータに対する高レベルのレポートを提供するもので,ディレクトリ・サービス・アクセス・カテゴリはADのオブジェクトに対する非常に低レベルの監査を提供する。

△ 図をクリックすると拡大されます
図4●ディレクトリ・サービス・アクセス・イベントの例
 アカウント管理カテゴリでは,各オブジェクトとオブジェクトに対して行われたアクセスに関して,それぞれ固有のイベントIDが用意されている。それに対してディレクトリ・サービス・アクセス・カテゴリでは,すべての行為に対して「イベントID 566」しか用意されていない。イベントID 566は,オブジェクトの種類やオブジェクト名,オブジェクトにアクセスしたユーザー,ユーザーがオブジェクトに対して行ったアクセスの種類を表示する。図4で紹介しているイベントは,管理者がSusanのアカウントのジョブ・タイトル(役職)を変更したことを示している。

 ディレクトリ・サービス・アクセス・カテゴリには面倒な点もある。Windows 2000ベースのドメイン・コントローラでは,ディレクトリ・サービス・アクセス監査ポリシーの既定の設定は,ADのオブジェクトを変更しようとする行為について,成功や失敗にかかわらずすべて記録するというものなので,大量のイベントが残ってしまう。また,イベントID 566に記載されるオブジェクトの種類とプロパティ名は,ADのスキーマから直接取り込まれるので,どちらかというと不可解である。例えば,ユーザーの市区町村フィールドは「l」(localityの頭文字),姓フィールドは「sn」(surnameの頭文字)と表記される。

 アカウント管理カテゴリは,ユーザー/グループ/コンピュータのメンテナンスを監査する日常的な用途に向いている。GPOやOUのような重要なADオブジェクトに対する変更の監査は,ディレクトリ・サービス・アクセス・カテゴリでなければできない。

※Windows Server 2003の変更点

 Windows 2000に存在した,ユーザーのパスワードの変更とリセットに関連するバグが修正された。Windows 2000のマニュアルには,パスワードのリセットはイベントID 628に記録されるとあったが,実際にはパスワードのリセットも変更もイベントID 627に記録されていた。Windows Server 2003ではバグが修正され,パスワードの変更はイベントID 627に,パスワードのリセットはイベントID 628に記録される。


ファイル・アクセスの監査
 「オブジェクト・アクセス・カテゴリ」では,ファイル,フォルダ,プリンタ,レジストリ・キー,システム・サービスへのアクセスを監視できるが,大抵はファイルとフォルダを監視するために利用される。

 このカテゴリを有効にすると,SAMのオブジェクトに対するアクセス・イベントはセキュリティ・ログに記録されるものの,ファイルや他のオブジェクトに対するアクセス・イベントは記録されない。というのも,どのオブジェクトも独自の監査設定を持っていて,デフォルトでほとんどのオブジェクトの監査が無効になっているからだ。これは良い標準設定である。すべてのファイルとオブジェクトに対するアクセスを監査しようとすれば,システムは停止し,セキュリティ・ログ用にどれほどの容量を割り当てたとしても,すぐにいっぱいになってしまうからだ。このカテゴリは,どうしても監査が必要とされる重要なファイルに対してだけ使うようにすることをお勧めする。