NFLabs. エンジニアブログ

セキュリティやソフトウェア開発に関する情報を発信する技術者向けのブログです。

Windowsイベントログ(セキュリティ監査)の設定/運用tips

こんにちは。NFLabs. 事業推進部の橋本です。
本記事はNFLabs. アドベントカレンダー 2日目です。

はじめに

本日はセキュリティ監査を行う上で重要な情報であるWindowsイベントログ(セキュリティ監査)について記事を書いていこうと思います。

2日目の「2」にちなんで、実際に設定/運用する際のお悩みポイントを2択形式で紹介していきます。

2択その1 ではWindowsイベントログ(セキュリティ監査)のログ出力設定方法に関する2択を紹介します。

2択その2 ではログオンログの分析に関する2択を紹介します。

2択その3 では共有ファイルへのアクセスログ分析に関する2択を紹介します。

Windowsイベントログ(セキュリティ監査)とは

お悩みポイントの話に入る前に、Windowsイベントログ(セキュリティ監査)について簡単に説明します。

WindowsイベントログはOSが提供する機能であり、アプリケーションからシステムまで様々なログが記録されます。

Windowsイベントログ(セキュリティ監査)は後述する出力設定を行う事でセキュリティ監査に必要な様々なログを記録することができます。イベントビューアで閲覧すると「Windowsログ」->「セキュリティ」に記録されています。

fig1
イベントビューアの表示例

記録したログはデータシッパーをインストールする事でSIEMに送付することもできますし、アーカイブ設定を行う事で単純にファイルとしてアーカイブしておく事もできます。

fig2
アーカイブ設定

2択その1: 監査ポリシーの設定 ~ 基本 or 詳細~

では早速1個目のお悩みポイントの紹介に入ります。

2択その1 ではWindowsイベントログ(セキュリティ監査)のログ出力設定方法に関する2択を紹介します。

ログ出力を設定するためには監査ポリシー設定を行う必要があります。

「ローカルグループポリシーエディタ」を起動すると、監査ポリシーの設定が出来そうな所が2つあることがわかります。(「ローカルセキュリティポリシー」やActiveDirectoryの「グループポリシーエディタ」でも同様です)

  • 「監査ポリシー」
  • 「監査ポリシーの詳細な構成」

fig3
セキュリティ監査の出力設定(ローカルグループポリシーの例)

なんだか似ているようで異なる設定項目ですね、、、いったいどちらを設定したらよいのでしょうか?

セキュリティ監査 (Windows 10) - Windows security | Microsoft Docs

Microsoft社のドキュメントではそれぞれ「基本的なセキュリティ監査ポリシー」、「詳細なセキュリティ監査ポリシー」として記載されています。

ドキュメントを読み進めていくと以下の注意点が見つかります。

基本的な監査ポリシー設定と高度な監査ポリシー設定の両方を使用すると、監査レポートに予期しない結果が生じる可能性があります。

つまり「混ぜるな危険」ということですね。設定するのはどちらか1つになりそうです。

どちらも設定すること自体は可能なので、少し角度を変えて、Microsoft社のお勧め設定を探してみます。

Windows基準ガイド - Windows security | Microsoft Docs

Microsoft社のドキュメントからWindows セキュリティ ベースラインという資料が見つかりました。

Windows セキュリティ ベースラインはWindows OSのセキュリティを確保するためのベースラインとなる設定を提供しています。

ベースラインとなる設定には監査ポリシー設定も含まれており、「詳細なセキュリティ監査ポリシー」の形式で記載されています。

ここはお勧め設定であるWindows セキュリティ ベースラインを活用できる「詳細なセキュリティ監査ポリシー」の方が良さそうですね。

その1のお勧め
Windows セキュリティ ベースラインを活用できる 「詳細なセキュリティ監査ポリシー」 がお勧めです。

2択その2: ログオンの監査  ~セキュリティ監査4624 or LocalSessionManager21~

続いて2個目のお悩みポイントの紹介です。

2択その2 ではログオンログの分析に関する2択を紹介します。

ログオンログは「ユーザがいないはずの休日夜間にログオンしていないか?」「いつも利用していない端末にログインしていないか?」等の監査のためにを活用されます。

ログオンの監査として使えるイベントログには以下の2つがあります。
(なお、どちらもデフォルトで出力されるため「その1」で紹介した設定は不要です。)

  • Windowsイベントログ(セキュリティ監査)の「ログオン」サブカテゴリに出力される event_id 4624
  • Windowsイベントログ(Microsoft-Windows-TerminalServices-LocalSessionManager/Operational)に出力される event_id 21

この2つはドキュメントを探しても情報があまり出てこないため、実機で検証して違いを観察する事にします。

検証実施時の環境

検証内容
クライアントに対してADアカウントでログインを実施します。

検証結果

  • セキュリティ監査 4624
    • Good
      • ADアカウントの場合、クライアント側とActive Directory(DS)側の双方にログが記録される
      • ログオンタイプ等の付加情報が記録される
    • Bad
      • ユーザアカウントのログオン以外にも多くの4624ログが出るため検索が大変(コンピュータアカウントやSYSTEMアカウントの認証等も出力される)

