防写的三层保护
取证挂载必须防写:块设备置只读、使用带写保护的接入设备、以只读方式挂载副本。任何分析动作都不应污染原件,否则后续的哈希比对就不再成立。
只读挂载不够
只读挂载只是文件系统层的保护,块设备层仍可能被写入。因此要叠加 blockdev --setro 或硬件写保护开关,并在挂载后核对实际生效的状态,而不是凭参数假设。
基本信息
| 块级保护 | blockdev --setro /dev/sdb |
|---|---|
| 挂载参数 | -o ro,noload,nouuid |
| 硬件保护 | 带写保护开关的读卡器或只读桥接设备 |
| 核对方式 | blockdev --getro 与 mount 输出双确认 |
| 适用对象 | 物理证据盘与磁盘镜像 |
| 权限要求 | 需要 root |
典型使用场景
- 分析前对证据盘做写保护
- 把从受害主机取下的硬盘只读接入
- 校验保护措施是否确实生效
- 避免分析工具写回原件
- 为证据完整性提供书面说明
只读保护与挂载
只读保护与挂载
blockdev --setro /dev/sdb
blockdev --getro /dev/sdb # 应为 1
mount -o ro,noload,nouuid /dev/sdb1 /mnt/evidence
mount | grep sdb1
losetup -r /dev/loop0 /evidence/disk.img && mount -o ro /dev/loop0 /mnt/image输出逐列读法
| 检查项 | 含义 | 正常/异常 |
|---|---|---|
| getro 返回值 | 1 表示块设备只读 | 返回 0 说明保护未生效 |
| 挂载参数 | 是否包含 ro | 缺 ro 表示以可写方式挂载 |
| 设备路径 | 目标设备 | 确认作用于正确的磁盘 |
| 挂载点 | 证据目录 | 避免落在桌面自动挂载路径下 |
带日志的文件系统要加 noload 等参数:否则挂载动作本身会回放日志并改写原盘内容,一次挂载就可能破坏证据。
分析工具可能写临时文件或更新访问时间:把工具的工作目录指向另一块盘,避免在证据盘上产生任何写入。
辅助防护手段
- 分析机与原件分离,避免误操作写回
- 镜像至少保留两份并分别存放
- 每次挂载操作记录时间与完整参数
- 分析结束后再次校验哈希确认未变更
保护措施清单
- 块设备设置为只读
- 镜像使用只读回环设备
- 必要时启用硬件写保护开关
- 挂载参数包含 ro 与 noload
- 核对 getro 与 mount 的实际输出
- 记录操作时间与操作人