Microsoft 365 の統合監査ログをエクスポートする方法

Microsoft 365 の統合監査ログをエクスポートする方法

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

Purview ポータル(監査 → 検索)ではユニファイド監査ログを検索し、結果をCSVにエクスポートできます。完全なイベントは1列、AuditDataとしてJSON形式のブロブに格納されています。1行に1イベントのクリーンなJSONを取得するには、Exchange Online PowerShellとSearch-UnifiedAuditLogを使用してください。スクリプトは以下の通りです。標準の監査保持期間は180日で、Audit (Premium)ではデフォルトで1年間保持されます。

ユニファイド監査ログは、Exchange、SharePoint、OneDrive、Teams、および管理活動を一か所に集約します。ビジネスメール詐欺では、受信トレイルールや転送、マスダウンロードが表示されます。Prime Coreには、Microsoft 365監査データに対する79の検出ルールがあり、33のMITRE ATT&CK技法にマッピングされています。その中には、メールを吸い上げる転送ルール(T1114.003)、追加のメールボックス権限(T1098.002)、SharePointから取得されたデータ(T1213.002)が含まれています。

無料で始める

始める前に

監査はオンになっていますか? ほとんどのテナントでデフォルトでオンになっていますが、確認してください:

Connect-ExchangeOnline

Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled

Trueが望ましい状態です。Falseの場合、何も記録されず、オンにしても補完はされません。

ロール。 Audit LogsまたはView-Only Audit Logsロールが必要です。また、ExchangeOnlineManagementモジュール(Install-Module ExchangeOnlineManagement)も必要です。

レイテンシ。 イベントは直ちには表示されません。ほとんどは1〜2時間以内に表示され、一部はもっと時間がかかります。今朝のものを追いかけている場合、まだ検索可能ではないかもしれません。

PowerShellでのエクスポート

Search-UnifiedAuditLogは、最大で1コールあたり5,000件のレコードを返します。セッションIDとReturnLargeSetを使えば、1検索で最大50,000件をページングすることができます。このループはそれを行い、すでにJSONである各レコードのAuditDataを1行として書き出します:

$session = [guid]::NewGuid().ToString()

$out = "ual_2026-10-19.jsonl"

do {

    $batch = Search-UnifiedAuditLog -StartDate "2026-10-19 00:00" -EndDate "2026-10-20 00:00" `

             -SessionId $session -SessionCommand ReturnLargeSet -ResultSize 5000

    $batch | ForEach-Object { $_.AuditData } | Add-Content $out

} while ($batch.Count -eq 5000)

ログはUTCで時間を格納します。ウィンドウを設定する際に考慮してください。

何を探すべきか

操作その重要性
New-InboxRule, Set-InboxRule, UpdateInboxRulesメールを転送、移動、削除するルール;AuditDataのパラメータを確認してください
Set-Mailbox with ForwardingSmtpAddressメールボックスレベルで外部アドレスへの転送
Add-MailboxPermission, Add-RecipientPermission他のメールボックスへのアクセス権の取得
MailItemsAccessed実際に読まれたメッセージ;侵害の範囲を決定するための鍵
FileDownloaded, FileSyncDownloadedFull burstsSharePointまたはOneDriveからの大量ダウンロード
アプリケーションへの同意不正なアプリがメールまたはファイルへのアクセスを許可された

典型的なBECシーケンス:新しい場所からのサインイン、その数分後に受信トレイルールが作成され、財務チームへの返信が目立たないフォルダに移動されます。

LogTotalにアップロードして、洗浄、レビューを行います

  • アップロード。 開く logtotal.com そして.jsonlファイルをドラッグします。
  • 洗浄します。 
  • レビューします。

うまくいかない場合

症状考えられる原因Fix
Search-UnifiedAuditLogが認識されないExchange Online PowerShellに接続されていない最初にConnect-ExchangeOnlineしてください
結果が出ない監査がオフ、新しいイベント、または保持外インジェスチョンをチェック;待つ;監査の階層を確認
正確に5,000件の結果セッションなしでコールのリミットに達した上記のセッションループを使用
50,000件で止まったセッションのリミットウィンドウをさらに小さく区切る
アクセス拒否監査ロールがないView-Only Audit Logsを依頼

FAQ

これはEntraサインインログと同じではありませんか?

重複しています:UALにはUserLoggedInイベントがあります。しかし、認証の詳細(MFA、条件付きアクセス、リスク)については、Entraサインインログがより豊富です。両方をエクスポートしてください。

Management Activity APIはどうですか?

それはSIEMへの継続的な収集のためのルートです。一回限りの調査には、PowerShellの方が簡単です。

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