面向Windows操作系统的内存取证技术研究

2014-09-29 10:32董步云
计算机工程 2014年8期
关键词:可用性进程内存

钱 勤,董步云,唐 哲,伏 晓,茅 兵

(1.江苏省高级人民法院技术处,南京 210093;2.南京大学a.软件学院;b.计算机软件新技术国家重点实验室,南京 210093)

1 概述

随着计算机的普及以及网络的广泛应用,越来越多的计算机犯罪开始出现并且严重影响到社会安全。据统计,在2009年全球有超过336000次报道是关于各种各样的计算机犯罪,比如网上诈骗、身份盗用和经济间谍活动[1]。每年由于计算机犯罪给企业带来的损失多达数千万美元[2]。因此,计算机取证变得尤为重要,重构入侵计算机的行为和找到相关证据不仅可以惩戒犯罪分子,还能帮助企业和国家挽回很多经济损失。

传统的计算机取证证据获取和分析方法大多数针对系统的持久化数据,比如计算机磁盘、硬盘上的数据,然而对于存储在计算机RAM中的信息,以往的方法经常忽略或回避。随着计算机硬盘的容量不断增长,加密技术的发展和广泛应用,想要及时地分析获取到的存储介质镜像需要花费大量的精力。而且由于恶意程序的不断发展,获取的存储介质镜像中往往会有恶意程序,这样通过分析带有恶意程序的存储介质镜像得到的结果也是不正确的。因此在2005年的DFRWS取证挑战中,开始出现了对于系统临时的与状态相关的信息恢复研究[3]。

从2005年至今,计算机取证领域发展迅速,已经出现了各种各样的内存获取和分析的方法,然而许多方法都是针对特定版本的操作系统,并且还要在特定的环境中才能工作,这给取证工作中选取方法带来不便。另外,这些方法的准确性和可靠性还无法证实,在计算机取证领域需要对目前所有主要的内存获取和分析方法进行总结和分析。

本文主要对目前主流的内存获取、分析的方法以及内存取证过程进行全面的分析和比较。对那些基于Windows操作系统的内存获取和分析的方法进行研究。

2 内存取证技术背景

在Windows操作系统中,每个进程都有自己的私有虚拟地址空间。在一个32位的平台上,虚拟地址空间最多可以达到4 GB。一般用户进程默认有2 GB的虚拟地址空间,另外一半地址空间是保留给系统使用的。Windows x86的32位操作系统内存地址空间分布如图1所示。

图1 内存地址空间分布

Windows操作系统采用页式内存管理,也就是说虚拟地址空间是按页来管理的,对应于物理内存也按页来管理。在虚拟地址空间中连续的页面对应于在物理内存中的页面可以不必连续。在每个虚拟地址32位信息中,其中一部分位信息指定了一个物理页面,其余的位信息则指定了页内的偏移量,即虚拟地址分成了2个部分:页索引+页内偏移。32位虚拟地址中页索引部分分成页目录索引(10位)和页表索引(10位)2个部分。基于这样的虚拟地址构成,每个虚拟地址空间对应一个页目录,其中包含1024个页目录项;每个页目录项指向一张包含1024项的页表。在解析一个虚拟地址时,首先根据最高10位在页目录中定位到一个页目录项,它指向一个页表。然后根据接下来的10位在页表中定位到一个页表项,该页表项指定了目标页面的物理地址。最后再在该物理地址的基础上加上页内偏移,即得到最终的物理地址。具体解析过程如图2所示[4]。

图2 x86的32位虚拟地址的解析过程

3 内存取证过程

取证分析需要有一个规范化的过程才能使得取证所得证据能被法官所认可,成为真正的证据。计算机取证过程通常需要遵循3个原则:获取证据时保证完整性;鉴别收集到的数据有效性确保这些数据和原始一样;分析数据的同时保持数据完整性[5]。从很早开始就有很多组织开始讨论和研究计算机取证及其标准和准则[6],比如国家司法协会(NIJ)。现有的取证过程模型亦是围绕这3个原则,目前较为权威的取证过程模型包括美国司法部(DOJ)的取证过程模型[7]、抽象电子取证模型[8]、综合的电子调查模型(IDIP)[9]。除了各种取证模型,各种研究犯罪的组织比如英国司法部门(ACPO)[10]、国际评估合作组织(IOCE)[11]、国际计算机调查专家(IACIS)[12]也纷纷提出基于计算机电子取证的原则和指导方案。

