東京で働く、ある開発者のメモ

[Windows] ファイルの監査を使って、変更や削除を検知してみた。

運用していると、知らぬ間に重要なファイルが更新されたり削除されたりすることがある。
予期していない出来事なので、中々原因を特定できない。
そこで、今回は、Windows の監査機能を使って、ファイルやフォルダにいつ・誰がアクセスしたかを検知してみた。

(1) 監査機能の有効

(1-1) ローカル グループ ポリシー エディターの起動

「ファイル名を指定して実行」から「gpedit.msc」と入力し、「ローカル グループ ポリシー エディター」を起動する。

(1-2) ファイル システムの監査プロパティの起動

左ツリーから「コンピューターの構成」ー「Windows の設定」ー「セキュリティの設定」ー「監査ポリシーの詳細な構成」ー「システム監査ポリシー – ローカルグループポリシーオブジェクト」ー「オブジェクト アクセス」をクリックする。
開いた右パネルの「ファイル システムの監査」を選択し、右クリックし、プロパティを起動する。

(1-3) ファイル システムの監査の設定

「成功」「失敗」にチェックし、OK ボタンをクリックする。

(2) 監査機能の設定

(2-1) ファイルのプロパティの起動

今回は監査対象として、デスクトップ上にある test.txt を使用する。
ファイルを右クリックし、「プロパティ」をクリックする。

(2-2) セキュリティの詳細設定の起動

プロパティの「セキュリティ」タブをクリック、「詳細設定」ボタンをクリックし、ダイアログを起動する。

(2-3) 監査タブ

「監査」タブを開き、「続行」ボタンをクリックする。

「追加」ボタンをクリックし、「監査エントリ」ダイアログを起動する。

(2-4) プリンシパルの選択

「プリンシパルの選択」をクリックする。

「詳細設定」ボタンをクリックする。

「検索」ボタンをクリックすると、下部の「検索結果」リストに名前の一覧が表示される。
その中から「Everyone」を選択する。

「Everyone」が設定されていることを確認して、「OK」ボタンをクリックする。

(2-5) 種類

ファイルに対するアクセスに成功しても失敗しても、検知したいので、「すべて」を選択。

(2-6) 監査するアクセスの選択

詳細なアクセスを検知したいので、ダイアログ画面右にある「高度なアクセス許可を表示する」をクリックする。

今回は、「削除」のみ選択し、OK ボタンをクリックする。

セキュリティの詳細設定に設定内容が登録されていることを確認し、OKボタンをクリックする。

(3) セキュリティログの確認

test.txt ファイルを削除したことを検知できるかどうか確認するために、
「コントロールパネル」-「コンピューターの管理」を起動する。

左ツリーから「イベント ビューアー」-「Windows ログ」-「セキュリティ」をクリックすると、
セキュリティ関連のログが表示される。

(4) 検知内容の確認

それでは、test.txt ファイルを削除し、先ほどの画面を「F5」で更新する。
新規に3件のログが追加され、その内の1つを確認すると、
test.txt が DELETE されたと記録されていることが分かる。

以上