Windowsの監査ログを設定する(PowerShellスクリプト付き)

投稿者: | 2016/11/13


前回 はWinlogbeatを設定して、Windowsの監査ログをFluentdへ転送する設定を行いました。順序は逆になってしまいましたが、今回はログオン・ログオフ及びファイル・フォルダに対する監査ログをイベントログに出力させてみます。以下のOSで動作確認しています。

  • Windows Server 2008 R2
  • Windows Server 2012 R2

設定はGUIでできるのですが、今回はPowerShellでやってみます。PowerShellで設定するメリットは、設定漏れやミスが起こりづらいことと、複数サーバに対しても効率よく適用することができるからです。

監査ポリシーのバックアップ、クリア

監査ポリシーを設定する前に、以前の設定を戻すことがあるかもしれないのでバックアップを取ります。

C:¥audit.csv に現在設定している監査ポリシーが出力されます。
なお、現在設定している監査ポリシーは以下のコマンドで一覧表示できます。

監査ポリシーをクリアするには以下のコマンドを実行します。

監査ポリシーを設定した後に、OS再起動すると設定が戻っている場合があります。その場合は以下のようにファイルを削除しておいてください。

ファイル監査の有効化

ファイル監査の有効化は NTFSSecurityモジュール が提供されているのでこれを使います。

Install-Moduleが使えない場合は直接ダウンロードしてPowerShellモジュールパスに置きます。
予めモジュールをダウンロードして C:\NTFSSecurity.zip に配置してください。

ZIPファイルを解凍する Expand-Archive コマンドですが、PowerShellのバージョンがv5.0以降でないと使えないため、v5.0より以前の環境下では以下の関数を定義して利用します。

インストールが正常にできたかは以下のコマンドで確認できます。

ファイル監査を有効にします。以下のコマンドを見てください。C:¥以下すべてのファイル・フォルダに対して監査を有効にしています。アクセス権は Read(読み)、Write(書き)、Delete(削除)、CreateFiles(ファイル作成)、CreateDirectories(フォルダ作成)、ExecuteFile(ファイル実行)です。対象ユーザはドメインに参加しているユーザにしています。

監査ポリシーの設定

以下の図のような監査ポリシーを有効にします。

Windows file audit 001
Windows file audit 002

サブカテゴリ名はOSの言語環境に依存します。当環境は日本語だったのでそれを指定しています。
なお、私の場合、複数のWindows Serverに対してPowerShellスクリプトを実行する場合、EC2 Run Commandを多用するのですが、その場合GUIDを指定しないと動かないので注意が必要です。

GUIDは以下のコマンドで調べることができます。

監査ポリシーが適用されたか確認します。

GUI上(ローカルセキュリティポリシー)だと有効にならない(未構成)になっていますが、以下のコマンドで有効(成功および失敗)になっていれば問題ありません(なぜGUIとCUIで結果が異なるかはわかりません)。

最後にイベントログのセキュリティ欄を見て、ログオンやログオフ、ファイル・フォルダへの操作に対するログが記録されていれば完了です。

最後に

Windowsのログオン・ログオフやファイル監査を有効にし、監査ログに出力する設定をPowerShellで行いました。設定は簡単なのですが、ファイル監査を有効にするとほんの少し操作するだけでも大量のイベントログが出てきてしまい、ユーザがどんな操作をしているのかを追うことが難しい気がしています。調べて見ると別途イベントビューアを通して確認するより他がないようです。その辺りのノウハウをどなたかご教示いただきたいです。

参考URL

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*