美国司法部门在电子犯罪调查中提出了取证过程模型,包括了4个阶段:收集,检查,分析,报告。抽象电子取证模型则提出一个标准的电子取证过程包含9个组成部分:鉴别,准备,制定方法策略,保护,证据收集,检查,分析,展示,归还证据。综合电子调查模型(IDIP)由5个部分17阶段组成,它集合了早期的模型,使得模型能够完整地描述取证过程,但由于过程十分复杂,有效过程在时间操作中无法实现。改善的电子调查过程模型则改正了综合电子调查模型的一些缺点(EIDIP)[13],如图3所示。

图3 改善的电子调查过程模型

数字取证从出现到现在不过十多年的事,而从2005年DFRWS起内存取证才真正开始发展起来,在2005年之后各种各样的内存取证技术开始不断出现,但目前尚无专门针对内存取证的取证模型。内存取证过程一般是遵循数字取证的基本模型进行。在内存取证过程中,内存镜像的收集、获取和对获取数据的分析是关键步骤,已有的研究工作也主要集中于这2个方面,对其他步骤的关注很少。因此,下文将主要针对这2类方法进行综述。

4 内存获取方法

内存获取方法常被研究者分为基于硬件和基于软件2种。但是由于缺乏对基于硬件和基于软件的准确定义,因此最近出现的许多内存获取方法很难定义为哪种。按内存获取方法是否依赖操作系统,是否使用操作系统提供的API进行分类。

4.1 不依赖操作系统及其API的内存获取方法

首次尝试获取内存镜像用于取证工作的是使用一种特殊硬件——Tribble进行直接内存获取(DMA)[14]。由于Tribble使用了 DMA 技术,因此此方法不依赖于现有操作系统的结构和功能。Tribble使用的时候需要像专用的PCI设备那样安装在计算机上,然后它就能把内存中信息保存到一个外部的存储设备。

另外有2个类似的使用特殊硬件芯片进行内存获取的是“Copilot”[15]和“FRED”[16]。

在PCI芯片出现的同时,还有另外一种硬件技术同PCI芯片类似,也能进行内存获取。这种技术使用IEEE1394总线,其中一个例子是PCMCIA总线,使用 DMA 操作[17]。

随着虚拟化技术的发展和使用,使用虚拟机的服务器和计算机越来越多。通过虚拟机人们能模拟完整的完全隔离的可靠的系统环境。虚拟机的优点是可以暂停,将系统挂起,这样虚拟机中的操作系统的状态就被冻结,这一时刻的虚拟内存就可以保存到主机硬盘上了[18]。目前使用最为广泛的虚拟机是VMware,VMware的所有内存信息都保存在一个.vmem文件上。通过分析这个文件就能进行取证工作。

最近随着硬件技术的提高,有一种冷启动的方法基于易失性的信息在计算机断电后并不会立即擦除,仍然可以在一个短时间内恢复的特点[19]。通过人工降温RAM模块,比如使用液氮,可以使这些易失性的信息保留时间延长。然后就能通过一个定制的内核进行冷启动来获取保留的内存信息。

4.2 依赖操作系统及其API的内存获取方法

在对内存取证进行研究的初期,最先想到的应该就是使用某个软件来获得计算机的内存。目前内存获取方法中最常使用的也是通过某个内存获取软件来获得内存dump。

著名的Data-Dumper(DD)就是一个在用户级别通过软件方法获取内存的一个工具,是Forensic Acquisition Utilities的一部分[20]。

由于使用DD保存整个内存既大又花费大量时间,因此在Data-Dumper之后又产生了各种保存单个进程地址空间的软件,比如 PMDump[21],Process Dumper[22]。这些工具能够得到单一进程的内存内容、进程的环境和状态信息,并保存到一个文件。

