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的考官。他目前的工作集中在调查取证和安全事件应急响应上。