evtx ログの説明#
Windows の evtx ログの保存場所
%SystemRoot%\System32\Winevt\Logs\
主なログには、アプリケーション、セキュリティ、システムログなどが含まれます。ログのデフォルトのサイズは 20484K(20M)であり、超過した部分は期限切れのログを上書きします。
Windows の標準のイベントビューアを使用して、対応するログを表示できます。
ランダムにクリックして、イベント ID が 4624 のイベントを表示すると、次のような内容が表示されます。XML ビューに切り替えると、XML 形式のログを表示できます。
evtx_dump#
evtx ログを解析するためのツール
A Fast (and safe) parser for the Windows XML Event Log (EVTX) format
対応するバージョンをダウンロードしてください:
https://github.com/omerbenamram/evtx/releases
evtx_dump <evtx_file> XML形式でダンプする
evtx_dump -o json <evtx_file> JSON形式でダンプする
evtx_dump -f <output_file> -o json <input_file> 指定したファイルに出力する
fdと組み合わせて使用すると、一括処理が容易になります
fd -e evtx -x evtx_dump -o jsonl evtx拡張子のファイルを個別のjsonファイルにダンプする
fd -e evtx -x evtx_dump '{}' -f '{.}.xml evtxに対応するxmlファイルを作成し、内容を対応するxmlファイルに保存する
fd -a -e evtx | xargs -I input sh -c "evtx_dump -o jsonl input | jq --arg path "input" '. + {path: \$path}'"
-e:ファイルの拡張子
-a:隠しファイルやディレクトリを検索する
xargs -I input sh -c “command”:input変数を渡し、commandを実行する
jq --arg path “input” ‘. + {path: \$path}’:path変数を出力のjsonファイルに追加する
抽出#
evtx ファイルから EventID を抽出する
evtx_dump temp_scheduled_task_4698_4699.evtx -o jsonl | jq '.Event.System.EventID'
EventID をソートして数を集計する
evtx_dump Security.evtx -o jsonl | jq '.Event.System.EventID' | sort | uniq
イベント ID を確認することで、現在のログに含まれるほとんどのログの状態がわかります。上記の 5379 は、Microsoft Windows Defender アンチウイルスソフトウェアに関連するイベントを示しており、このイベントは Windows Defender の対応するポリシー情報を記録し、Defender の定期的なスキャンや更新の状況を示します。4625 はログインの失敗を示し、ログが 1 つしかない場合、ログインの総当たり攻撃の試みは存在しないことを意味します。4672 は管理者のログインを表し、管理者としての操作も記録されます。これは Linux の sudo に似ており、1 回の sudo につき 1 つのログが記録されます。
イベント ID との一致を一つずつ比較して、関連するイベントの影響を判断できます。
複数のフィールドを抽出する
evtx_dump temp_scheduled_task_4698_4699.evtx -o jsonl | jq '.Event.System.EventID','.Event.System.Computer'
イベント ID の参考:Windows 応急対応マニュアルのメモ