为了减少在用户级别获取内存时的限制,许多内核级别的应用程序出现。内核级别的免费的程序有 Mantech ’s MemoryDD[23],Windows Memory Toolkit[24]和 Memoryze[25]。

4.3 针对特定操作系统的内存获取方法

除了一些可以不考虑操作系统的硬件设备外,还有一些针对特定操作系统的内存获取方法。

在的Sun Solaris系统中有一种叫OpenBoot的中间件,OpenBoot可以使用Sparc结构获取物理内存[26]。

许多Unix操作系统有一个进程伪文件系统,它一般存放在/proc/下,保存着内核和运行进程的信息。因此,备份该文件系统即可得到内存备份。不同Unix操作系统结构可能不同,但大部分都有类似的目录结构和功能。

在Windows操作系统中所有Windows2000及以上的版本都可以通过配置记录debug信息,也就是内存dump文件。在系统崩溃的情况下,系统状态被冻结,内存和CPU相关信息保存到系统根目录下为下次启动做检查。dump文件保存了计算机处理器当时的内容以及系统的一些状态,这些文件可以通过微软官方提供的Microsoft Debugging Tools for Windows打开或人工分析[27]。将这项技术应用到内存取证上可以使用第三方应用程序或内置的CrashOnCtrlScroll的功能[28]。当然这个功能默认是关闭的,需要通过修改注册表内容将其开启。

Windows除了有crash功能还有一个休眠功能,能将内存数据与会话保存至硬盘,以便计算机断电重新启动后可以快速恢复会话所需的内存镜像文件,存放在操作系统安装的根目录下[29]。当系统即将进入休眠模式,系统状态会被冻结,系统会话和状态信息会被保留。

文献[30]设想了一个叫做Body-Snatcher的应用程序。这个程序能够注入一个独立的操作系统到计算机的内核,通过冻结计算机的状态,只靠注入的操作系统提供的函数可以得到一个可靠的内存。

4.4 分析与比较

目前计算机取证领域还没有一个标准的评估准则来评估不同的获取方法。文献[31]首次提出了评估这些方法的3个重要指标,即真实性、可靠性和可用性。真实性要求得到的内存镜像必须是原计算机内存的一个精确拷贝。可靠性要求这个获取技术不能很容易地被反取证工具攻破。可用性代表了这个方法适用于任意环境的适用程度。

之后又总结了一个初步的评估内存获取方法的评估框架。这个评估框架基于2个指标:原子性和可用性。原子性用于度量真实性。但是,由于这个初步的框架对于这2个指标描述得不够清楚,并未成为计算机取证领域公认的评估准则。

文献[32]提出了4个评估获取的内存镜像质量好坏的标准,即正确性、完整性、速度和干扰程度。类似地,文献[33]定义了3个评估内存镜像的因素:正确性,原子性和完整性。

以上各种内存获取方法各有各的特点,有些能支持所有操作系统,但有些只针对特定的操作系统;有些可靠性较高较安全,有些易受到恶意程序攻击;有些能获得完整的内存,但有些获取的内存已经被修改了。因此,从可靠性、完整性、原子性和可用性这4个维度对以上各种方法进行了比较,并使用高、中、低进行比较,如表1所示。

表1 内存获取方法比较

不依赖操作系统及其API的方法由于不使用操作系统提供的任何功能,因此不易受到隐藏在计算机中恶意程序的攻击,这类方法可靠性比较高。另外这类方法在获取内存时会把原操作系统挂起,因此,获取操作是原子的,并且获得的内存没有被改变。但是由于这类方法需要预先将取证硬件或虚拟机安装在计算机上,而这在取证调查过程中往往是很难做到的,因此这类方法应用范围比较窄,可用性不好。仅针对特定操作系统的方法由于也不使用操作系统提供的API,因此可靠性也很高。但这类方法只适用于某类特定操作系统,可用性很低,并且这些方法一般使用操作系统内置的某些功能(例如休眠),获得的内存不完全。依赖操作系统及API的方法易受到恶意程序的攻击,可靠性没前2种高,但这种方法只需要在受到攻击的计算机上安装某个小软件就能实现,可用性较高,获得的内存也较为完整(尽管安装过程会影响内存,但影响通常不大)。