f:id:hashimoto-a:20211125222912p:plain
セキュリティ監査4624のログ出力例(Active Directory(DS)側)

  • LocalSessionManager 21
    • Good
      • ユーザアカウント以外の余分なログが出ないので検索が容易
    • Bad
      • ログオンタイプ等の付加情報が記録されない
      • Active Directory(DS)側にはログが記録されない

f:id:hashimoto-a:20211125223329p:plain
LocalSessionManager21の出力例(クライアント側)


その2のお勧め

  • 悪意のある操作を前提としない始業終業時刻の記録等の用途であればLocalSessionManager21を使用する
  • 悪意のある操作を前提とした厳密な認証記録が必要な場合はActive Directory(DS)で記録されたSecurity4624を使用する

2択その3: 共有ファイルの監査 ~詳細なファイル共有 or ファイルシステム

ラスト、3個目のお悩みポイントの紹介です。

2択その3 では共有ファイルへのアクセスログ分析に関する2択を紹介します。

共有ファイルへのアクセスログは「重要データが書き換えられていないか?」「重要データにいつ誰がアクセスしたか?」等の監査のために活用されます。
(なお、共有ファイルへのアクセスログは出力設定が必要です。)


【参考】共有ファイルへのアクセスログ出力設定
ファイルシステム」および「詳細なファイル共有」のサブカテゴリの監査を「成功」および「失敗」に設定します。

f:id:hashimoto-a:20211126023242p:plain
監査ポリシー設定

ファイルシステム」のログ出力対象としたいフォルダに対してSACLを設定します。

f:id:hashimoto-a:20211125224939p:plain
監査設定(SACL)

「詳細なファイル共有」ではSACL設定はできません。共有ファイルへのアクセス全てが出力されます。



共有ファイルの監査証跡として使えるWindowsイベントログ(セキュリティ監査)には以下の2つがあります(※1)。

  • ファイルシステム」サブカテゴリで出力される event_id 4656,4658(※2),4660,4663,4664,4670,4985,5051
  • 「詳細なファイル共有」サブカテゴリで出力される event_id 5145

※1:「ファイル共有」サブカテゴリも共有ファイル監査に関するログを記録できます。ただし、フォルダ名は記録されますが、ファイル名は記録されません。そのため候補から除外しました(決して無理やり2択にしたいからではないですよ(笑))。
※2: 4658(オブジェクトハンドルのCLOSE)は「ファイルシステム」のサブカテゴリに出力されますが、出力するためには「ハンドル操作」のサブカテゴリをONに設定する必要があります。

2つの特徴や使い分け方は以下のMicrosoft社のドキュメントに記載されているのですが、せっかくなので今回も実機検証をしてみます。


検証実施時の環境

  • 共有ファイルサーバ: Windows 2016(version 1607)
  • クライアント: Windows10(20H2)

検証内容
クライアントから共有ファイルサーバ上の共有ファイル(shares\audit-test.txt)に対して「書き込み」を実施します。

共有ファイル監査のログをイベントビューアで検索するのは大変なので、ログをElasticsearchに格納し、Kibanaで検索します。
www.elastic.co

検証結果
「ファイル名」と「書き込みを示すAccesslist」により絞り込みを行う事でどちらのサブカテゴリのログでも共有ファイルへの書き込みを発見することができました。

ただし、それぞれ以下の特徴を持ちます。

  • ファイルシステム
    • Good
      • SACLにより指定した対象ファイルや対象操作のみに絞ったログ出力が可能
    • Bad
      • 「詳細なファイル共有」では出力される「アクセス元IPアドレス/ポート」の情報が無い

f:id:hashimoto-a:20211126042549p:plain
ファイル書き込みログ(ファイルシステム)

  • 「詳細なファイル共有」
    • Good
    • Bad
      • SACLによる出力対象の指定ができないため、サーバ上の共有ファイル全てに対するログが出力される

f:id:hashimoto-a:20211126041727p:plain
ファイル書き込みログ(詳細なファイル共有)

その3のお勧め

  • 重要ファイルのみを保存するファイルサーバを単独で構築可能な場合は「アクセス元IPアドレス/ポート」が記録される「詳細なファイル共有」を使用する
  • 重要ファイルを他の共有ファイル(※3)と同じファイルサーバ上で保管する場合はログ量を抑えるためにファイルシステムを利用する
    • 「アクセス元」の情報は、ファイルサーバに記録された「ログオン(event_id 4624)」ログに記録された「アクセス元IPアドレス」から取得する(※4)

※3: 他の共有ファイルとしては「フォルダリダイレクトを適用した際のファイルサーバ上のユーザデータ」等が想定されます。

※4: 当該事象に関連する「ログオン」ログを特定するために、「共有ファイルへのアクセスログ」に記録された「アカウント名」及び「アクセス時刻」を条件にログを絞り込みます。

おわりに

本日はWindowsイベントログ(セキュリティ監査)を扱う際のお悩みポイントについて2択形式で紹介しました。

アドベントカレンダーの3日目は廣田さんによる「ssh接続時の二要素認証の実装」を予定しています。お楽しみに!