如何导出 Microsoft 365 统一审核日志

如何导出 Microsoft 365 统一审核日志

SOC Prime Team
SOC Prime Team linkedin icon 关注

Purview门户 (审核 → 搜索) 允许您搜索统一审核日志并将结果导出到CSV。完整的事件通过一个名为AuditData的列呈现,作为JSON数据块。要获得清晰的JSON,每个事件一行,使用Exchange Online PowerShell和Search-UnifiedAuditLog。脚本如下。标准审核保留为180天;审核(高级)默认保留一年。

统一审核日志涵盖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)。

延迟。 事件不会立即出现。大多数在一到两个小时内显示,一些可能需要更长时间。如果您在追踪今天早上的事件,可能还不可搜索。

使用PowerShell导出

Search-UnifiedAuditLog每次调用最多返回5000条记录。使用会话ID和ReturnLargeSet,您可以每次搜索分页最多50000条。此循环实现了这一点,并将每条记录的AuditData(已经是JSON格式)作为一行写入:

$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 bursts从SharePoint或OneDrive的大量下载
同意应用程序流氓应用程序被授予了邮件或文件的访问权限

经典的BEC序列:从新位置的登录,然后在几分钟内,创建一个将来自财务团队的回复移动到某个不明显文件夹的收件箱规则。

上传、清理并在LogTotal中审查

  • 上传。 打开 logtotal.com 并拖入.jsonl文件。
  • 清理。 
  • 审查。

当出现问题时

症状可能原因Fix
Search-UnifiedAuditLog未被识别未连接到Exchange Online PowerShell首先Connect-ExchangeOnline
无结果审核关闭、事件过新或超出保留检查摄取;等待;检查您的审核层级
恰好5000条结果没有会话的每次调用限制使用上面的会话循环
停留在50000条会话限制将窗口拆分为更小的部分
访问被拒绝缺少审核角色申请View-Only Audit Logs

FAQ

这与Entra登录日志不是一样吗?

它们有重叠:UAL有用户登录事件。但对于认证细节(MFA、条件访问、风险),Entra登录日志更丰富。导出二者。

管理活动API呢?

那是持续收集到SIEM的路径。对于一次性调查,PowerShell更简便。

加入 SOC Prime 的 Detection as Code 平台 以提高对与您的业务最相关的威胁的可见性。为了帮助您开始并带来即时价值,现在与 SOC Prime 专家预约会议。