# 移动取证决策树与证据分级 取证路径由「设备状态 × 可用访问级别」决定,不是先上工具。本文档与 SKILL.md 步骤 1-3 配套使用。 ## 设备 × 访问级别决策树 ``` 移动设备取证 ├─ Android │ ├─ 已解锁 + 应用可备份 → adb backup(targetSDK<31 或 debuggable) │ ├─ root 可用 → 分区镜像/dd + 直接读 /data │ ├─ 仅锁屏/无 USB 调试授权 → 标注不可提取(授权流程外不绕过) │ └─ 加密备份 → 有备份密码才可解析,否则标注 ├─ iOS │ ├─ 已解锁 + 信任本机 → idevicebackup2 备份(加密/非加密) │ ├─ 已有本地备份(MobileSync/Backup)→ 解析 Manifest.db(文件索引)+ Manifest.plist(元数据/加密状态) │ └─ 未越狱且无备份 → 仅可提取有限信息,标注边界 └─ 其他(功能机/定制系统)→ 按厂商工具与接口评估,无通用流程 ``` ## 目标数据类型分支 ``` 目标数据 ├─ 应用数据库 → 定位 db 文件 → sqlite3 查询 → 删除记录走 freelist/WAL 页([[re-disk-forensics]]) ├─ 聊天/媒体文件 → 应用沙箱路径枚举 → 直接提取;已删除 → foremost 雕刻 ├─ 偏好/配置 → plist/SharedPreferences 解析 ├─ Keychain/凭据 → iOS 需备份密码;Android Keystore 硬件绑定不可导出(标注) └─ 时间线 → 文件时间戳 + 数据库时间戳合并 → 归一 UTC ``` ## 提取方法分级表(证据可靠性) | 级别 | 方法 | 说明 | |---|---|---| | 强 | 设备镜像/分区镜像 | 原始比特级副本,最适合删除恢复与完整性校验 | | 中 | 官方备份(ab / iTunes 备份) | 应用数据全量导出,但经过打包/可能含加密层 | | 中 | 应用沙箱直读(run-as/root pull) | 单应用数据,路径级提取 | | 弱 | 已删除数据雕刻(foremost) | 碎片化,完整性差,只能佐证 | | 标注 | 云同步/服务端数据 | 本技能范围外,需另行授权与流程 | ## 删除恢复分支 ``` 删除恢复请求 ├─ SQLite 数据库 → freelist 页 + WAL 残留 → 页级提取(unallocated 页扫描) ├─ 普通文件 → 文件系统未分配空间 → foremost/等价雕刻(按签名) └─ 无未分配空间(TRIM/覆写已执行)→ 标注不可恢复(见 [[gotchas]]) ``` ## 时间线证据分级 | 级别 | 来源 | 说明 | |---|---|---| | 强 | 数据库记录时间(内容自带) | 应用内部记录,与用户动作直接相关 | | 中 | 文件时间戳(ctime/mtime/atime) | 可被改写,注意时间戳伪造 | | 中 | 备份记录时间(备份本身时间线) | 佐证提取时点,不是用户活动时间 | | 弱 | 删除/碎片恢复数据的时间 | 通常只能给区间,不能给精确点 | ## 实现教训(内化) - 先隔离再取证:飞行模式/断网是第一动作,远端擦除不可逆 - 提取路径选择以「证据可靠性 × 可用性」为准:镜像 > 官方备份 > 直读 > 雕刻 - 每次提取记录设备状态(解锁/加密/网络)与产物 sha256,链条完整才可复核 - 拿不到的数据明说「不可提取」,不绕过授权边界 ## 使用注意 - 仅授权设备;授权范围(设备/数据类别/时间窗)先确认 - 产物与结论按 [[re-analyze/analysis-contract]] 交付;删除恢复结论带「部分恢复」限定 - 司法场景注意证据链(保管链)要求,本技能产出按取证流程存档