1. 什么是统一日志(Unified Logs)
iOS的统一日志机制(Unified Logs)建立于2016年,主要目标之一是尽可能多地记录有关设备活动的信息。统一日志的有效期是有限的(一般不超过30天),下面的统计数据就说明了这一点:
使用以下命令提取统一日志记录:
sudo log stats --archive system_logs.logarchive/
2. 调查统一日志能发现什么?
(1)手机最后一次开机/关机是什么时候?
(2)手机是通过指纹验证解锁的,还是通过输入密码解锁的?
(3)在手机解锁/上锁的那一刻,能否确定在操作前手机处于该状态的时间?
(4)能准确地证明用户在其应用程序之间横向滚动吗?
通过精确调查这些痕迹,可以回答这些问题!研究工作在运行iOS16的不同型号iPhone上进行了测试,并找到了这些答案。不过,也不能排除这些日志可能会因手机不同而有所差异。
3. 打开/关闭设备电源
与在设备上执行的每项操作一样,用户启动手机时也会生成大量日志。例如以下记录:
时间戳 |
日志 |
2023-10-02 10:49:36 |
kernel: downloaded firmware ("0x0290.bin") in 163ms |
同样,当用户关闭手机时,也会记录以下日志:
时间戳 |
日志 |
2023-10-01 21:39:52 |
SpringBoard: Deferring device orientation updates for reason: shutdown |
2023-10-01 21:39:53 |
Locationd {"msg":"locationd shutting down", "event":"activity", "force":1, "killerPid":1} |
通过这两个例子,就能比较容易地确定手机何时初始化或用户何时决定关机。如果用户从未关机,显然就找不到这些记录。但是对于调查人员来说,证明手机在所称事件发生时没有关机也是很重要的。
4. 解锁/锁定设备
确定手机何时被解锁或何时被锁定可以提供有价值的信息,因为在无法访问手机的情况下无法执行某些操作。目前,有两种方法可以解锁设备:
(1)使用之前设置的密码。
(2)通过使用指纹或人脸识别技术,这些技术被归类为所谓的生物识别身份验证。
通过调查统一日志,数字调查员可以确定用户是通过哪种方式访问其手机的:
时间戳 |
日志 |
2023-10-01 20:21:50 |
SpringBoard: Processed authentication request (success=YES): <SBFAuthenticationRequest: 0x2802e5c80; type: 1; hasPasscode: YES> |
2023-10-01 20:23:24 |
SpringBoard: Processed authentication request (success=YES): <SBFAuthenticationRequest: 0x2802097a0; type: 2; hasPasscode: NO> |
第一个记录的日志显示,设备已使用密码解锁。解锁过程成功("success=YES"),并且提到"hasPasscode:YES"确认输入了正确的密码。第二个日志记录了使用指纹或Face ID进行的解锁(类型:2;hasPasscode:NO),在同一日志中提到了这两种方法。
每次解锁都会生成的以下日志也很重要,因为它可以让调查人员确定手机被锁定了多长时间,从而了解设备的最后一次"使用"情况。
时间戳 |
日志 |
2023-10-01 20:23:24 |
apsd: Screen did unlock (Was locked for 1.245383 seconds) |
锁定手机的方式也多种多样,例如按下锁定按钮或请求Siri"锁定我的手机"。需要指出的一点是,SpringBoard进程生成的以下日志在两种情况下都有记录!因此,仅凭此日志不足以证明用户按下了特定按钮:
时间戳 |
日志 |
2023-10-04 20:23:24 |
SpringBoard: performSleep: Locking the device with lock button source and animating fade-out |
2023-10-04 20:23:24 |
apsd: Screen did lock (Was unlocked for 305.244956 seconds) |
与之前的情况一样,"apsd"程序会以秒为单位记录手机的可访问时间。如果驾驶员声称自己在开车时没有接触过手机,那么突出显示这一信息就非常有价值。
5. 横向滚动
手机解锁后,用户可以横向滚动浏览各种已下载的应用程序,然后点击所选应用程序。在这种情况下,可以发现三个潜在的有趣日志:
时间戳 |
日志 |
2023-10-03 19:12:33 |
SpringBoard: SBRootFolderView beginning user-initiated scroll |
2023-10-03 19:12:33 |
SpringBoard: SBRootFolderView ending user-initiated scroll - willDecelerate: YES |
2023-10-03 19:12:33 |
SpringBoard: SBRootFolderView ending deceleration of user-initiated scroll |
研究发现当用户开始在其应用程序之间滚动时会生成第一个日志,而当用户从屏幕上抬起手指时会生成最后两个日志。如果用户没有抬起手指,而是进行了"部分"滚动(例如,手指在屏幕上停留了几秒钟),则最后两条记录将比第一条记录多出几秒钟。
6. 结论
精确还原手机上的操作有时是一项挑战。然而,正如这些简单的例子所展示的,调查iPhone记录的统一日志对数字调查人员来说非常有价值。
参考资料:
[1]Why should you investigate iOS Unified Logs ? Dernière mise à jour by October 17, 2023
原文始发于微信公众号(电子取证及可信应用协创中心):为什么要调查iOS统一日志?
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论