本文由小茆同学编译,Roe校对,转载请注明。
什么叫“适用于取证的提取”?它曾经的定义是可重复和可验证的结果。然而,现在还有更多的含义。我们认为,适用于取证的提取不仅应该是可验证和可重复的,而且还应该以安全、防错的方式进行验证。
在支持的iOS/iPadOS设备的checkm8提取过程中,iOS Forensic Toolkit 8会自动禁用设备的自启动行为,从而确保设备在后续通电和重新启动事件时引导到Recovery。该标志存储在设备的NVRAM中,即使在重新启动和断电时也不会自动删除。在将设备还给其所有者之前,专家必须手动将自启动设置为True;否则,很可能会收到“设备损坏”的投诉。
适用于取证的提取须可验证
取证提取必须提供可重复和可验证的结果。适用于取证的提取方法必须在在数据收集的第一步就保存数字证据,并建立保管链,以确保在调查过程中收集的数字证据仍然可以被法庭接受。
首先也是最重要的一点是,取证提取必须提供可以被安全验证的结果。可验证的结果证明了提取的真实性,证明从设备获得的数据在提取后没有被修改。
为此,专家通常会记录提取过程,生成并保存(有时在纸上)提取数据的数字签名、哈希或校验和。提取时使用哈希有助于建立数字保管链,产生可在未来被验证的结果。
适用性:当涉及到移动取证时,包括逻辑获取在内的所有提取方法都可以进行验证。然而,只有少数几种方法可以提供可重复的结果。
适用于取证的提取须可重复
文件系统镜像可以根据其哈希值进行检查,以证明数据在提取后没有被处理。那么如何证明数据是从特定设备提取的呢?可以通过对同一设备执行第二次提取来验证。“可重复”部分意味着从同一设备中的任何后续提取都应与之前的所有提取相匹配。为了证明两个数据集匹配,可以计算新提取的哈希值,并将其与原始提取数据的哈希值进行比较。由于加密哈希的性质,即使数据中的一个翻转位也会产生截然不同的哈希值。如果哈希值匹配,则可以确保两个镜像相同。
适用性:对于iOS设备,只有基于引导加载程序的提取才能提供可重复的结果。注意,并不是每个基于checkm8的提取都是可重复的,这取决于您的工作流程和工具的选择。
重复提取没那么容易
当设备引导到已安装的操作系统时,它不可避免地对用户分区进行多次修改。即使设备与所有无线网络隔离,即使重启后未解锁,iOS也会在日志文件中添加记录并更改多个时间戳。如我们所知,替换数据集中的单个位导致计算出非常不同的哈希值,这两个镜像将不再匹配。
为什么一开始就允许设备启动到iOS?通常,这是一种意外。将iOS设备放入DFU是一个需要精确计时的棘手过程。长按或短按按钮,设备可能会启动到系统中。由于重复提取可能由不同的专家处理,因此更可能出现这种结果。
我们试图通过提供一个选项来改变iOS设备的引导行为,从而使提取更安全。
解决方案:设置“自动启动”标志
首先也是最重要的一点,专家可以在设备处于恢复状态时通过执行以下命令手动设置“自动启动”标志:
./EIFT_cmd tools autobootFalse
一旦执行,该命令将修改引导序列期间的设备行为。如果设备已通电或设备已重新启动,则用“autobootFalse”加载Recovery而不是主操作系统。引导到恢复模式是安全的,因为用户数据中没有任何内容被修改。该标志存储在设备的NVRAM中,在重启和断电后仍然有效。
我们建议将设备保持在“autobootFalse”状态,直到设备归还给其所有者,在这种情况下,使用另一个命令恢复启动iOS的能力:
./EIFT_cmd tools autobootTrue
请注意,在发送iboot之后,在发送内核并启动内存盘之前,iOS Forensic Toolkit 8会自动将自动引导值设置为False。
这种行为有效地保护了用户数据,防止在进入DFU时用户错误导致的意外修改。一个重要的结果是:完成提取后,设备仍有“autobootFalse”标志。这意味着任何后续的开机或重启都将使设备启动恢复模式,而不是启动已安装的操作系统。我们建议在设备作为证据保留期间始终启用此标志,并且仅在设备归还给其所有者之前立即恢复为“autobootTrue”。
如果专家没有重置自动启动标志会发生什么?在这种情况下,所有者将收到一个不可启动的设备,该设备将持续引导到Recovery。这不是设备的原始工作状态,可能会收到投诉。这种情况很容易避免:在将设备返回给所有者之前,只需使用“autobootTrue”命令即可。
自启标志和取证提取
设置自动启动标志不会影响取证提取的状态,原因有两个。
1. 用户数据不受影响。
2. 系统分区不受影响,因为标志存储在设备的NVRAM中。
无论如何,专家应该始终请求修改设备内容的权限。checkm8提取并不总是可行的,但是所有其他提取方法都会以某种方式改变设备的内容。
电池电量耗尽的应对方案
如果设备关闭,电池电量低于低水平,那么将其插入充电器将触发启动程序。为了保持数据完整,我们需要确保设备引导到恢复状态,而不是加载操作系统。
您可以按住Home按钮(或iPhone 8、8 Plus、iPhone X上的侧按钮),然后插入充电器并一直按住,直到恢复。
然而,在完全放电的设备上,您将首先进入电池界面,直到电量足够高。
或者,您可以尝试将设备从电池界面设置为DFU。这在iPhone 8一代上有点棘手,因为计时需要非常精确(最好使用秒表或计时器),但在iPhone 7和更早版本上相当容易。
DFU启动无视低电量,并跳过电池界面。将设备设置为DFU,并连接到PC大约一分钟,应该足以通过 iOS Forensic Toolkit启动并恢复。从那里,一旦自动启动设置为false,您就可以安全地为设备充电,而且不会有意外触发启动序列的风险。
参考链接:
https://blog.elcomsoft.com/2023/02/forensically-sound-checkm8-extraction-repeatable-verifiable-and-safe/