跳转到主要内容

数字取证

本文约需 2 分钟阅读

数字取证是指以法律上有效的形式收集、保全、分析和报告计算机及网络上数字证据的一套技术体系。它被应用于涉及数字证据的各种场景,例如网络犯罪的侦查、企业内部舞弊调查,以及事件响应中的原因查明等。「取证 (forensic)」一词源自拉丁语「forensis (法庭的)」,要求达到能够在法庭上被认可为证据的严格程度,这正是它与一般故障排查的决定性区别。

证据保全的原则 - Chain of Custody

数字取证最重要的原则是维护用以证明证据完整性的 Chain of Custody (证据链)。从证据被收集到提交法庭的整个过程中,必须记录谁、在何时、以何种方式处理了证据,并证明没有发生篡改。

识别
确定证据
保全
获取位映像
分析
构建时间线
文档化
撰写报告
提交
法庭 / 管理层

在保全阶段,需要制作目标磁盘的逐位完整副本 (取证镜像),并记录原始数据的哈希值 (如 SHA-256)。此后的所有分析都针对副本进行,绝不触碰原件。一旦疏忽此步骤,在审判中就有证据能力被否定的风险。

实时取证 vs 离线取证

项目实时取证离线取证
对象运行中的系统已断电的存储设备
可获取的证据内存、网络连接、进程、加密密钥磁盘上的文件、已删除数据、日志
优点能够获取易失性数据证据被篡改的风险低
挑战调查行为本身会改变系统状态内存中的证据已经丢失

现代的恶意软件中,不在磁盘上留下痕迹的「无文件恶意软件」日益增多,因此实时取证的重要性逐年提升。由于一旦断电内存中的证据就会消失,在事件发生时的初期响应中,获取内存转储成为最优先事项。

内存取证的重要性

在内存取证中,会转储 RAM 的内容并提取以下信息。

运行中的进程

识别恶意软件进程及可疑的父子进程关系

网络连接

确定与 C2 服务器通信的 IP 和端口

加密密钥

回收 BitLocker 或勒索软件的解密密钥

注入痕迹

检测 DLL 注入和代码注入

Volatility Framework 是已成为内存取证事实标准的开源工具。它支持 Windows、Linux、macOS 的内存转储,能够自动化完成进程树重建、注册表配置单元提取、网络连接列举等工作。

与事件响应的关系

取证工作虽然在事件响应的「遏制之后」阶段才正式展开,但实际上从初期响应阶段就需要有保全证据的意识。以 SIEM 检测到的告警为起点,从确定影响范围、查明攻击路径到制定再发防止措施,取证方面的知识左右着事件响应的质量。端点安全产品的 EDR 功能会持续收集取证所需的遥测数据,大幅提升事后调查的效率。

云取证的挑战

在云环境中,传统的取证方法往往无法直接套用。存在诸多挑战,例如无法访问物理磁盘、虚拟机快照能否被认定为证据的法律判断尚未确立、以及在多租户环境中难以隔离证据等。AWS 和 Azure 虽然提供了用于取证的 API 和日志服务,但事先明确与云服务商之间的责任分界点是不可或缺的。

一个常见的失误是,在事件发生后慌忙重启服务器,导致内存中的证据全部丢失。让「先保全证据,再进行处置」这一顺序贯彻到整个组织非常重要。

关于数据泄露的应对,在数据泄露应对的文章中有详细说明;个人层面的事件响应,则在面向个人的事件响应文章中进行了讲解。也请一并参阅勒索软件防护数字取证专业书籍 (Amazon) 上也能找到。

相关术语

这篇文章对您有帮助吗?

XHatena