Safari浏览器取证分析:时间戳不可靠性验证指南

本文详细介绍了如何使用ArtEx工具验证Safari浏览器中时间戳的不可靠性,通过三种具体测试场景展示BrowserState.db数据库记录时间戳与真实访问时间的不一致性,并提供可靠的取证数据来源。

DoubleBlak [Safari取证分析指南]

这是关于此取证发现的最后一篇文章。尽管之前已发布两篇文章并在庭审中进行了两次现场演示,但似乎人们仍未理解或相信这一发现。

这是我在法庭上展示过的最具争议的数据,这让我感到不可思议,因为任何人都可以轻松自行测试。

在作证期间,我使用自己的工具ArtEx进行了现场演示。这并非出于对某个工具的偏好、自我推广或"控制和操纵数据"。原因实际上完全出于实用考虑。

据我所知,没有其他工具能让我如此快速简单地演示这个问题——因为我使用的是越狱设备,ArtEx的实时连接功能让我能在使用设备后的几秒钟内查看数据,而无需进行完整的提取和解码过程,后者至少需要20分钟,且会让所有观看者感到无聊。

ArtEx是一个免费工具,任何人都可以使用。如果有人怀疑我所说/所示的内容,他们可以轻松下载该工具自行测试;只需一个iTunes备份即可。

这就是最后一篇文章的目的:逐步讲解,让任何人(无论是取证人员还是普通用户)都能复现我的发现,并希望一劳永逸地解决这个问题。

所需工具

  • 一部iPhone,最好运行iOS15或更高版本(iOS14行为不同)
  • 装有iTunes的Windows电脑(或任何可以进行iTunes备份的工具,包括ArtEx)
  • ArtEx工具

步骤1-创建测试数据

根据设备使用方式的不同,可能会出现多种情况。你无疑会发现有时时间戳显示正确。我在此概述主要场景。

最终,你应该看到虽然时间戳可能正确,但也可能不正确,仅凭这个数据库无法区分哪种情况是真实的。因此,时间戳是不可靠的。

场景1

  1. 打开Safari
  2. 记录时间并创建新标签页
  3. 访问任意网站(建议搜索当前时间以便后续查看)
  4. 最小化Safari(不要完全关闭)
  5. 让一些时间过去(可继续使用设备做其他事情,只要不关闭Safari)
  6. 当天稍后重新打开Safari
  7. 在之前的同一标签页中访问新网站/搜索当前时间
  8. 页面加载后关闭标签页

此场景将在BrowserState.db数据库中创建一条记录,显示步骤2中打开标签页的时间,但网址是步骤7中访问的。这个时间戳应远早于实际访问网址的时间。

场景2

  1. 打开Safari
  2. 记录时间并创建新标签页
  3. 访问任意网站(再次建议搜索当前时间)
  4. 完全关闭Safari
  5. 让一些时间过去(可继续使用设备做其他事情,直到准备下一步才打开Safari)
  6. 当天稍后重新打开Safari
  7. 不做任何操作,直接关闭标签页

此场景将在BrowserState.db数据库中创建一条记录,显示步骤6中Safari重新打开时标签页重新获得焦点的时间,但网址是步骤3中访问的。这个时间戳应远晚于实际访问网址的时间。

场景3

  1. 打开Safari
  2. 记录时间并创建新标签页
  3. 访问任意网站(再次建议搜索当前时间)
  4. 页面加载后关闭标签页

此场景将在BrowserState.db数据库中创建一条记录,显示步骤2中打开标签页的时间和步骤3中访问的网址。这个时间戳应非常接近实际访问时间,这是唯一时间戳相对准确的场景。

步骤2-安装ArtEx

  1. 从指定链接下载ArtEx
  2. 运行安装程序(可能会提示exe未签名,Windows Defender可能报毒,这是取证工具的常见情况)
  3. 启动ArtEx后选择"联网使用"模式
  4. 工具会在线检查并下载解析器,完成后需要重启
  5. 重启后显示已安装的解析器列表

步骤3-备份设备

可以使用iTunes、3u等免费工具或ArtEx本身进行备份。关键是确保备份被加密,因为非加密备份包含的数据较少,不包括我们真正需要查看的文件。

使用ArtEx备份的步骤:

  • 点击"开始"
  • 连接手机到电脑
  • 选择"ArtExtraction"标签页,点击"备份"
  • 设备被检测到后点击"开始",选择备份位置
  • 设置密码(默认"1234")以加密备份

步骤4-处理备份

如果使用ArtEx获取备份,此步骤会自动完成。如果使用其他工具,需要:

  • 点击"开始"并选择"备份"标签页
  • 浏览找到备份所在文件夹
  • 输入备份密码并点击"测试密码"
  • 测试成功后点击"打开"

步骤5-查看数据

处理完成后,会显示设备摘要。确保选择正确的时区,然后:

  1. 在目录标签页中搜索"browserstate.db"
  2. 双击在数据库查看器中打开
  3. 选择左侧的"tabs"表查看创建的三个标签页记录

结果显示:

  • 第一条记录显示9:35搜索的网址,但时间戳为9:25(创建标签页的时间)
  • 第二条记录显示9:36搜索的网址,但时间戳为9:58(重新打开Safari的时间)
  • 第三条记录显示10:34搜索的网址,时间戳为10:34(创建标签页的时间)

可靠的时间戳来源

History.db

在目录标签页中搜索"History.db"(注意大写H),包含两个表:

  • history_items:访问的URL列表(不包括访问时间)
  • history_visits:访问时间列表

需要通过history_items.id和history_visits.history_item字段连接这两个表,才能获得准确的访问时间戳。

com.apple.mobilesafari.plist

如果使用Safari搜索栏进行搜索,可以查看此文件中的"最近搜索"记录。时间以UTC格式显示,需要手动调整为本地时区。

总结

设备上有多个文件可以找到网站访问的准确时间戳,但BrowserState.db不在其中。通过上述简单测试即可证明这一点。如果在测试中发现与上述描述不同的BrowserState.db记录,我很乐意听取反馈,因为在两年多的测试中,除了那个有限的场景外,我从未见过它们提供准确数据。

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