1. タイムラインログとは?

Defender for Endpointでは、端末上で発生する各種イベントをKQLで検索可能な形式で収集しています。
これらの情報を 時系列でつなぎ合わせる ことで、「攻撃者がどのように侵入し、展開し、情報を抜き出したか」などのストーリーが見えてきます。

主に利用するテーブル:

  • DeviceProcessEvents:プロセス実行のログ
  • DeviceNetworkEvents:通信先のIPやドメインの記録
  • DeviceFileEvents:ファイルの作成・変更・削除履歴
  • DeviceLogonEvents:ユーザーのログオン・ログオフ状況

2. 基本クエリ:ある端末での攻撃ストーリーを時系列で追う

kql

let targetDevice = "device123.contoso.com";
DeviceProcessEvents
| where DeviceName == targetDevice
| union DeviceNetworkEvents
| union DeviceFileEvents
| union DeviceLogonEvents
| sort by Timestamp asc

このクエリでは、指定した端末で発生したイベントを すべて統合して時系列順 に表示します。

🔍 ヒント:テーブルによってカラム名が異なるため、projectで共通フォーマットに揃えると見やすくなります。


3. ストーリー化のポイント

時系列分析では、以下のような「流れ」を意識することで、攻撃全体像が明確になります。

  1. 初期侵入(メール添付、USB、RDPなど)
  2. 実行(PowerShell, rundll32, cmdなどの使用)
  3. 探索(IPスキャン、AD列挙など)
  4. 移動(別の端末への接続、SMBなど)
  5. 情報搾取・破壊(ZIP、暗号化、外部送信)

4. 実例:PowerShellからの疑わしい展開

kql

DeviceProcessEvents
| where FileName == "powershell.exe"
| where ProcessCommandLine has_any ("Invoke-WebRequest", "IEX", "DownloadFile")
| project Timestamp, DeviceName, InitiatingProcessAccountName, ProcessCommandLine
| order by Timestamp asc

このクエリで、「スクリプト実行型の攻撃」の痕跡を検出し、展開フェーズを追えます。


5. 可視化の工夫

  • Power BI で Timeline 表現に変換する
  • KQL内で datetime_diff() を使って「異常な間隔」を検出
  • 複数端末にまたがる DeviceId 別ストーリーも併記する

6. まとめ:Defender for Endpoint はストーリーで使うと強力!

 

(観点)/(ポイント)

単発検知で終わらせない/イベントの「その後」を追って、実害や次フェーズを把握する

多テーブルを結合/情union報を統合、攻撃の流れ全体を見る

分析結果は伝わる形に/ストーリー形式やビジュアルに落とし込んで、非技術者にも共有

 

攻撃は「点」ではなく「線」で起きます。
Microsoft Defender for Endpointのログを駆使すれば、その線を可視化し、素早く・正確に状況を把握できます。

Colorkrew Securityでは、これらの分析ノウハウをベースにしたインシデント対応支援や教育支援も行っています。
お困りごとがあれば、ぜひご相談ください!