Galaxy Lab

focus on information security

[翻译]内存取证分析

译者注:在甲方安全运营和应急响应过程中,取证都是应急响应的重要一环。这一块因为涉及到取证合法性,时效性等影响,一直都是我们比较薄弱的一个环节。本文专门介绍内存取证,比较初级,为方便新手学习,特将其翻译为中文。译者水平有限,如有异议,欢迎留言讨论

原文链接:https://articles.forensicfocus.com/2017/06/26/ram-forensic-analysis/

1.      目的

本文目的是展示如何进行RAM内存取证分析,提供一些操作和分析的示例,帮助通过信息系统识别安全事件如欺诈和其他非法行为的迹象。

2.      计算机取证分析的优秀实践

2.1  NIST 800-86

国家标准和技术研究所(National Institute of Standards and Technology, NIST)因提供了一系列详尽和全面的技术标准文档而闻名于世。

NIST 800-86 (将取证技术纳入安全事件应急响应指南)对于将取证分析纳入事件响应提供了许多参考指导,内容包含从数据收集到最后的报告撰写。

2.1.1基于NIST的取证分析步骤

收集 – 从不同来源处获得数据并对数据识别,标记,加工。这一步用文档化的方式确保数据完整性

检验 – 通常需要用手工方法和自动化表单处理收集到的数据。这步骤已经在辨别和调查与事件有关联的数据

分析 – 继续以更细致的方式处理,且已经有了调查的方向。在这个阶段,对其他数据源的收集也可带来额外的证据。

报告 – 描述包含从第一阶段以来所做工作的分析结果。例如, 报告中所列行为要包含所采取使用的工具程序,分析其他的风险,为了减少可导致再次发生类似事件的盲点,要给出改进内控系统的建议和工具,从而减少对业务的影响。

2.2   RFC 3227

RFC 227 为获得信息证据提供了很好的实践。数据收集的顺序能决定一场调查的成败。

这个顺序被称作挥发性顺序,顾名思义,它指必须优先收集易于挥发性数据。挥发性数据指的是任何在系统关机后就会失去的数据,例如仍旧驻留在RAM中的网站连接。我们必须按从最易挥发到最不易挥发的优先级去取证:

  •  Caches
  • 路由表, 进程表, 内存
  • 临时系统文件
  • 硬盘
  • 远程日志,监控数据
  • 物理网络配置,网络拓扑
  • 媒介文件(CD,DVD等)
  • ….

3.      RAM内存分析

随机存取存储器(Random Access Memory, 通常缩写为RAM) ,是一种常用在数电技术中的允许读和写的内存。程序在运行前会被读入存储设备。例如,一张CD首先会被读入到RAM中,然后才交由处理器去运行。之所以使用RAM是因为RAM在传输速率上比硬盘有优势。

而RAM的缺点是当计算机关闭时存储的数据会丢失。当计算机开机时,系统启动按照加载库文件,驱动文件,偏好设置文件的顺序加载入到RAM。RAM内存包含多种类型可执行文件,如可执行程序,网络通信端口信息,操作系统日志文件,浏览器日志,照片,文本文件等等。

如上所述,这些内容会在关机时丢失,因而在计算机取证时必须强制遵循挥发性顺序去操作,确保证据不会丢失。

3.1  创建一个RAM内存镜像

可使用免费软件DumpIT来实现。

推荐:镜像不应该直接创建到我们正在分析RAM的计算机。DumpIT软件应从外部存储设备(例如闪存,外部硬盘, 甚至安全的网络共享)处运行。

执行:以管理员权限运行“DumpIT”软件DumpIT软件显示类似如下:

《[翻译]内存取证分析》

Address space size显示了内存大小,例如图中显示了16GB的内存。内存打出来的镜像文件也是差不多大小。镜像文件的保存路径显示在“Destination”,默认情况下是DumpIT的运行路径。默认的镜像文件名是主机的生成镜像过程的日期。该文件默认保存为raw格式。

要开始生成内存镜像,简单的输入“Y”即可

《[翻译]内存取证分析》

Processing字样指正在从内存中生成镜像。

Success 字样指生成过程完成。

4.      取证

为展示一些从RAM中取证的基本操作,我们需要对打出来的镜像文件进行分析,为此我们需要使用Volatillity。Volatillity是一套免费开源的内存分析工具集。它通常应用在Linux系统环境中,并已集成进一些发行版本(例如Kali Linux)中。我们这里在Windows 环境下使用Volatillity 框架软件,这对接下来输入命令的输出结果并无影响。软件下载url:http://www.volatilityfoundation.org/25 

