导语:本文的目的是展示如何执行RAM内存取证分析,并提供可以分析的一些实际案例,以帮助大家通过信息系统识别安全事件以及欺诈和其他非法行为的迹象。
1、本文的目标
本文的目的是展示如何执行RAM内存取证分析,并提供可以分析的一些实际案例,以帮助大家通过信息系统识别安全事件以及欺诈和其他非法行为的迹象。
2、取证方法和技术
2.1 NIST 800-86的介绍和取证步骤
美国国家标准与技术研究院(NIST)出版的800-86 文件明确的将法医技术整合到事件响应中,对从数据收集到最终进行法医分析提供了许多标准指南。
取证步骤分为5步:
收集过程:识别,标注和继续从各种来源获取数据,以文件记录的方式并确保数据的完整性。
检查过程:处理收集的数据,通常需要手动处理和使用自动表单,并尝试识别与调查有关的可能数据。
分析过程:继续以更仔细的方式进行处理,并得出了调查的方向。在这个阶段,其他数据源的收集也可以带来更多的证据。
报告的形成:描述必须包括自第一阶段以来已完成的所有内容的分析结果,包括分析报告时采取的方法,以及使用的工具和程序。同时进行其他风险的分析,并提出内部控制和工具的改进,以便找到分析时所发生的疏忽之处。
2.2 RFC 3227
RFC 3227提供了获取数字证据的许多做法,比如,收集数据的顺序可以决定调查的成败。
这个顺序称为波动顺序(Volatility Order),顾名思义,调查人员必须首先收集易消失的数据。易失性数据是系统关闭时可能丢失的任何数据,例如连接到仍然在RAM中注册的网站。调查人员必须将先从最不稳定的证据中开始收集数据:
(1)缓存
(2)路由表,进程表,内存
(3)临时系统文件
(4)硬盘
(5)远程日志,监控数据
(6)物理网络配置,网络拓扑
(7)媒体文件(CD,DVD)
3、RAM内存分析
随机存储器(random access memory,RAM)是一种允许读写的存储器,用于数字电子设备。运行程序时,将其读入存储设备。例如,CD被传送到RAM,然后由处理器运行。访问RAM有很多优势,比如它具有比硬盘高得多的传输速率。
但也有很多缺点,比如当计算机关闭时存储的数据很容易丢失。当计算机打开时,引导系统的引导过程将重新把库,驱动程序和首选项设置复制回RAM。 RAM存储器可以把可执行程序和网络通信端口信息拷贝到操作系统日志文件,Web浏览日志,照片,文本文件等的几种类型的文件。
如前所述,当设备关闭时,该内容可能会丢失,并且在计算机取证分析中,必须严格遵守上述取证的顺序,以确保证据不会丢失。
3.1创建RAM内存映像
本文我们使用的是DumpIT免费软件,DumpIt 是一款绿色免安装的 windows 内存镜像取证工具。利用它我们可以轻松地将一个系统的完整内存镜像下来,并用于后续的调查取证工作。
使用建议,映像不应直接被写入具有分析的RAM设备中,DumpIt 必须从外部存储设备,例如闪存驱动器复制并运行。
如下图所示,DumpIt将显示地址空间大小,如下图就显示了一个16GB的RAM,其中生成的映像文件的结果将具有大致相同的大小。保存文件的路径显示在“目标”中即DumpIT正在运行的路径。
默认情况下,文件名是主机名(主机名),其后是执行映像过程的日期。该文件默认保存为“raw”格式。
要开始该运行,只需按“Y”键即可。
“处理”消息表示正在处理取证图像存储器。
“成功”消息表示运行已成功完成:
4、Volatility Framework
为了显示一些可以在RAM中找到的证据的基本案例,我们需要分析生成的文件。为此,我们将使用Volatility Framework软件。Volatility Framework是最知名的内存取证工具之一,它是用于RAM分析的免费和开源工具的集合,通常在Linux环境中使用,并且已经存在于某些发行版中,例如Kali Linux。
不过本文我们将在Windows环境中使用Volatility,但这对结果或使用的命令没有影响。
Volatility Framework下载地址:http://www.volatilityfoundation.org/25
4.1插件
插件是在生成的映像文件中执行特定功能的模块,由于重点只是展示一些插件,所以我们建议你在上面提到的链接中阅读即可。
4.2提取信息
Imageinfo -显示操作系统信息:
该插件会进行基本信息的分析,因为它将标识所有其他插件使用的配置文件。
使用命令:Volatility -f 20160915-125011.raw imageinfo
在“Suggested Profile”行中,始终使用第一个建议。我们可以看到操作系统是Win7SP0x86(Windows 7,没有安装Service Pack,32位版本)。根据配置文件的信息,我们现在可以使用其他插件。
Pslist –列表进程运行:
使用命令:volatility -f 20160915-125011.raw -profile = Win7SP0x86 pslist> pslist.txt
-f“filename”
“-profile = Win7SP0x86” – 指示使用以前检测到的操作系统配置文件。
pslist – 要运行的插件
> pslist.txt – 创建与插件相同名称的文本文件的指令及视图,并记录输出以供以后分析。
我们可以看到在取证映像运行时的所有进程,包括使用的软件。
Dlllist – 显示每个进程的加载dll列表
使用命令:Volatility -f 20160915-125011.raw -profile = Win7SP0x86 dlllist> dlllist.txt
-f“filename”
“-profile = Win7SP0x86” – 指示使用以前检测到的操作系统配置文件。
DllList – 要运行的插件
> dlllist.txt – 创建与插件相同名称的文本文件的指令。
此命令会生成一个大文件,以非常详细的方式列出可执行文件及其DLL,包括这些DLL的每个路径。例如,识别与操作系统已知的程序一起加载的恶意文件将非常有用。
Netscan – 显示网络连接
使用命令:volatility -f 20160915-125011.raw -profile = Win7SP0x86 netsca> netscan.txt
-f“filename”
“ – Profile = Win7SP0x86” – 指示使用以前检测到的操作系统配置文件。
netscan – 要运行的插件
> netscan.txt – 用于创建与插件名称相同的文本文件的指令。
这可能是Volatility最有用的插件之一。它带来了非常重要的信息以及相关设备的网络通信中涉及的协议,端口,IP和可执行文件。有了这些信息,我们可以确定可能的连接到可疑的IP地址。
Dumpregistry – 提取日志文件
使用命令:Volatility -f 20160915-125011.raw -profile = Win7SP0x86 dumpregistry -dump c: registry-dump
-f“filename”
“ – Profile = Win7SP0x86” – 指示使用以前检测到的操作系统配置文件。
dumpregistry -dump -提取日志文件的目录路径
将从映像中提取几个Windows注册表文件,但在本文中,我们将主要使用“SYSTEM,SOFTWARE,SAM,NTUSER”四个文件。
“SYSTEM,SOFTWARE,SAM,NTUSER”日志文件包含有关操作系统安装信息,安装软件,凭据信息,用户级信息的大量信息,如最新打开文件,网络信息等。
将文件的名称更改为以下默认值:
SYSTEM.REG
SOFTWARE.REG
SAM.REG
NTUSER.DAT
4.3分析日志文件
我们可以使用软件注册表创建一个一般性的报告,其中包含注册表文件中的所有信息。
下载地址:http://www.gaijin.at/dlregreport.php
单击“文件”,“打开注册表文件”,然后选择“从文件夹导入”,找到以前提取的文件,然后单击“确定”。
然后再在“文件”中选择“创建报告”
保存报告,生成的报告会从选定的注册表文件中获取信息:
5、总结
本文通过实际案例向大家展示如何通过内存分析提取重要的证据。
通过本文的证据获取,你应该能知道系统地采取分析步骤是多么的重要,比如错误的取证顺序很可能导致重要证据丢失。