DoubleBlak [Safari取证分析指南]
这是关于此取证发现的最后一篇文章。尽管之前已发布两篇文章并在庭审中进行了两次现场演示,但似乎人们仍未理解或相信这一发现。
这是我在法庭上展示过的最具争议的数据,这让我感到不可思议,因为任何人都可以轻松自行测试。
在作证期间,我使用自己的工具ArtEx进行了现场演示。这并非出于对某个工具的偏好、自我推广或"控制和操纵数据"。原因实际上完全出于实用考虑。
据我所知,没有其他工具能让我如此快速简单地演示这个问题——因为我使用的是越狱设备,ArtEx的实时连接功能让我能在使用设备后的几秒钟内查看数据,而无需进行完整的提取和解码过程,后者至少需要20分钟,且会让所有观看者感到无聊。
ArtEx是一个免费工具,任何人都可以使用。如果有人怀疑我所说/所示的内容,他们可以轻松下载该工具自行测试;只需一个iTunes备份即可。
这就是最后一篇文章的目的:逐步讲解,让任何人(无论是取证人员还是普通用户)都能复现我的发现,并希望一劳永逸地解决这个问题。
所需工具
- 一部iPhone,最好运行iOS15或更高版本(iOS14行为不同)
- 装有iTunes的Windows电脑(或任何可以进行iTunes备份的工具,包括ArtEx)
- ArtEx工具
步骤1-创建测试数据
根据设备使用方式的不同,可能会出现多种情况。你无疑会发现有时时间戳显示正确。我在此概述主要场景。
最终,你应该看到虽然时间戳可能正确,但也可能不正确,仅凭这个数据库无法区分哪种情况是真实的。因此,时间戳是不可靠的。
场景1
- 打开Safari
- 记录时间并创建新标签页
- 访问任意网站(建议搜索当前时间以便后续查看)
- 最小化Safari(不要完全关闭)
- 让一些时间过去(可继续使用设备做其他事情,只要不关闭Safari)
- 当天稍后重新打开Safari
- 在之前的同一标签页中访问新网站/搜索当前时间
- 页面加载后关闭标签页
此场景将在BrowserState.db数据库中创建一条记录,显示步骤2中打开标签页的时间,但网址是步骤7中访问的。这个时间戳应远早于实际访问网址的时间。
场景2
- 打开Safari
- 记录时间并创建新标签页
- 访问任意网站(再次建议搜索当前时间)
- 完全关闭Safari
- 让一些时间过去(可继续使用设备做其他事情,直到准备下一步才打开Safari)
- 当天稍后重新打开Safari
- 不做任何操作,直接关闭标签页
此场景将在BrowserState.db数据库中创建一条记录,显示步骤6中Safari重新打开时标签页重新获得焦点的时间,但网址是步骤3中访问的。这个时间戳应远晚于实际访问网址的时间。
场景3
- 打开Safari
- 记录时间并创建新标签页
- 访问任意网站(再次建议搜索当前时间)
- 页面加载后关闭标签页
此场景将在BrowserState.db数据库中创建一条记录,显示步骤2中打开标签页的时间和步骤3中访问的网址。这个时间戳应非常接近实际访问时间,这是唯一时间戳相对准确的场景。
步骤2-安装ArtEx
- 从指定链接下载ArtEx
- 运行安装程序(可能会提示exe未签名,Windows Defender可能报毒,这是取证工具的常见情况)
- 启动ArtEx后选择"联网使用"模式
- 工具会在线检查并下载解析器,完成后需要重启
- 重启后显示已安装的解析器列表
步骤3-备份设备
可以使用iTunes、3u等免费工具或ArtEx本身进行备份。关键是确保备份被加密,因为非加密备份包含的数据较少,不包括我们真正需要查看的文件。
使用ArtEx备份的步骤:
- 点击"开始"
- 连接手机到电脑
- 选择"ArtExtraction"标签页,点击"备份"
- 设备被检测到后点击"开始",选择备份位置
- 设置密码(默认"1234")以加密备份
步骤4-处理备份
如果使用ArtEx获取备份,此步骤会自动完成。如果使用其他工具,需要:
- 点击"开始"并选择"备份"标签页
- 浏览找到备份所在文件夹
- 输入备份密码并点击"测试密码"
- 测试成功后点击"打开"
步骤5-查看数据
处理完成后,会显示设备摘要。确保选择正确的时区,然后:
- 在目录标签页中搜索"browserstate.db"
- 双击在数据库查看器中打开
- 选择左侧的"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记录,我很乐意听取反馈,因为在两年多的测试中,除了那个有限的场景外,我从未见过它们提供准确数据。