Mac OS 日常日志:数字取证中的关键日志分析技术

本文深入探讨了Mac OS系统中/var/log/daily.out日志文件的取证价值。文章详细分析了如何通过grep命令提取磁盘使用情况、卷挂载信息、系统运行时间和用户登录状态,并说明了这些数据在证明设备访问和系统活动时间线方面的实际应用。

Mac OS 每日日志

概述

我最近参加了由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条目写入时系统的运行时间
  • 也显示登录的用户数量,请记住这通常是一个

该文件中还列出了一些非常有用的网络接口统计信息,这些可能更与事件响应(IR)调查相关,我们可能以后再看这些。

参考资料:

点击访问 summit-archive-1493741667.pdf http://thexlab.com/faqs/maintscripts.html

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