2009年1月9日金曜日

Windowsのオブジェクトアクセス監査でアクセス権の変更を記録する

ちょっと質問を貰った事でまとめたので、こちらに転載。
 

WindowsServer2003のファイル共有を使っていたら、共有フォルダのアクセス権が知らん間に変わっていたので、監査ログを残しておきたいという話。
 
 

監査を有効にするには下記のように設定。
【解説】重要なファイルに対するアクセスを監査するには? - ITPro
 

今回の目的だと、フルコントロールでなくて、「アクセス許可の変更」を成功・失敗ともつければいいや。
 
 

ファイル監査全体については下記がすごく分かりやすい。
ファイルサーバー監査(ファイル) - 株式会社エスディーケー
http://www.sdk-ltd.com/misc/el107.asp
 

で、実際今回理解しておけばいいことだけまとめ。
 

  • ファイル操作イベントは ID 560 から 562 ではさまれます

  • 一連の動作は、オープン後のファイルハンドル番号が共通なので同時にアクセスがあっても分かる

  • イベントID 560 と 562 の間にある イベント ID 567 にユーザがやろうとした動作の情報がある



 



で、567のやろうとした動作は アクセスマスク として書いてあります。
 

アクセス権の変更なら、
「アクセス マスク: WRITE_DAC 」
 

となっているので抽出できる。というわけです。
 
[caption id="attachment_1168" align="alignnone" width="469" caption="画像:アクセス権変更した時のイベント"]画像:アクセス権変更した時のイベント[/caption]
 

どのファイルをいじったかは直前のイベントID560のログを見て、ハンドルIDから引きましょう、イメージファイル名はファイル操作に使ったアプリなので間違えないように。
 

ちなみにここではファイルだけど、Windowsはフォルダを「入れ物属性持ったファイル」として扱うのでフォルダの場合も大体同じです。