Q

Windows 2000のActive Directoryドメインで,ドメインへのユーザーのログオンやログオフを監査し不正アクセスを検出しようと考えています。そこで,ドメイン・コントローラのセキュリティ・ポリシーで,[アカウントログオンイベントの監査]について成功と失敗の両方をチェックしました(図1)。

 すると,セキュリティ・ログにID:672とID:673というイベントが記録されるようになり,このうちID:672のイベントがログオンの成功を表しているようです。しかし,ログオフに関しては,関連する情報が記録されないようです。

 さらにその対策として,[ログオンイベントの監査]も有効にするとID:540の「ユーザーのログオン」や,ID:538の「ユーザーのログオフ」というイベントが記録されるようになりました。しかし,これらは実際のユーザーのログオン/ログオフと関係なく記録されてしまうようです。なぜ,こうした事象が発生するのでしょうか?また対策はないのでしょうか?


△ 図をクリックすると拡大されます
図1●Active Directoryドメイン・コントローラのセキュリティ・ポリシーで監査を設定するとセキュリティ・ログが記録される

A

これは,Windowsの認証機構やActive Directoryにおける仕様となります。

 まず,[アカウントログオンイベントの監査]は,厳密にはActive DirectoryのKerberos認証においてTGT(Ticket Granting Ticket)などのチケット発行を監査する機構です。TGTは通常,対話ログオン時にKerberosのKDC(Key Distribution Center)となるドメイン・コントローラからクライアントへ発行されます(図2)。このTGT発行時に「認証チケットの許可」を表すID:672のイベントがログに記録されます。しかし,ログオフ時にはサーバーと通信することなくチケットが破棄されるため,特にサーバー側のイベントは発生しません。


△ 図をクリックすると拡大されます
図2●ドメイン・コントローラに[アカウントログオンイベントの監査]と[ログオンイベントの監査]を設定した場合の動作

 一方,[ログオンイベントの監査]は,サーバーに対するセッションの確立や切断を監査するための機構になります。例えば,サーバー上の共有ディレクトリに接続するとセッションが確立され,イベント・ログに「ユーザーのログオン」(ID:540)が記録されます。その後,明示的に切断処理をしたり,ある程度無通信状態が続いた場合にセッションは切断され,イベント・ログに「ユーザーのログオフ」(ID:538)が記録されます。つまり,[ログオンイベントの監査]は通常のユーザーのログオン/ログオフとは基本的に関係しないということになります。

正確に記録したい場合はスクリプトで
 こうした理由から,監査ポリシーでは対話的なユーザーのログオン/ログオフを正確に監査することは困難です。

 対話的なログオン/ログオフ情報を確実に記録したい場合は,ログオン・スクリプトやログオフ・スクリプトを活用するとよいでしょう。図3に示したような簡単なログオン・スクリプトや,ログオフ・スクリプトを適切なグループ・ポリシーの[ユーザーの構成]中にあるログオン・スクリプトやログオフ・スクリプトとして構成することで,ログオンやログオフの情報をイベント・ログに出力することが可能となります。

高橋基信

△ 図をクリックすると拡大されます
図3●あらかじめ定義したスクリプトをグループ・ポリシーに設定すればユーザーのログオン/ログオフをイベント・ログとして記録できる