数字取证:探究Microsoft 365搜索行为在统一审计日志中的踪迹

本文通过实践测试,深入探讨了在Microsoft 365环境中用户和管理员执行不同搜索操作时,统一审计日志(UAL)的记录情况,揭示了哪些搜索行为会被记录,哪些不会被记录,并指出了相关的日志配置要点。

星期天娱乐挑战:探寻“搜索”的踪迹

本周的星期天娱乐挑战内容是审查Microsoft 365统一审计日志(UAL),我想这正是获取一个开发租户访问权限的好借口。最初我研究了如何向微软申请一个这样的租户,但后来觉得这事“难度有点恰到好处”,于是我问了一位朋友,他慷慨地提供了他租户的访问权限。谢谢你,Zach!

本周挑战提出了以下问题: 当发生以下场景时,会留下哪些日志条目:

  • 用户搜索自己的邮箱
  • 用户搜索自己的OneDrive
  • 管理员搜索自己的邮箱
  • 管理员搜索自己的OneDrive
  • 管理员搜索他人的邮箱
  • 管理员搜索他人的OneDrive

测试过程

第一步是设置几个账户,并生成一些数据。这相对简单:登录账户,执行一些非常具体的搜索,然后等待结果进入UAL。 首先,确保UAL已启用。我是在数据生成之后才做的这件事。所以看来我得重新生成所有这些数据了!

1. 用户搜索自己的邮箱 假设:应该会记录搜索查询,但不会告诉我查询内容。 数据生成:在这个测试中,我发送了一封包含“TESTKITCHENSEARCHEMAIL”字样的邮件。虽然邮箱里本来就只有一封邮件,但还是让这个搜索词保持唯一性为好。搜索返回了我的邮件,但我没有打开它。我大约在AEDT时间早上7:05执行了搜索。

结果:日志中没有迹象表明发生了搜索。 另一个有趣的点:因为UAL没有启用,我必须重做所有这些测试,而且启用它相当麻烦。当我登录用户账户进行搜索时,它显示了所有之前的搜索记录,这说明这些记录存储在Outlook.com的某个地方。

2. 用户搜索自己的OneDrive 假设:应该会记录搜索查询,但不会告诉我查询内容。 数据生成:为此,我上传了几个文件,然后在地址栏中对我放入“test.txt”中的那个词进行了搜索。我大约在AEDT时间早上7:07执行了搜索。我访问了OneDrive.com(它会重定向到SharePoint),而不是通过Outlook门户。

结果:日志中没有迹象表明发生了搜索。

3. 管理员搜索自己的邮箱 假设:我期望这会显示运行了搜索,但不会说明搜索内容。 数据生成:同上,但我是以我的全局管理员账户登录,大约在AEDT时间早上7:09执行的搜索。

结果:没有返回任何结果。

4. 管理员搜索自己的OneDrive 假设:我期望这会显示运行了搜索,但不会说明搜索内容。 数据生成:同上,但我是以我的全局管理员账户登录,大约在AEDT时间早上7:15执行的搜索。奇怪的是,我搜索了完全相同的字符串,却找不到文件。我又搜索了“TESTKITCHEN”,也找不到。真奇怪! 不过有这样一个有趣的链接,因为它找不到,但点击那个链接也什么都没找到。看起来它搜索了SharePoint,而在这个租户中的匹配项应该只在OneDrive里。

结果:没有返回任何结果。

5. 管理员搜索他人的邮箱 假设:我期望通过电子数据展示门户的内容搜索会被记录,但通过委托访问进行的搜索不会被记录。 数据生成:我通过Purview中的电子数据展示门户运行了内容搜索,然后还通过Outlook Web Access给用户账户添加了委托访问权限。我还确保发送了一封包含特定措辞“TESTEMAILDELEGATEDACCESS”的邮件以供搜索。 正如预期,返回了一个结果。

添加邮箱委托通过以下地址完成:https://admin.cloud.microsoft/exchange。我将我的管理员账户添加到了我的用户账户,拥有完全访问权限。

然后,我将该邮箱作为共享文件夹添加到了OWA中。

我执行了两次搜索,因为第一次没找到(“所有文件夹”);当我点击进入收件箱后再执行搜索,它就把搜索位置列了出来。所以可能在AEDT时间早上7:23左右有几次搜索。

结果:电子数据展示相关操作被记录得很详细,包括“查看电子数据展示案件”、“查看Purview搜索”、“检索搜索的所有操作”、“启动内容搜索”等活动。 “启动内容搜索”向我们显示了搜索文本,但我们需要多做些工作才能弄清楚他们搜索了哪些资源。

在OWA中的搜索完全没有被记录。我访问了另一个邮箱中的一些邮件,那被记录了下来;证据显示MailboxOwnerUPN是我的目标邮箱。

6. 管理员搜索他人的OneDrive 假设:我期望委托访问搜索会被记录。 数据生成:我没有再通过Purview的电子数据展示门户运行内容搜索,因为它应该和邮箱搜索一样被记录。然后,我通过管理门户添加了委托访问。 我通过点击管理门户中的这个链接获得了访问权限:

生成的链接让我可以直接访问用户的OneDrive。

然后我在搜索框中执行了搜索。

出于某种原因,尽管它肯定在“test2.txt”的内容里,但搜索没有返回结果。真奇怪。 结果:再次没有返回任何结果!我可以看到我查看其他用户OneDrive的操作(尽管显示为SharePoint链接),要么是“ListViewed”,要么是“Viewed Page”。不过,应用程序显示名称明确写着“OneDrive Web App (modern)”。

补充说明

另外一件有趣的事:如果你进入用户的设置(每个账户——我没看到其他方式或针对委托邮箱这样做),你可以导出用户的搜索记录。 这给了我一个包含我搜索记录的文件:

补充说明2: 出于某种原因,记录搜索发生是一个需要专门启用的事件。你可以在这里查看如何操作。 为什么它不默认启用呢…

总结

总的来说,这个测试非常有趣;主要是因为什么都没显示出来。我非常期望能看到一个“执行搜索查询”的活动,但这似乎并没有发生。我在案例工作中见过搜索记录,但大多不包括文本(或者只有一个星号)。 日志中唯一真正观察到的与搜索相关的内容是电子数据展示案件,这很合理,应该被记录。

我想多玩玩Entra,我仍然不明白为什么我们不能直接用KQL查询UAL。你某种程度上可以使用CloudEvents表,但在实践中这并不是一个完整的记录。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计