当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Office 365 审核日志分析:搜索-UnifiedAuditLog

作者:精品下载站 日期:2024-12-14 13:25:51 浏览:13 分类:玩电脑

Office 365 审核日志分析:搜索-UnifiedAuditLog


[玩转系统] Office 365 审核日志分析:搜索-UnifiedAuditLog

不好了。您最近发现您的一位用户的 Office 365 帐户遭到泄露!现在做什么???

您的第一步应该是通过切断受影响用户帐户的访问权限来最大限度地减少损失。请按照本文中的步骤立即有效地阻止受损帐户。

接下来,您需要调查访问了哪些 Office 365 资源。希望您已经在 Office 365 中启用审核!如果没有,那么你在向管理层解释为什么没有这样做时就会遇到麻烦......

假设 Office 365 审核一直在进行,您现在可以开始调查哪些数据已被泄露。

使用安全与合规中心查看 Office 365 审核日志 - 以及为什么它没用......

要检查 Office 365 审核日志,请打开安全与合规中心并转到搜索 -> 审核日志搜索:

[玩转系统] Office 365 审核日志分析:搜索-UnifiedAuditLog

这将允许您执行一些缓慢且不一致的查询......

安全与合规中心的审核日志搜索界面有两个主要缺陷:

  • 它将随着结果返回而动态更新
  • 它不会通知您搜索查询中的项目限制为 5,000 个

这意味着输出很慢并且不能被信任为完整的图片。此外,数据很难导出和使用。

PowerShell 来救援!

为了有效地使用 Office 365 审核日志,我们需要 PowerShell。更具体地说,我们必须使用以下命令:

搜索-统一审核日志

它需要几个参数,其中最有用的是:

  • StartDate - 结果集中最早的日期/时间
  • EndDate - 结果集中的最新日期/时间
  • ResultSize - 设置为 5000,最大允许输出 5000 条记录
  • UserIDs - 我们搜索的用户列表(数组)
  • IPAddresses - 我们搜索的 IP 地址列表(数组)

为了获取给定时间范围内的所有日志条目,您可以忽略 UserID 和 IPAddresses 参数,因为这些参数只会缩小结果集的范围。

以下是对 2019 年 6 月 1 日至 2019 年 8 月 1 日期间看到的与用户 Tycho Brahe 相关的所有审核日志的示例搜索:

Connect-ExchangeOnline
$AuditLog = Search-UnifiedAuditLog -StartDate "2019-06-01" -EndDate "2019-08-01" -UserIds "[email protected]" -ResultSize 5000
$ConvertAudit = $AuditLog | Select-Object -ExpandProperty AuditData | ConvertFrom-Json
$ConvertAudit | Select-Object CreationTime,UserId,Operation,Workload,ObjectID,SiteUrl,SourceFileName,ClientIP,UserAgent | ft
Disconnect-ExchangeOnline

主要采取三项行动:

  1. 连接到 Exchange Online(第 1 行)
  2. 执行审核日志搜索(第 2 行)
  3. 从结果集中获取有意义的属性(第 3 - 4 行)

你应该注意三件事:

  • 审核数据的有用部分以 JSON 形式嵌入到日志条目的 AuditData 属性中
  • 返回的记录不超过5000条
  • 仅保留三个月的日志,因此您无法搜索超出此范围的日志

修复 5000 名入场人数限制

在大多数情况下,当您在日志中搜索所有用户活动时,您会发现自己突破了 5000 条记录的限制。为了解决这个问题,您需要将查询分解为多个查询,这些查询将保持在 5000 条记录的限制之内。

解决此问题的一种方法是将查询分解为一小时的时间范围。可以通过以下方式搜索 14 天的日志文件:

Connect-ExchangeOnline
$OutputFile = ".\UnifiedAuditLog_FULL.csv"
$Today = Get-Date -Date (Get-Date -Format “yyyy-MM-dd”)
$intDays = 14
For ($i=0; $i -le $intDays; $i++){
  For ($j=23; $j -ge 0; $j--){
    $StartDate = ($Today.AddDays(-$i)).AddHours($j)
    $EndDate = ($Today.AddDays(-$i)).AddHours($j + 1)
    $Audit = Search-UnifiedAuditLog -StartDate $StartDate -EndDate $EndDate -ResultSize 5000
    $ConvertAudit = $Audit | Select-Object -ExpandProperty AuditData | ConvertFrom-Json
    $ConvertAudit | Select-Object CreationTime,UserId,Operation,Workload,ObjectID,SiteUrl,SourceFileName,ClientIP,UserAgent | Export-Csv $OutputFile -NoTypeInformation -Append
    Write-Host $StartDate `t $Audit.Count
  }
}
Disconnect-ExchangeOnline

这将为您提供一个按时间排序的良好输出,可以使用 Excel 打开该输出以进行进一步分析。

您必须关注每小时生成的记录数(第 12 行中的输出)。如果任何记录集包含 5000 个项目,则您已达到限制,需要进一步缩短时间范围,例如30 或 15 分钟而不是 1 小时。

上述查询的输出包含有关哪些用户访问哪些信息以及从哪些 IP 地址访问哪些信息的非常有用的信息:

[玩转系统] Office 365 审核日志分析:搜索-UnifiedAuditLog

尤其是 IP 地址(ClientIP)会提示访问是否合法。

将 IP 地址转换为地理位置数据将有助于进一步分析。阅读这篇文章以了解如何使用 PowerShell 执行此操作。

Office 365 取证和 Easy365Manager

Easy365Manager 是 Active Directory 用户和计算机的管理单元,允许您直接在 AD 用户和计算机中执行 Office 365 许可证和邮箱管理。

举个例子,看看管理日历委托有多么容易(通常只能通过 PowerShell 实现):

使用 Easy365Manager,您不再需要使用多个 Web 控制台并运行复杂的 PowerShell 脚本。一切都由 AD 用户和计算机进行管理。

Easy365Manager 甚至允许您删除最后一个本地 Exchange 服务器。

Easy365Manager 的众多好处之一是管理员能够使用个人凭据。

Easy365Manager 不会添加额外的专有安全层。这意味着所有安全日志记录的执行方式与您使用标准工具完全相同。

所有 AD 操作都会根据 AD 上配置的 SACL 记录在安全日志中。

所有 Office 365 操作均通过 Office 365 中的统一审核日志进行记录,如本文所述。

因此,您可以放心,您的取证不会受到 Easy365Manager 的影响。

立即下载功能齐全的 30 天试用版,让您的混合 Office 365 管理生活更加高效。

很棒的产品,我真的很高兴我们找到了它!

Charles-Eric Haché
IT 和电信主管
加拿大魁北克省圣朱莉

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