2008:auditpol で使用可能な subcategory の一覧を取得する


28日は久しぶりの IT Pro 道場でした。私は、高添スピーカーの補助としてオペレータを勤めたわけですが、操作担当といえども案外緊張するものです(笑)。


で、道場終了後にご質問をいただきましたので、この場を借りて回答させていただきます。


なお、監査については高添のblogでも触れられていますのでご一読ください。


http://blogs.technet.com/osamut/archive/2007/07/15/active-directory.aspx
http://blogs.technet.com/osamut/archive/2007/07/15/windows-server-2008-active-directory.aspx


質問



auditpol で使用可能なsubcategoryの一覧を参照するにはどうしたらよいですか?


回答



/list パラメタを使用して category および subcategory 一覧を参照することができます。 


ご質問の subcategory を参照するには、以下の通りに入力して実行します。 






auditpol.exe /list /subcategory:*


実行したところ以下のような一覧を取得することができました。






システム  ←  category
  セキュリティ状態の変更  ← subcategory
  セキュリティ システムの拡張
  システムの整合性
  IPsec ドライバ
  その他のシステム イベント
ログオン/ログオフ
  ログオン
  ログオフ
  アカウント ロックアウト
  IPsec メイン モード
  IPsec クイック モード
  IPsec 拡張モード
  特殊なログオン
  その他のログオン/ログオフ イベント
オブジェクト アクセス
  ファイル システム
  レジストリ
  カーネル オブジェクト
  SAM
  証明書サービス
  生成されたアプリケーション
  ハンドル操作
  ファイルの共有
  フィルタリング プラットフォーム パケットのドロップ
  フィルタリング プラットフォームの接続
  その他のオブジェクト アクセス イベント
特権の使用
  重要な特権の使用
  重要でない特権の使用
  その他の特権の使用イベント
詳細追跡
  プロセスの作成
  プロセス終了
  DPAPI アクティビティ
  RPC イベント
ポリシーの変更
  ポリシーの変更の監査
  ポリシーの変更の認証
  ポリシーの変更の承認
  MPSSVC ルールレベル ポリシーの変更
  フィルタリング プラットフォームのポリシー変更
  その他のポリシー変更イベント
アカウント管理
  ユーザー アカウント管理
  コンピュータ アカウント管理
  セキュリティ グループ管理
  配布グループの管理
  アプリケーション グループ管理
  その他のアカウント管理イベント
DS アクセス
  ディレクトリ サービス アクセス
  ディレクトリ サービスの変更
  ディレクトリ サービスのレプリケーション
  詳細なディレクトリ サービス レプリケーション
アカウント ログオン
  資格情報の確認
  Kerbaros Service Ticket Operations
  その他のアカウント ログオン イベント
  Kerberos Authentication Service


本日高添の道場でも触れられていた通り、"ディレクトリ サービスの変更" を使用すると、Active Directoryに加えられた変更前変更後の値を監査ログで取得することができます。"ディレクトリ サービスの変更" を有効にするには、上位の category と 下位の subcategory の両方を有効にする必要があります。






auditpol /set /category:"DS アクセス"
auditpol /set /subcategory:"ディレクトリ サービスの変更"


この機能、いいですよね。


少々残念なのは、それぞれが別々のイベントとして報告されるということと、イベントIDが同じであるということ...。ちなみに、イベントID 5136 で報告されます。


WMI を使用してイベントログを監視しているような場合、是非とも変更前と後の値を取り出したいですよね。でも、イベントIDが同じなので、ちょいと判断ロジックを工夫しないと難しそうです。必ず「変更前」→「変更後」と報告されるのならばよいのですが、大量に変更を行った場合、「変更前」がしばらく続いて、その後「変更後」が出現する可能性もあります。


もしそうだとすれば、変更されたオブジェクトをプログラム中でキャッシュしておき、変更後イベントとのマッチングを行う必要があります。うーん...ちょっと面倒かも...


もうひとつ考えられる方法としては、「変更前」だけ取得して、変更後の値は直接ADに参照しに行くか...ただしこの場合に注意しなければならないのはイベントが発生したドメインコントローラに見に行かなければならないということ。でないと、複製が完了していない可能性があり、古い値を参照してしまうかもしれません。それに、ADに負荷をかけてしまうことにもなるのか...。


うまく両者を取り出すことができれば、プロビジョニングにも流用できそうですし、ちょっと夢が広がりますね。メタバースを用意しなくても、ADを直接管理簿として使用するということも考えられます。


あ、ILM を否定しているわけではありません。手軽にやるならば、そんな方法もあるんじゃないかということです。


イベントの発生順序については今後検証してみますので、またここで報告します。

Comments (2)

  1. 匿名 より:

    質問させていただいた件、素早いレスポンスでの回答ありがとうございました!

    また、ITPro道場に参加させていただこうと思っています。

  2. 匿名 より:

    sashi さん

    先日は道場へのご参加ありがとうござました。

    またのご参加をお待ちしております。

Skip to main content