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更简便。