5 内存分析方法

在内存被获取后就需要进一步对这些数据进行分析。内存分析方法多种多样,可以按分析对象进行分类也可以按分析技术进行分类。本文按分析技术将内存分析方法分为基于字符串搜索、基于内存扫描、基于特征和基于操作系统内核关键数据结构的方法。

5.1 基于字符串搜索的分析方法

最初分析内存数据的方法便是使用命令行工具进行字符串搜索[34],或者使用能打开二进制文件的Winhex软件进行字符串搜索。这种技术可以搜索一些已知的关键信息词,比如用户名、密码。同时为了查询犯罪记录,也能搜索那些可能是攻击行为的词汇,比如色情图片。

除了简单的字符串搜索,对于计算机状态的分析也能使用搜索方法。计算机命令行保存着计算机许多宝贵的状态信息,通过搜索一些有名的命令或搜索存储命令行历史的数据结构的签名能对计算机状态进行分析。

5.2 基于内存扫描的分析方法

文献[35]中描述了一个线性内存扫描的技术,这是一种暴力破解的方法,逐个字节地扫描整个内存,然后使用可能的一块数据作为密钥进行破解。

5.3 基于特征的分析方法

文献[36]提出了一个基于特征的扫描器。它使用一系列的规则来精确描述系统进程或线程的结构。扫描器的结果可以用来和标准的进程列表作对比。如果有不同,则能证明恶意程序的存在。

除了可以根据进程数据结构的特征进行扫描获得进程列表,还有些加密技术也利用了特征将密码缓存在偏移量为0x417处[37-38]。这样加密密钥恢复只需扫描这个偏移量特征就能恢复加密密钥。

文献[39]提出了扫描操作系统中不会被换出的池(non-paged pool)来找到监听socket的分配。算法基于一个池标记TCPA和一个预先定义好的池大小。一旦鉴别到可能的地址,socket列表就能创建,获得打开的网络连接列表。

5.4 基于操作系统关键数据结构的分析方法

操作系统内核关键数据有很多,其中对于取证最重要也最有用的就是进程结构EPROCESS。基于EPORCESS早期的方法从_EPROCESS结构的ActiveProcessLinks出发依次获得系统中的运行进程。其中,Windows Memory Forensics Toolkit(WMFT)就是使用这样的方法列举出进程列表。Memparser同样使用这样的方法,并可以dump进程的内存。

但是之后研究发现一些恶意程序使用一种叫做DKOM的方法可以将进程自己从ActiveProcessLinks的链表上删除,如图4所示[40]。因此,循环获得进程列表的方法可能不可靠,无法找到那些使用DKOM的恶意进程。

2009年,一个结合了扫描技术和链表遍历技术的方法被提出[41]。这个方法基于 KPCR(Kernel Processor Control Region)。通过这种方法能有效地避免DKOM获得完整的进程列表。

图4 DKOM方法示意图

EPROCESS结构中还有对于系统进程状态的一些信息。其中,StartTime和ExitTime属性表示了进程开始和结束的时间,可以用来创建取证的时间线。另外EPROCESS结构中有一个内核进程块KPROCESS,其中包含了一个应用程序在系统和用户模式下的一些状态信息。这类数据可能在程序终止24小时之后还能恢复,因此,应该对于这些状态信息特别关注。EPROCESS结构中的Token成员还能帮助恢复安全上下文(security context),安全上下文描述了与进程相关的权限、账号和组。

除了用于进程分析的EPROCESS结构,在面对加密技术的发展以及广泛使用的今天,还能从内存中的一些保存master key的数据结构来对加密密钥进行恢复。在2009年通过研究密钥产生的算法(key schedule)并解析某些内存数据结构也能获得密钥信息。

Windows系统的注册表是一个集中的以层次结构管理系统配置信息的数据库,它是由一系列hive组成的。分析内存中hive的信息能获得系统的一些宝贵信息[42]。Hive分析类似虚拟地址到物理地址的机制,如图5所示。

