主存储器取证
早期对最佳法医实践的看法是从字面上拔掉要被扣押的机器的插头。其基本原理是,这将消除任何向主机上运行的进程发出警报的可能性,并将抢先任何隐藏信息的尝试。随着时间的推移,经验表明,这些担忧在很大程度上被夸大了,重要的法医信息(如开放连接和加密密钥)的大量和不可逆转的丢失几乎没有理由。研究清楚地表明,数据往往在易失性存储器中持续很长时间。关于系统运行时状态的大量信息可以很容易地提取,甚至可以从快照中提取:
工艺信息识别和枚举所有正在运行的进程、线程和加载的系统模块是实用的;我们可以获得各个进程的代码、堆栈、堆、代码和数据段的副本。当分析受损机器时,所有这些都特别有用,因为它允许识别可疑服务、异常的父/子关系,更一般地,搜索已知的受损症状或攻击模式。
文件信息。它适用于识别任何打开的文件、共享库、共享内存和匿名映射的内存。这对于识别相关的用户操作和文件系统活动特别有用,可能会显示用户意图。
网络连接。它适用于识别开放的和最近关闭的网络连接和协议信息,以及分别发送和接收尚未发送或传递的数据队列。这些信息可以很容易地用于识别相关方及其之间的通信模式。
文物和碎片就像文件系统一样,内存管理系统往往是被动的,并留下了大量工件痕迹。这主要是为了避免对系统的运行不是绝对必要的任何处理;缓存磁盘和网络数据往往会在内存中留下很长时间的痕迹。
内存分析可以在实时(运行)系统上实时执行,也可以在系统状态的快照(内存转储)上执行。除了使用专用的内存获取工具或内置快照机制(在虚拟化环境中),还可以从系统休眠文件、页面交换或崩溃转储中获取内存内容。
在实时取证中,系统上预先安装了一个可信代理(进程),用于允许通过安全通道进行远程访问。远程操作员可以完全控制受监控的系统,并可以拍摄特定进程或整个系统的快照。实况调查是常规安全预防机制的延伸,可以最大限度地控制和获取数据;它们主要用于大型企业部署。
在实时系统上工作的主要概念问题是,如果它被破坏,数据采集和分析结果就不可信;因此,取证分析最常在目标系统RAM的快照上执行。分析快照比使用实时系统要困难得多,实时系统通过各种API和数据结构提供对运行系统状态的访问。相比之下,原始内存捕获没有提供这样的设施,取证工具需要重建从头提取语义信息的能力。这是一个语义鸿沟问题,而记忆取证的目的是弥合它。