易失性顺序是什么
易失性顺序(order of volatility)指按数据存活时间从短到长排定的采集次序:越快消失的越先采。内存与运行状态在断电后立即消失,网络连接会在进程退出时消失,临时文件会被后续写入覆盖,而磁盘数据相对持久。顺序颠倒的代价是不可逆的——先把磁盘镜像做完再抓内存,等于把最关键的证据留到了最后。RFC 3227 与 NIST SP 800-86 都把它列为取证的首要原则。
基本信息
| 依据 | RFC 3227 电子证据收集指南、NIST SP 800-86 取证指南 |
|---|---|
| 第 1 优先 | 内存与运行状态:CPU 寄存器、缓存、进程内存映像 |
| 第 2 优先 | 网络层:连接表、路由、ARP 邻居、监听端口、DNS 缓存 |
| 第 3 优先 | 进程层:进程列表、打开的文件、命令历史、登录会话 |
| 第 4 优先 | 磁盘层:临时文件、日志缓冲、文件系统元数据 |
| 最后 | 磁盘镜像、归档日志与备份介质(相对持久,可稍后处理) |
采集层级与丢失风险
| 层级 | 数据内容 | 丢失风险 | 采集命令 |
|---|---|---|---|
| 1 | 内存映像、进程运行态 | 断电或重启即永久消失 | LiME(Linux)、WinPmem(Windows) |
| 2 | 网络连接、路由、ARP | 连接关闭即消失 | ss -antp、ip route、arp -an |
| 3 | 进程、打开的句柄、会话 | 进程终止即消失 | ps auxwwf、lsof、w、who -a |
| 4 | 临时文件、日志缓冲 | 易被覆盖或轮转 | tar 打包 /tmp、/dev/shm、/var/log |
| 5 | 磁盘与备份 | 相对持久,但可能被加密 | dd/dcfldd 镜像 |
典型使用场景
- 进入现场接手主机时决定第一步先采什么,避免顺序性失误
- 编写应急处置手册时规定标准采集顺序,让值班人员照着做
- 内存取证前先固定运行态,保证分析时能解释时间点
- 培训与演练时向业务方说明为什么不能「先重启看看」
- 跨团队协作时统一顺序,避免第三方先登录主机改动现场
一条命令完成在线快照
一条命令完成在线快照
{ date -u; hostname; uname -a; who -a; w; uptime; # 先记录身份与时间基准
ss -antp; ip route show; arp -an; # 网络层:连接、路由、邻居
ps auxwwf; lsof -i -nP; # 进程层:进程链与网络文件
ls -la /tmp /dev/shm /var/tmp; # 临时目录清单
crontab -l; ls -la /etc/cron.d/; # 持久化线索顺手带上
} > /tmp/snapshot_$(date +%F_%H%M).txt 2>&1
sha256sum /tmp/snapshot_*.txt | tee /evidence/snapshot.sha256 # 固定输出完整性
tar -zcPpf /evidence/snapshot.tgz /tmp/snapshot_*.txt # 打包外置归档采集动作本身会改变现场:登录会话会写入 wtmp、执行命令会进入历史、读文件会改动 atime。要克制——用尽量少的动作取尽量多的信息,把输出直接写到外置介质或通过网络送到证据服务器,并逐条记录自己做了什么、什么时间做的。
网络证据要分两步想:断网会切断攻击者回连,能止损;但同时也会让攻击者立刻察觉并清理痕迹。若已有成熟的日志平台与流量镜像,可以先确认远端已有副本,再决定隔离时机,而不是先拔线再说。
内存采集是特例:它必须在其他动作之前完成,因为采集工具本身会加载驱动或进程,改变内存内容。采完内存再做内存占用小的网络与进程采集,最后才动磁盘,这个次序在实战里最不容易出错。
写进手册的顺序要能被执行:把每一步对应的命令、输出路径与责任人固定下来,值班人员照着做即可。演练时按这份清单实际跑一遍,比在文档里只描述原则有效得多。