图5 注册表分析

2010年,文献[43]找到了2个在 tcpip.sys驱动文件中的散列表:_AddrObjTable,TCBTable。每个散列表有一个保存着IP地址和端口绑定的列表的指针。遍历这个列表就能获得存在的socket和打开的网络连接,具体如图6所示。

进程环境块(PEB)是进程的一部分,可以作为分析进程文件的工具。它有一个Ldr成员和3个双向列表,里面保存着所有装载的dll的名字、大小和基地址,遍历每个单独的列表就能鉴别是否有dll注入的攻击[44]。

图6 网络分析

分析文件和dll的最主要方法是基于VAD的方法[45]。VAD是一个内核数据结构,由内存管理器维护,用于跟踪分配的内存。它存储着分配内存的开始和结束的地址信息以及访问(access)和描述符(descriptor)标记。VAD树上的每一个节点都有一个池标记,类型是 VadS,Vad或 Vadl。Vad和 Vadl这2种类型的节点有一个指向_Control_Area的结构。_Control_Area结构指向保存着文件名和其他文件信息的_File_Object对象,如图7所示。获取所有的文件对象就能通过从上到下遍历VAD树实现[46]。

图7 VAD树

在2010年,研究者发现另外一个重要数据结构DOSKEY整合在命令行shell里,可以编辑过去命令和展示命令的历史记录[47]。

5.5 分析与比较

随着内存取证的发展,内存分析技术越来越多。面对内存获取获得的不同内存镜像需要选择合适的内存分析技术才能有效准确地进行分析得到想要的结果。因此,需要对以上各种类型内存分析方法进行比较。使用可靠性、可用性、准确性三方面来对以上分析方法进行比较,如表2所示。

表2 内存分析方法比较

基于字符串搜索的方法可以在各类场景中使用,可用性很高。这种搜索粒度比较粗,获得结果包含了大量的噪音,准确性很低,但可靠性很高。基于扫描的方法准确性和可靠性同第一种,并且它只能适用于某些在内存中以线性方式存储的信息,可用性也很低。基于数据结构特征的方法采用了某些数据结构的一些特点来找到它们,准确性较高,不会有偏差,但可用性也因此不是很高。基于操作系统关键数据结构的方法由于找到操作系统中某些有用的数据结构无论可靠性,还是准确性、可用性都比较高。

6 内存取证分析工具

随着内存取证领域的发展以及各种内存获取分析技术的出现,各种各样的内存取证工具应运而生。尽管各式各样的内存取证工具各有特点,但所有的内存取证工具都有一个共同问题——操作系统的限定。由于操作系统版本的变化,内存中一些对于取证关键的数据结构也会有相应的变化。虽然有时这些变化很小,但是一个很小的地址变化就会导致那些硬编码地址的程序运行错误。所以在开始取证工作前有必要了解各种内存取证工具的特点以及限制,这样才能灵活运用各种工具达到目的。以下将分内存获取工具和内存分析工具进行介绍。

6.1 内存获取工具

内存获取早期经常使用一些硬件工具来实现,比较著名的有“Tribble”。这些不依赖操作系统的工具在早期能很有效地获取内存,但随着计算机各种技术的发展一些早期的方法性能上产生了很大问题。后来有很多内存获取软件出现,这些软件能比较容易地获取内存。

最为有名的内存获取软件就是Data-Dumper(DD)。DD在开发初期是一个用户级别的工具,后来又开发了内核级别的KntDD,能够避免用户级别的各种限制,提高了效率。其他类似DD的内存获取工具还有:PMDump,Process Dumper和Memoryze。

另外,现在网络上还能找到各种各样的免费的内存获取小工具,这些工具能够十分容易地获取内存,比如 DumpIt[48]。

6.2 内存分析工具

在最初研究内存取证的阶段使用的工具主要功能是打开二进制文件,可以查看具体地址信息的所在地址的内容,比如 WinHex[49]。WinHex可以打开内存dump文件并查看相应的地址和内容,这样只要在其中进行字符串搜索就能找到想要的内容。

