Mac OS日志取证分析:揭秘daily.out中的磁盘使用与系统运行信息

本文深入分析了macOS系统中的daily.out日志文件,探讨了其对于数字取证调查的价值。文章详细介绍了如何从中提取磁盘使用情况、逻辑卷挂载信息、系统运行时间以及用户登录状态等关键证据。

概述

我最近参加了Sarah Edwards主讲的精彩的SANS DFIR、Mac和iOS取证及事件响应课程。这显然给了我很多关于如何处理Mac分析的绝佳灵感,并促使我深入研究一些培训中涉及的系统文件。

我花了一些时间在我的MacBook(Mojave 10.14.2)上仔细查看日志文件。对于大多数经验丰富的Unix老手来说,这可能并不新鲜,但对于不了解的人来说,在 /var/log 目录下有一个非常棒的小日志文件叫做 daily.out。我之前对这个日志文件重视不够,但后来意识到它可以用来确定大量有用的信息。我也查看了 weekly.outmonthly.out 文件,但就我的情况而言,它们的信息粒度要低得多。

从高层次看,daily.out 包含与磁盘使用情况和网络相关的信息,该文件至少每天写入一次,所有三个周期性日志的配置都存储在以下位置的plist文件中: /System/Library/LaunchDaemons/com.apple.periodic-*****.plist

在查看了这个文件的内容后,我开始思考它如何可能协助我的一些案件工作?

磁盘使用情况

首先,我借鉴了团队中一位知识渊博且身材高大的同事的一些grep技巧,看看是否能从 daily.out 文件中仅解析出一些特定的信息。我们提取了只包含日期的行,以及那些与磁盘使用情况特别相关的行。

1
grep -E -e "\w{3} \w{3} .\d (\d\d\:){2}" -e "(/dev/disk|Disk status|iused)" daily.out

通过这个方法,我们能够找到最早追溯到3个月前的条目,并且日志包含:

  • 日志条目写入时挂载的逻辑卷
  • 卷的大小
  • 卷上已使用的空间

正如你所想象的,磁盘卷信息对于显示写入日志时附加的驱动器或镜像非常有价值,特别是当你已知某个特定设备的卷名并想要证明其被访问过时。

我们还可以从这个日志中获取一些其他相当有价值的信息。

Bootcamp! 你可能会遇到这样的情况:嫌疑人、调查对象或某个“坏人”声称他们从未使用过他们的Bootcamp安装。然而,你可以从Bootcamp磁盘使用情况中看到,该卷经常有读写活动。也许在某个感兴趣的日期之前,有一大块数据被删除了?

运行时间

daily.out 文件中另一个有趣的部分是,它会显示写入日志条目时系统的运行时间。这可能有助于证明系统在特定时间段内是否开机并被使用过。

这也可能显示计算机上账户使用情况的一些有趣信息。由于Mac电脑通常由个人使用,这意味着在任何时候通常只有一个账户登录。如果你面对的是一个每天都会提升到root权限的经验丰富的用户,那么看到多个账户同时登录可能并不罕见。然而,对于一个不了解root账户的非技术用户,如果在其账户登录期间发现有很多其他账户登录,这可能就值得怀疑或需要进一步分析。

再次,我们使用一个简单的grep命令从 daily.out 文件中提取我们感兴趣的行:

1
grep -E -e "\w{3} \w{3} .\d (\d\d\:){2}" -e "Local system status" -e "load averages" daily.out

正如你所见,我们可以提取一些关于计算机和账户使用的有趣信息:

  • 显示写入 daily.out 条目时系统的运行时间
  • 同时也显示登录的用户数,请记住这通常会是“一个”

该文件中还列出了一些非常有用的网络接口统计信息,这些可能更与事件响应调查相关,我们可能会在其他时间探讨这些内容。

参考资料:

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