Windows踏み台のログイン証跡の賢い取り方


はじめに

Windowsで踏み台サーバを構築するケースってありますよね?

そんなWindowsの踏み台サーバのログイン証跡って
イベントログのSecurityから拾っている人が多い気がするんですが、もっと良い方法があるんです!

利用環境

・Windows7以降、WindowsServer2008R2以降
・Winlogbeat 6.5.4 (どのバージョンでもOKのはずです)

監査証跡として使えるイベントログ一覧

  • このMicrosoft-Windows-TerminalServices-LocalSessionManager/Operationalが使えます。
EventLog名 EventID 説明
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational 21 OSログイン成功
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational 23 OSログオフ成功
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational 24 OSセッション切断
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational 25 OSセッション再接続
Security 4625 OSログイン失敗
  • ログイン成功を[Security]の[4624]で拾おうとするとOSログイン以外でも結構ログが出ます。
  • 正確な監査が出来ないので、自分は上記のイベントログを監査に利用するようにしています。
  • リモートデスクトップ接続でもローカルでのログインでも同じようにログが出ます。

イベントビューアーで見てみると

  • [アプリケーションとサービスログ] > [Microsoft] > [Windows]のかなり下の方にあります。

  • [TerminalServices-LocalSessionMAnager] > [Operational]を開きます。

  • ログイン成功の場合のEventID21は以下のような情報が出ています。

Winlogbeatを使ってログを可視化

  • Windowsのイベントログを監査などに利用する場合にオススメはElastic社のWinlogbeatです。

※導入手順は以下を参考にしてみると良いと思います。
【参考】
Windows のイベントログを Winlogbeat+Elasticsearch+Kibana で可視化する

本投稿で紹介したイベントログを取得する場合の設定は以下の通りです。

winlogbeat.yml
#======================= Winlogbeat specific options ===========================
winlogbeat.event_logs:
  - name: Microsoft-Windows-TerminalServices-LocalSessionManager/Operational
    tags: ["login"]
    event_id: 21,23,24,25
  - name: Security
    tags: ["login"]
    event_id: 4625

#================================ Outputs =====================================
#-------------------------- Elasticsearch output ------------------------------
output.elasticsearch:
  # Array of hosts to connect to.
  hosts: ["<ElasticsearchのIPアドレス>:9200"]
  • EventLog名とEventIDを指定するだけでほしいイベントログをXML→JSON変換してOutputしてくれます。
  • Elasticsearchにoutputするだけで正規化は勝手にWinlogbeatが行ってくれるので超便利です。