除了最基本的WinHex外微软公司还提供了用于Windows操作系统的debug工具(Microsoft Debugging Tools for Windows)。Windows debug工具是一个包含了一系列各种功能的工具集,其中某些小工具能十分简便的帮助人们进行取证工作,比如打开Windows崩溃的dump文件。可以在对Windows操作系统的取证过程中使用它进行前期的工作。

内存分析工具更多的是各国取证研究者开发的一些工具,在 Linux中比较有名的有 Forensix[50]和Backtracker,在这里不作过多介绍。在Windows中,前期针对进程分析产生了很多工具,比如Windows Memory Forensics Toolkit(WMFT)、Memparser。这些工具都能通过遍历进程结构获得进程列表。之后的研究者由于发现DKOM技术又开发了一些新的能够解决DKOM 的工具,比如Kntlist和PTFinder。

在2008年,内存取证领域有了一定的发展并出现了一个集合了其他各种内存取证工具的取证框架工具 Volatility[51]。Volatility是一个开源的内存取证分析框架,包含了一些由Python写的核心模块,提供了一些基本功能,比如列出进程列表。Volatility各项功能都是由插件实现的,各地的取证研究者可以根据自己的需要开发Volatility的插件。

6.3 内存取证分析工具比较

如今取证分析工具越来越多,在取证工作中需要根据具体情况选择合适的取证工具。使用可用性、准确性和可靠性来对内存获取和分析工具进行比较,如表3和表4所示。

表3 内存获取工具比较

表4 内存分析工具比较

内存获取工具Tribble需要预先安装在计算机上,可用性较低。DD系列工具和一些类似DD的用于单个进程内存获取的工具各方面都比较好,应该采用。DumpIt这类免费的小工具使用十分方便,但可靠性和准确性都不能保证。

内存分析工具WinHex是一个可以打开内存dump的工具,但由于没有专门针对分析的功能,因此准确性较低。Windows的debug工具相对有更多的功能,准确性也有所提高,但这类工具只能在Windows操作系统上使用。WMFT等是早期的分析进程的工具,由于DKOM技术的发现,因此可靠性和准确性都不是很高。但之后的PTFinder等解决了DKOM的问题因此各方面都很好。Volatility是最近的一个内存分析框架,结合了各类分析工具的特点并且开源可扩展,是目前较为全面的内存分析工具。

7 结束语

内存取证从2005年开始发展到现在出现了各种各样的工具以及获取和分析的方法。尽管已有不少有价值的工作,但目前内存取证技术还不够成熟,未来需要研究的问题很多。目前取证领域大部分获取或分析方法都依赖于特定版本的操作系统。如何能设计出完全不依赖于操作系统的方法值得研究者关注。内存取证过程如果有很多人工干预的话,不仅对取证研究者能力要求很高而且耗时易错。这就要求内存取证方法能够尽可能实现自动化,这样不仅节省了人力还提高了效率。现有的内存取证方法在这方面还需要进一步加强。目前内存取证的很多工具都只是针对内存中某一类型对象进行获取分析,未来内存取证需要一个能够恢复和分析内存中全部对象的完整内存取证框架,并且在内存取证模型方面也值得研究者做进一步研究。

[1]Vomel S,Freiling F C.A Survey of Main Memory Acquisition and Analysis Techniques for the Windows Operating System[J].Digital Investigation,2011,8(1):3-22.

[2]Computer Security Institute.14th Annual CSI Computer Crime and Security Survey[EB/OL].(2009-12-05).http://www.personal.utulsa.edu/~ james-childress/cs5493/CSISurvey/CSISurvey2009.pdf.

[3]DFRWS.DFRWS 2005 Forensics Challenge[EB/OL].(2005-05-14).http://www.dfrws.org/2005/challenge.

[4]潘爱民.Windows内核原理与实现[M].北京:电子工业出版社,2010.

[5]Kruse W G,Heiser J G.Computer Forensics:Incident Response Essentials[M].[S.l.]:Addison-Wesley Professional,2001.

[6]孙 波,孙玉芳,张相锋,等.电子数据取证研究概述[J].计算机科学,2005,32(2):2-4.

