作者:Megan Roddie 翻译:Doris Liu 转载请注明
Microsoft 365日志功能的优势之一是可以将所有日志集中到统一审计日志(UAL)中。该单一日志将包含 Azure AD、Exchange、SharePoint、OneDrive 等用户和管理员活动。我们将具体研究查询和导出UAL的三种方法:
- Microsoft Purview 合规门户网站
- PowerShell
- Microsoft 365 管理应用程序接口
这三个方法选项各有利弊,因此,您想使用哪种方法完全取决于您的使用情况。
Microsoft Purview合规门户网站
通过 Microsoft Purview合规性门户网站访问日志最适合用于需要执行快速、有针对性搜索的情况。它有很好的内置搜索功能,但利用门户网站中的数据比较困难,而且导出功能有限制,使用起来不太理想。如果你选择了这种方式来导出日志,可以参考以下步骤:
1.登录 Purview 合规门户网站。
2.从左侧菜单中选择 "审计"。
3.指定日期范围,应用筛选器,然后选择搜索。
在搜索选项下方,将显示以前和正在进行的搜索列表。搜索完成后,您将看到 "任务状态 "为 "已完成"。
4.点击相关搜索,在随后的页面左上方选择 "导出"。
导出可能需要一些时间才能完成,尤其是在结果包含大量记录的情况下。您可能需要刷新页面以检查是否完成。结果准备就绪后,屏幕顶部会显示绿色状态信息,并带有下载链接。
遗憾的是这种方法的另一个缺点是 SOF-ELK Microsoft 365 解析器不支持 Purview 导出。为了与 SOF-ELK兼容,你应该使用接下来要讨论的PowerShell的方法。CSV导出中最重要的数据以JSON blob的形式存储在"AuditData"列中。因此,如果要在Excel或其他CSV查看器中查看日志,就需要转换该列。微软在其文档中提供了如何进行转换的分步说明。
PowerShell
PowerShell 有一个名为Search-Unified AuditLog的Cmdlet,允许您通过PowerShell界面查询和导出UAL。这种方法最好在尝试导出少量UAL时使用,因为它将记录数限制为5000条。如果您需要5,000条以上的记录,并希望利用PowerShell,建议您看看下面"开源UAL收集工具"部分中提到的Microsoft Extractor Suite。
在尝试通过PowerShell导出UAL之前,需要安装Exchange Online PowerShell模块,该模块提供了与Microsoft 365交互的cmdlets。此外,还需要确保拥有通过PowerShell访问UAL所需的权限。至少需要通过Microsoft 365管理中心的角色组为用户分配 "仅查看审计日志"角色。具备这些先决条件后,就可以执行以下步骤导出日志。
1.连接至Microsoft 365
2.执行搜索,提取 AuditData 属性,并将输出导入 UTF8 编码的JSON文件
此时,您可以将 JSON 文件导入 SOF-ELK(通过将其复制到 Microsoft 365 Logstash 目录)或您选择的其他解析工具。
Microsoft 365 管理应用程序接口
导出 UAL 的最后一种方法是 Microsoft 365 应用程序管理接口。这种方法最适用于希望持续查询 UAL 以将日志摄取到 SIEM 等外部平台的环境,或超出 PowerShell Cmdlet 导出限制的大型环境。API 端点只会返回最近7天的结果,因此必须通过定制开发的应用程序或利用 API 的商业解决方案对其进行持续访问。使用 API 的高级步骤如下:
1.在Azure AD中注册并配置应用程序
2.为应用程序生成新密钥和X.509证书
3.授权Microsoft 365管理API访问权限
4.从Azure AD申请访问令牌
5.开始订阅所需日志
6.定期检索日志块
有关利用 API 的更深入指导,请参阅此处的 Microsoft 文档:Get started with Office 365 Management APIs | Microsoft Learn.如果您利用商业软件来收集这些日志,它们很可能有内置的集成和配置指南,用于将您的解决方案与API连接。
开源的UAL获取工具
Invictus IR 发布了一套脚本,用于使用PowerShell提取 Microsoft日志(包括 365 和 Azure)。这些脚本的主要优点之一是可以将提取分成若干块,以避免Search-UnifiedAuditLog PowerShell cmdlet 施加的记录限制。有关提取UAL 的脚本如下:
- 获取所有 UAL 条目。仅支持按日期和用户名过滤。
- 根据预定义的组获取所选组 UAL 条目。这些组试图弥补 Search-UnifiedAuditLog cmdlet 不支持按工作量过滤的缺陷。
- 除日期和用户名外,还可根据 RecordType 过滤获取特定记录。
- 根据日期和用户名过滤器显示 UAL 中的日志总数。
你可以通过以下Github链接免费访问这些脚本:
总结
本文讨论了访问和导出统一审计日志 (UAL) 的各种方法。如果您需要执行快速和有针对性的搜索,可以利用 Purview 合规性门户。如果想检索UAL的一小部分并导出为JSON格式,PowerShell提供了Search-UnifiedAuditLog cmdlet。对于大型组织或需要持续轮询UAL的组织,可以使用Microsoft 365应用程序管理接口。
作者:Megan Roddie 翻译:Doris Liu 转载请注明