iOS 17消息保留设置的技术解析与取证方法

本文深入分析iOS 17中消息保留设置的变更,探讨com.apple.MobileSMS.plist文件中KeepMessageForDays与SSKeepMessages键值的技术差异,提供iOS取证中的验证方法和工具使用建议,帮助数字取证人员准确解析设备设置。

iOS 17:那个"永久"设置真的永久吗?还是另有隐情?

在教授SANS FOR585智能手机取证深度分析课程时,我们会深入分析iOS工件,以验证事件真相、工具报告内容以及它们遗漏的信息。消息保留设置通常能帮助检查人员理解,如果用户没有删除数据,为什么某些数据不再存在于iOS设备上。在搜索已删除消息时,我建议学生先验证com.apple.MobileSMS.plist中的当前消息保留设置,然后检查工具解析的消息,并与sms.db的消息表进行比较。

如果消息保留设置为30天,而您正在寻找更早的消息,那么这些消息很可能已不在设备上。如果情况并非如此,且消息保留设置为永久,那么请准备好深入挖掘并抱最好的希望,因为您的工作将变得更加困难。总之,理解com.apple.MobileSMS.plist中关于消息保留的值可以节省时间。

iOS 17的变化

苹果总是喜欢改变事物,即使有所有出色的DFIR研究人员,也不可能立即发现所有变化。有时需要客户通过电子邮件询问工具的行为方式。这就是我决定写这篇博客的原因。

我在Cellebrite与一群出色的检查员一起工作。我们工作的部分内容是帮助客户理解数据。有一个关于消息保留的问题:为什么PA 10报告一种情况,而手机显示另一种情况。同一天,不同的问题,是新错误?还是设备上跟踪设置的新方法?对于这个问题,各种因素都有一些。苹果改变了在com.apple.MobileSMS.plist中跟踪消息保留的方式。这个plist文件位于:/private/var/mobile/Library/Preferences/com.apple.MobileSMS.plist

好消息是,通过加密iTunes备份、高级逻辑提取和完整文件系统提取可以访问此文件。我没有测试未加密的备份,因为会丢失太多数据。请务必加密备份。

历史设置值

就我记忆所及,我们一直从com.apple.MobileSMS.plist中的KeepMessageForDays读取值。这些值可能是:

  • KeepMessageForDays = 0 = 永久
  • KeepMessageForDays = 365 = 1年
  • KeepMessageForDays = 30 = 30天

注意 - 对于iOS 13及更早版本,如果plist中缺少KeepMessageForDays,则该设备上的消息保留设置为永久。根据Ian Whiffin的说法,如果从未更改过默认的消息保留设置(永久)(无论iOS版本如何),plist中也可能缺少KeepMessageForDays。

iOS 17的新变化

当我们对这个plist中的值感到熟悉时,iOS 17出现并改变了值的存储方式。虽然KeepMessageForDays可能存在于com.apple.MobileSMS.plist中,但苹果不再使用它来跟踪运行iOS 17的设备中的消息保留。这里的值似乎反映了旧的消息保留设置,而不是设备设置当前反映的内容。

对于iOS 17,我们需要依赖SSKeepMessages下存储的值。这些值与之前相同:

  • SSKeepMessages = 0 = 永久
  • SSKeepMessages = 365 = 1年
  • SSKeepMessages = 30 = 30天

测试和验证

Ian为我提供了4个测试设备的示例,我使用了3个自己的测试设备和个人手机。以下是一些您可能会遇到的示例,我认为这些示例体现了本文的重点。

iPhone 15 Pro运行17.4.1 - 消息保留设置为永久,之前在iOS 16中也设置为永久。

iPhone 10运行iOS 16.* - 在iOS 16.1.2上设置为永久。更改为1年并更新到16.7.10。

该设备使用iTunes获取,加密备份在ArtEx中解析。注意只显示当前设置。com.apple.MobileSMS.plist的修改日期反映了我进行更改的时间,但其他因素可能会影响时间戳。

注意SSKeepMessages不存在。因为这是iOS 16,而这个键是在iOS 17中添加的。

iPhone 11运行iOS 17.0 - 消息保留设置为永久,从iOS 16更新到iOS 17时未更改。此提取在Cellebrite Physical Analyzer 10.3中解析。

iOS 17+设备示例

以下示例来自iOS 17设备。注意缺少KeepMessageForDays。我提供几个截图来显示Ian Whiffin捕获的不同设置。

iOS 17+ - 默认设置为永久。我在Mushy(Ian Whiffin开发的免费工具)中检查com.apple.MobileSMS.plist。

iOS 17+ - 消息保留从默认的永久更改为1年。同样,我在Mushy中审查了这一点。

iOS 17+ - 消息保留从默认的永久更改为30天。我在Mushy中审查了这一点。

iOS 17+ - 消息保留从默认的永久更改为365或30,然后改回永久。

结论

正如我在生活的许多方面所发现的 - 需要众人协力。在DFIR研究中也是如此。当我们一起工作并提出问题时,情况会更好,这确实可以带来改变。想象一下,一个人提出问题可以帮助多少检查员!继续提问,并请继续关注Cellebrite 101中的Notebook上关于此主题的更多内容。这是我们创建的新社区,用于托管所有技术问题,就像这个问题一样!一如既往,信任但需验证!

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