[7]National Institute of Justice.Electronic Crime Scene Investigation A Guide for First Responders[EB/OL].(2001-07-23).http://www.ncjrs.org/pdffiles1/nij/187736.pdf.

[8]Reith M,Carr C,Gunsch G.An Examination of Digital Forensic Models[J].International Journal of Digital Evidence,2002,1(3):3-5.

[9]Carrier B,Spafford E H.Getting Physical with the Investigative Process[J].International Journal of Digital Evidence,2003,2(2):2-4.

[10]ACPO.Association of Chief Police Officers[EB/OL].(2011-06-12).http://www.acpo.police.uk/.

[11]IOCE.International Organization for Cooperation in Evaluation[EB/OL].(2009-11-10).http://www.ioce.net/index.php.

[12]IACIS.International Association of Computer Investigation Specialist[EB/OL].(2010-09-28).http://www.iacis.com/.

[13]Baryamureeba V,TushabeF.The Enhanced Digital Investigation Process Model[C]//Proc.of the 4th Digital Forensic Research Workshop.[S.l.]:IEEE Press,2004.

[14]Carrier B D,Grand J.A Hardware-based Memory Acquisition Procedure for Digital Investigations[J].Digital Investigation,2004,1(1):50-60.

[15]Petroni N L,Fraser T,Molina J et al.Copilot——A Coprocessor-based Kernel Runtime Integrity Monitor[C]//Proc.of the 13th USENIX Security Symposium.New York,USA:[s.n.],2004.

[16]BBN Technologies,Fred:Forensic Ram Extraction Device[EB/OL].(2006-01-09).http://www.ir.bbn.com/vkawadia/.

[17]Hulton D.Cardbus Bus-mastering:Owning the Laptop[C]//Proc.ofShmooCon’06.Columbia,USA:[s.n.],2006.

[18]Smith J E,Nair R.The Architecture of Virtual Machines[J].Journal of Computer,2005,38(5):32-38.

[19]Halderman J A,Schoen S D,Heninger N,et al.Lest We Remember:Cold-boot Attacks on Encryption Keys[J].Communications of the ACM,2009,52(5):91-98.

[20]Garner G M.Forensic Acquisition Utilities[EB/OL].(2009-07-20).http://gmgsystemsinc.com/fau/.

[21]Vidstrom A.Pmdump[EB/OL].(2002-06-17).http://ntsecurity.nu/toolbox/pmdump/.

[22]Klein T,Process Dumper[EB/OL].(2006-10-29).http://www.trapkit.de/research/forensic/pd/index.html.

[23]ManTech CSI,Inc..Memory DD[EB/OL].(2009-03-14).http://sourceforge.net/projects/mdd/files/.

[24]Windows Memory Toolkit.MoonSols[EB/OL].(2010-09-22).http://moonsols.com/product.

[25]Mandiant.Memoryze[EB/OL].(2010-09-13).http://www.mandiant.com/products/free_software/memoryze/.

[26]Chris D,Kimberley B.PANIC!UNIX System Crash Dump Analysis Handbook[M].[S.l.]:Pearson Education,1995.

[27]Microsoft Corporation.Kb254649-overview of Memory Dump File Options for Windows Vista,Windows Server 2008 R2,Windows Server 2008,Windows Server 2003,Windows XP,and Windows2000[EB/OL].(2010-07-15).http://support.microsoft.com/?scid=kb3Benus3B 254649&x=13&y=5.

[28]Microsoft Corporation.Kb244139-windows Feature Lets You Generate a memory Dump File by Using The Keyboard,Crash Dump File Generation[EB/OL].(2010-06-30).http://support.microsoft.com/?20sci d=kb3Ben-us3B244139&x=&y=9.

[29]Libster E,Kornblum J D.A Proposal for An Integrated Memory Acquisition Mechanism[J].ACM SIGOPS Operating Systems Review,2008,42(3):14-20.

[30]Schatz B.Bodysnatcher:Towards Reliable Volatile Memory Acquisition by Software[J].Digital Investigation,2007,4(9):126-134.

