Apple CarPlay数字取证技术深度解析

本文深入分析Apple CarPlay在数字取证中的技术细节,涵盖文件系统痕迹、Biome数据流、知识库记录和统一日志,帮助调查人员区分用户是通过CarPlay还是直接操作手机执行动作。

Apple CarPlay数字取证技术深度解析

引言

在数字取证领域,很少有机会重新审视之前的研究。大多数研究人员完成研究、分享成果后就会转向下一个课题。然而,当CarPlay相关问题在工作中出现时,我不得不重新研究这个主题。核心问题是:**取证人员能否区分用户是通过CarPlay执行操作还是直接使用iOS设备?**简短答案是"可以",详细答案则贯穿全文。

系统变化

六年前我首次撰写关于Apple CarPlay的博客,如今CarPlay已发生重大变化。测试环境使用iPhone 14(iOS 17.5)、14 Pro(iOS 18.2)和16 Pro(18.3.1),以及日产Rogue车辆。

文件系统变化

位于/private/var/mobile/Library/Preferences/com.apple.CarPlayApp.plist文件包含最近使用的应用程序列表及其最后使用的Unix时间戳(图1蓝框)。该文件还包含表示上次CarPlay会话结束时间的时间戳(图1红框)。

值得注意的是,Apple Maps的更新时间始终显示为断开汽车连接的时间。该文件现在消除了检查同一位置com.apple.springboard的必要性。

knowledgeC数据库

虽然部分数据已迁移到biomes,但Siri调用记录仍然保留在knowledgeC中。在分心驾驶调查中,了解驾驶员是通过CarPlay召唤Siri执行操作还是直接操作手机具有重要意义。

图2显示ZOBJECT表中包含通过方向盘按钮召唤Siri的记录。从ZVALUESTRING列值自下而上读取,可以清晰看到完整操作流程:通过方向盘按钮(com.apple.siri.steering.wheel)在CarPlay中(com.apple.siri.button.on.carplay)启动请求,随后进行消息听写和确认。

Biome数据流

自iOS 16起,许多原本位于knowledgeC的数据已迁移到biomes,CarPlay连接就是其中之一。

CarPlay连接biomes

存在两个相关的CarPlay连接biome:

  • _DKEvent.Carplay.IsConnected:包含CarPlay会话开始和结束时间
  • CarPlay.Connected:通过键值表示连接状态(0=断开,1=连接)

图3-6展示了完整的CarPlay会话周期,时间线与knowledgeC中的Siri调用记录一致。

应用使用情况biomes

两个重要的biome流对于CarPlay应用使用情况分析很有价值:

ScreenTime.AppUsage

  • 显示CarPlay会话期间使用的第一个应用及时间
  • 键1的值为"1"可能表示应用在CarPlay UI中使用,“0"表示未使用
  • 但相同行为也出现在手机直接操作中,需要进一步佐证

App.InFocus

  • 通过CarPlay UI执行的操作不会出现在此biome中
  • 只有直接操作手机才会产生记录
  • 这一特性成为区分操作方式的关键指标

统一日志分析

统一日志包含可与文件系统工件验证的信息,以及某些独有信息。

CarPlay连接日志

有线CarPlay连接由sharingd进程记录会话连接和断开事件。无线CarPlay会话额外包含"Wireless CarPlay session state changed"消息。

车辆信息日志

accessoryd进程记录车辆信息和连接类型:

  • 有线连接显示连接类型为Lightning to USB-A
  • 无线连接显示连接类型为IP,传输类型为AirPlay
  • 蓝牙CarPlay连接由caraccessoryd进程处理

Siri调用日志

CarPlay中的Siri调用也出现在统一日志中,有线和无线的记录方式不同:

  • 有线和Wi-Fi无线连接明确记录方向盘按钮动作
  • 蓝牙连接记录较为隐晦,没有明确的按钮动作

应用焦点日志

统一日志可以替代App.InFocus biome的功能。图30展示了在CarPlay UI中切换应用和获取焦点的详细日志:

  • com.apple.CarPlay.dashboard表示CarPlay主屏幕
  • “Icon tapped"表示点击CarPlay UI中的图标
  • “Workspace did change to active app"表示应用进入焦点

当用户通过CarPlay最近使用应用托盘切换应用时,不会产生"Icon tapped"日志消息,只有"Workspace did change"消息。

Siri界面交互

召唤Siri时,CarPlay屏幕会显示覆盖层。iOS 17在UI底部显示Siri球体,iOS 18则使屏幕边缘发光。统一日志中会出现Siri"借用"屏幕然后返回控制权的记录。

取证关联分析

通过结合多个数据源,取证人员可以构建完整的行为时间线:

  1. 设备状态确认:通过Device.Display.Backlight biome确认手机屏幕状态
  2. 音频路由验证:Audio.Route biome显示音频是通过汽车扬声器(CarAudio)还是手机扬声器输出
  3. 连接类型识别:统一日志明确记录CarPlay连接方式(有线/无线/蓝牙)
  4. 操作方式区分:App.InFocus缺失但ScreenTime.AppUsage存在的记录表明CarPlay操作;两者皆存在表明手机直接操作

结论

CarPlay在社区开始研究后的几年间发生了显著变化。虽然许多取证人员感兴趣的数据已迁移到biomes,但knowledgeC仍然包含有用信息,而统一日志可以为试图确定使用CarPlay还是手机的取证人员提供良好信息。

在分心驾驶调查中,iOS中可用的数据可以极大地帮助厘清行为模式,为调查提供技术依据。

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