4.1  插件

插件是指在生成出的镜像文件中执行特定函数的模块。由于这里我们只是演示一些基本的插件,我建议你在上述链接中阅读其他插件(还有许多其他的插件)的说明。

4.2  提取信息

Imageinfo -显示操作系统信息

该插件提供必要的分析信息,并标识其他插件都会使用的概要文件。

命令:《[翻译]内存取证分析》

《[翻译]内存取证分析》在“建议的配置文件”行中,通常使用第一个建议。在上图我们可以看到,操作系统是win7 sp 0x86(Windows 7,未安装Service Pack,32位版本)。获得配置文件的信息后,我们现在可以使用其他插件。

Pslist – 列出运行中的进程

命令:《[翻译]内存取证分析》

-f  文件名

-profile = Win7SP0x86  直接指定使用先前检测到的操作系统

pslist  运行插件

> pslist.txt  为了更好显示并方便我们接下来的分析,这里我们创建和插件同名的文本文件

《[翻译]内存取证分析》

 

我们能看到正在运行的从镜像文件取证的所有进程,包括取证软件本身的进程。

Dlllist – 显示每个进程加载的DLL列表

命令:《[翻译]内存取证分析》

-f  文件名

-profile = Win7SP0x86  直接使用之间检测到的操作系统

DllList  运行插件

> dlllist.txt  创建与插件同名的文本文件

此命令生成一个大文件,是一份包含非常详细的可执行文件和DLL及这些dll路径的列表。这在识别和操作系统正常程序一起加载的恶意文件时是有用的。

Netscan – 显示网络连接

命令:《[翻译]内存取证分析》

-f  文件名

– Profile = Win7SP0x86  直接使用之前检测出的操作系统

Netscan  运行插件

> netscan.tx  创建与插件同名的文本文件

这可能是Volatillity 框架的最有用的插件之一。它带来了如协议,端口,IP,和疑似机器的网络通信所涉及的可执行文件等重要信息。通过这些信息,我们可识别可能连接到可疑IP地址的通信连接。

Dumpregistry – 提取注册表

命令:《[翻译]内存取证分析》

-f  文件名

dumpregistry   后接指定路径的注册表文件将被提取并运行dump模块

多个windows的注册表文件将从镜像中提取出来,而我们主要用到下面的四个。

  • SYSTEM
  • SOFTWARE
  • SAM
  • NTUSER

这些日志文件包含有关操作系统安装信息、安装软件、证书信息、用户级信息(如最新打开文件、网络信息等)的信息。

我们把它们的名字改为如下:

  • SYSTEM.REG
  • SOFTWARE.REG
  • SAM.REG
  • NTUSER.DAT

4.3   分析日志文件

这里我们使用可创建包含所有注册表文件信息的通用报告软件 Registry Report

下载地址:http://www.gaijin.at/dlregreport.php

点击 “File”, “Open registry files”, 选择“Import from folder”, 选中以前提取的文件并单击“OK”

《[翻译]内存取证分析》

然后再选“file” select “Create Report”

《[翻译]内存取证分析》

保存报告。

生成的报告已含有选中的注册表文件中信息。

《[翻译]内存取证分析》

5.  结论

本文简要说明通过分析RAM内存可以提取出重要证据。

在取证分析时,依照良好的有步骤有顺序的收集做法是必要的,因为错误的执行顺序可能导致失去重要证据。

6.  参考

Melo, Sandro. Computer Forensics and Free Software, High Books, 2009. ISBN, 8576082888, 9788576082880.

Morimoto, Carlos Eduardo. Hardware II, the definitive guide – Porto Alegre: Southern Editores, 2010. 1086 p. ISBN 978-85-99593-16-5. 1.

NIST SP 800-86 – Guide to Integrating Forensic Techniques into Incident Response http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-86.pdf

RFC 3227 – Guidelines for Evidence Collection and Archiving http://www.rfc-base.org/rfc-3227.html

关于作者

Eliézer Pereira 是一位有着十多年经验的信息安全专家,主要进行如MBA ITIL、ISO27002,道德黑客等方面的计算机网络研究,他还是AccessData的考官。他目前的工作集中在调查取证和安全事件应急响应上。