[31]Schatz B.Recent Developments in Volatile Memory Forensics[EB/OL].(2007-12-18).http://www.schatzforensic.com.au/presentations/BSchatz-CERTCSD2007.pdf.

[32]Inoue H,Adelstein F,Joyce R A.Visualization in Testing a volatile Memory Forensic Tool[J].Digital Investigation,2011,8(1):42-51.

[33]Vomel S,FreilingF C.Correctness,Atomicity,and Integrity:Defining Criteria for Forensically-sound Memory Acquisition[J].Digital Investigation,2012,9(2):125-137.

[34]Burdach M.An Introduction to Windowsmemory forensic[EB/OL].(2005-07-09).http://forensic.seccure.net.

[35]Hargreaves C,Chivers H.Recovery of Encryption Keys from Memory Using a Linear Scan[C]//Proc.of the 3rd International Conference on Availability,Reliability and Security.Barcelona,Spain:[s.n.],2008:1369-1376.

[36]Schuster A.Searching for Processes and Threads in Microsoft Windows Memory Dumps[J].Digital Investigation,2006,3(1):10-16.

[37]Bolieau A.Bioskbsnarf[EB/OL].(2008-04-10).http://www.storm.net.nz/static/files/bioskbsnarf.

[38]Anon.Defeating WholeDisk Encryption -Part 1[EB/OL].(2007-03-26).http://breach-inv.blogspot.com/2007/05/defeating-wholedisk-encryption-part-1.html.

[39]Schuster A.Pool Allocations as an Information Source in Windows Memory Forensics[C]//Proc.of International Conference on IT-incident Management& IT-forensics.[S.l.]:IEEE Press,2006.

[40]Bilby D.Low Down and Dirty:Anti-forensic Rootkits[C]//Proc.of Ruxcon’06.[S.l.]:IEEE Press,2006.

[41]Zhang Ruichao,Wang Linhai,Zhang Shuhui.Windows Memory Analysis Based on KPCR[C]//Proc.of the 5th International Conference on Information Assurance and Security.[S.l.]:IEEE Press,2009:677-680.

[42]Dolan G B.Forensic Analysis of the Windows Registry in Memory[J].Digital Investigation,2008,5(1):26-32.

[43]Okolica J,Peterson G L.Windows Operating Systems Agnostic Memory Analysis[J].Digital Investigation,2010,7(1):48-56.

[44]Russinovich M E,Solomon D A,Ionescu A.Microsoft Windows Internals[M].[S.l.]:Microsoft Press,2009.

[45]Dolan G B,The Vad Tree:A Process-eye View of Physical Memory[J].Digital Investigation,2007,4(1):62-64.

[46]van Baar R B,Alink W,van Ballegooij A R.Forensic Memory Analysis:Files Mapped in Memory[J].Digital Investigation,2008,5(S1):52-57.

[47]Stevens R M,Casey E.Extracting Windows Command Line Details from PhysicalMemory[J].Digital Investigation,2010,7(1):57-63.

[48]Sols M.DumpIt[EB/OL].(2011-07-18).http://www.moonsols.com/2011/07/18/moonsols-dumpit-goesmainstream/.

[49]X-way.Winhex[EB/OL].(2010-10-15).http://www.x-ways.net.

[50]Goel A,Feng Wuchang,Maier D,et al.Forensix:A Robust,High-performance Reconstruction System[C]//Proc.of the 25th IEEE International Conference on Distributed Computing Systems Workshops.[S.l.]:IEEE Press,2005.

[51]Volatile Systems.LLC,Volatility[EB/OL].(2008-11-14).https://www.volatilesystems.com/default/volatility.

猜你喜欢
可用性进程内存
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
基于辐射传输模型的GOCI晨昏时段数据的可用性分析
债券市场对外开放的进程与展望
“春夏秋冬”的内存
改革开放进程中的国际收支统计
可用性差距阻碍数字化转型
空客A320模拟机FD1+2可用性的讨论
黔西南州烤烟化学成分可用性评价
社会进程中的新闻学探寻
基于内存的地理信息访问技术