Microsoft Defender XDRからの高度なハンティング結果をエクスポートする方法

Microsoft Defender XDRからの高度なハンティング結果をエクスポートする方法

SOC Prime Team
SOC Prime Team linkedin icon フォローする

クエリを次の場所で実行します 高度なハンティング、その後、同じクエリを Microsoft Graph の runHuntingQuery に送信して、結果を JSON として取得します。 ポータルのエクスポートボタンは、今日 LogTotal が読み取らないスプレッドシート形式のファイルを生成します。 高度なハンティングは 30 日間のデータを保持するため、それより古いものは Sentinel や Defender データをストリーミングする場所から取得する必要があります。

Defender XDR はエンドポイント、アイデンティティ、メール、クラウドアプリケーションのテレメトリを一つのクエリ可能な場所に保持し、大半の Microsoft ショップの調査において最初のストップポイントとなります。 Prime Core は Microsoft Defender データ用に 659 の MITRE ATT&CK テクニックに対応した 17,197 の検出ルールを持っています。 下記に、その一部を抽出してサニタイズし、LogTotal で無料で調査する方法を示します。

無料で始める

始める前に

権限。 Graph では ThreatHunting.Read.All 権限が必要です。 サインインしたユーザーには高度なハンティングを許可する Defender ロールも必要です。

制限。 クエリは数分後にタイムアウトし、結果も制限されます。 時間やデバイスごとに分割する計画を立ててください。

テーブル。 DeviceProcessEvents、DeviceNetworkEvents、DeviceLogonEvents、DeviceFileEvents、DeviceRegistryEvents、DeviceEvents(ASR と AMSI イベントを含む種々雑多なもの)、EmailEvents、IdentityLogonEvents、および AlertEvidence に附属する AlertInfo。 時間列は Timestamp です。

例は、2026 年 10 月に確認された Microsoft のドキュメントに従っています。

ステップ 1: クエリを記述する

DeviceProcessEvents
| where Timestamp between (datetime(2026-10-19) .. datetime(2026-10-20))
| where DeviceName startswith "ws-042"
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine,
          InitiatingProcessFileName, InitiatingProcessCommandLine, SHA256

まずポータルで実行してください。 Defender のデバイス名は FQDN であることが多いため、startswith が == よりも適しています。

ステップ 2: Microsoft Graph を介してエクスポート

Connect-MgGraph -Scopes "ThreatHunting.Read.All"

$kql = @"
DeviceProcessEvents
| where Timestamp between (datetime(2026-10-19) .. datetime(2026-10-20))
| where DeviceName startswith "ws-042"
"@

$resp = Invoke-MgGraphRequest -Method POST `
  -Uri "https://graph.microsoft.com/v1.0/security/runHuntingQuery" `
  -Body (@{ Query = $kql } | ConvertTo-Json) -ContentType "application/json"

$resp.results | ForEach-Object { $_ | ConvertTo-Json -Depth 10 -Compress } |
  Out-File ws042_proc_1019.jsonl -Encoding utf8

各行は行ごとに 1 つの JSON オブジェクトとして返されます。 制限を超えないように、数日間または複数のデバイスに渡って日付単位でループします。

ステップ 3: LogTotal でアップロード、サニタイズ、およびレビュー

  1. アップロード。 開く logtotal.com に .jsonl ファイルをドロップします。
  2. サニタイズ。 
  3. レビュー。 

問題が発生した場合

症状可能性のある原因Fix
Graph からの 403ThreatHunting.Read.All の承認または Defender ロールの欠如承認を付与する; 自分の役割を確認してください。
クエリがタイムアウトまたは一部の結果のみを返す1 つのクエリに多すぎるデータ時間の窓を狭くするか、デバイスセットを絞る
30 日以上前のものはない高度なハンティングの保持Sentinel またはストリーミング先を使用
行数が丸い数字で止まる結果の制限窓を分割する
既知デバイスに対して行がない名前の不一致(短名 vs FQDN)startswith または has を使用

FAQ

デバイスから生の EVTX を取得することはできますか?

はい、Defender for Endpoint のライブレスポンスで: getfile は、エクスポートされた EVTX を含むファイルをマシンから取得します。

これは Sentinel と同じですか?

いいえ、ただし統合された Defender ポータルでは重複しています。 Sentinel はより長期の履歴を保持します。

SOC PrimeのDetection as Codeプラットフォームに参加し ビジネスに最も関連性のある脅威に対する可視性を向上させましょう。開始して即座に価値をもたらすためには、今すぐSOC Primeの専門家とのミーティングを予約してください。