基于司法鉴定合法性原则的DMA技术内存取证方法

2021-04-20 02:24王丹丁兆锟周锋赵燕
电子技术与软件工程 2021年2期
关键词:司法鉴定内存计算机

王丹 丁兆锟 周锋 赵燕

(南京拓界信息技术有限公司 江苏省南京市 210014)

众所周知,内存是计算机的重要组成部分之一,在系统运行时起到了关键的存储作用。但内存与硬盘等介质存储不同,其只有在计算机工作时进行数据存储。计算机一旦关机,内存中的所有数据将不再存在。因此,内存取证又被称为易失性数据提取。本文在研究和分析内存取证方法及工具的基础上,提出了基于动态内存读取技术(DMA),通过主机主板外部或内部的不同接口直接访问内存,实现在不破坏内存完整性的前提下,对内存镜像进行提取的方法,并依据相关司法规定讨论该方法的合法性。

1 内存取证技术研究综述

从目前能够查询到的资源材料来看,计算机取证起源于1984年,而内存取证作为计算机取证的一个分支直到2002年才被美国空军特别调查办公室的Kornblum 提出[1]。此后,Brain D.Carrier 和Joe Grand 于2004年在Digital Investigation 杂志发表《A hardwarebased memory acquisition procedure for digital investigations》对易失性数据提取的可行性进行了分析[2]。2005年,DFRWS 发起了一场数字挑战赛,从而拉开了内存取证技术研究的大幕。众多学者开始关注内存取证。综合当前的研究成果来看,内存取证主要集中在两个方面:

(1)物理内存提取;

(2)虚拟内存提取。

1.1 物理内存提取方法

物理内存提取是当前学者研究比较多的方向,也是物理磁盘取证与内存取证不同的主要着眼点。PetroniJr N L,Walters A,Fraser T,Zhang S,Wang L,Zhang R 等学者都先后对内存取证提出了自己的方法及研究成果。同时,美国 Guidance Software 公司、美国AccessData 公司、韩国 FinalData 公司、德国 X-Ways software 公司等公司也先后利用多种方法制作了内存提取工具。基于对这些研究搜索发现,物理内存取证的方法主要集中的三个方面:

1.1.1 利用硬件进行物理内存提取

这种方法主要是通过计算机外部硬件连接来完成对计算机内存的提取。如,Brian Carrier 和 Joe Grand 通过对计算机安装 “Tribble”硬件扩展卡的方式,来实现将物理内存中的数据复制到外接存储设备中进行保存。再比如比较流行的 Volatility 开源工程。

1.1.2 利用应用软件进行物理内存提取

这种方法被应用的较多,通过编写程序完成一个软件,利用该软件对物理内存进行按地址获取并记录到物理存储设备中。这种方法中,有的利用用户模式的应用程序达到读取内核内存区对象的目的。但该方法常常受到算法及权限的影响,导致物理内存提取不全或者失败。如Dolan-Gavitt 曾经借助VAD 树算法来枚举内存进程与线程信息,并存储到物理设备中。有的利用内核模式程序进行内存取证。这种方法可以有效解决系统权限等安全问题引起的数据获取难题,可以轻松绕过系统安全机制而完整获取内存空间对象。研究成果中,学者Betz 和Andreas 分别从Windows 2000 内核数据结构以及内核进程、线程结构等角度提出了自己的方法,并制作成了MemParser 和PTFinder 工具。

1.1.3 利用系统休眠机制或者崩溃机制进行内存取证

(1)自从WindowsXP 开始支持ACPI Advanced Configurationand Power Interface 以来,Windows 系统便有了系统休眠功能。该功能主要通过将将内存中的数据转储到硬盘上一个休眠文件来实现切断系统供电不会导致数据丢失的目的。据此,有学者提出,如果在系统休眠的情况下,对硬盘上的休眠文件进行提取,就可以达到内存取证的目的。那么,如何在计算机断电情况下,硬盘上的休眠文件提出来,又不破坏计算机内存数据呢?常用的方法可以通过计算机带电折机的方法,将硬盘利用只读硬盘复制机进行拷贝。但这样一来,对内存取证的技术要求便提高了很多,常常会因为操作失误而导致内存损坏。所以在司法鉴定领域应用并不多。

(2)利用系统崩溃机制进行内存提取,Garner 和 Mora 团队通过逆向分析 Windows 2000 崩溃转储文件的重要内核数据结构发现,操作系统崩溃时记录下来的当前系统状态信息可以给内存取证提供了便利,据此还开发了内存取证工具 KNTList。这种方法与休眠方法类似,虽然可以解决内存取证问题,但对内存取证人员的技术要求过高。首先,技术人员要清楚的知道崩溃文件的存储位置;其次,技术人员要能够精确的控制系统崩溃;最后还要实现将崩溃文件拷贝到指定存储设备中。有一个环节出了问题,都会导致系统内存数据损失。

1.2 虚拟内存提取方法

通过对计算机存储介质的虚拟化,实现对内存的管理和利用是虚拟内存的重要作用。页交换文件是虚拟内存的一个重要特征,其中包含有某些进程的部分信息,因此2008年James M 等学者就提出要对这部分信息的提取加以重视。经过资料检索发现,从2008年以来,虽然学者们对页交换文件作为取证的一部分并无太多异议,但真正的研究成果并不是很多。零星的一些方法包括利用注入签名驱动的方法进行提取,利用文件系统直接提取等。

综合物理内存取证和虚拟内存取证的调研成果来看,本文所研究的重点应该属于物理内存取证范畴,因此对于虚拟内存取证本文不做过多探讨。在物理内存取证方法中,DMA 技术提取内存又是利用硬件进行物理内存提取的范围,而且并非本文首次提出。PetroniJr N L 等人4 就提出使用FireWire 设备进行物理内存提取的方法,该方法就是利用了DMA 技术,但这一技术一直无法完全解决系统蓝屏死机或者丢失部分内存信息等问题。本文继续对这一技术进行研究,力争找到一条稳定、可靠且符合司法鉴定要求的物理内存提取方法。

2 基于DMA技术的内存取证方法

2.1 什么是DMA技术

DMA 技术又称为直接内存存取技术。它可以利用DMA 控制器直接与系统内存进行读写,而不需要依赖于计算机CPU。正是因为这一特性,使得利用此技术对内存直接读取并写入外部存储器成为可能。

2.2 DMA技术内存取证的方法

利用 DMA(direct memory access,直接内存访问)指令去获取物理内存,同样可以完全内存取证工作。在获取物理内存时,目标系统的CPU 将暂停,以避免因操作系统的执行而改变内存数据。基于DMA 技术进行内存取证,需要有DMA 控制器,利用控制器,通过PCI、IEEE 1394 火线以及雷电等接口与目标主机连接,从而利用程序控制内存提取。具体步骤如下:第一步,将DMA 控制器通过PCI、IEEE 1394 火线以及雷电等接口与目标主机连接。第二步,通过仲裁器协调DMA 请求的优先权,等等目标主机回应。第三步,对目标主机的内存进行提取。

采用这类方法的优点是,在基于Intel 架构的操作系统(Windows,Linux,Mac OS 等)中,都可以利用该方法获取物理内存;同时DMA 方式能够在不干扰操作系统和 CPU 的情况下,较为准确地获取物理内存。但该方法也存在一些兼容性缺点。由于需要有硬件设备插入目标主机主板中,受目标主机形态的影响,很可能会导致硬件环境不满足,从而内存取证失败。

3 内存镜像提取的应用

3.1 内存中密码获取

在实际工作场景中,内存存在很多其他类型的密码信息,比如系统密码,第三方加密工具的密钥信息,部分应用程序,如微信,QQ 等的数据库密钥信息。因此,在动态读取内存技术的基础上,进一步研究其他类型的密钥在内存中的特征,找到第三方加密工具或社交软件数据库的加密方式,获取解密数据库的密钥值,从而分析出更多的密钥信息。

3.2 内存数据完整性提取

传统获取内存的方式是基于软件的内存获取,但该种方式往往需要运行特定的程序来实现,而外部程序一旦在内存中运行,就会破坏部分内存信息,导致获取的动态内存数据不准确。本课题研究是基于硬件的内存获取,利用 DMA 指令直接获取物理内存。因此,相对于传统的软件内存获取方式,其优点在于,获取物理内存时,能够避免取证软件造成的内存数据变化,从而保证目标系统内存信息的完整性与一致性,实现在不干扰操作系统和 CPU 的情况下,较为准确地获取物理内存数据,为进一步取证分析工作提供必要条件。

4 司法合法性验证

内存取证在司法取证中被称为易失数据取证,在相关的司法规定中有明确的取证要求。

(1)符合电子数据取证原则。《电子数据司法鉴定通用实施规范》SF/Z JD0400001-2014 中明确规定了电子数据鉴定基本原则,包括原始性原则、完整性原则、安全性原则、可靠性原则、可重现原则、可追溯原则以及及时性原则。基于DMA 技术的内存取证方法利用外部设备进行内存提取,首先保证了被取证设备内存的完整性和原始性,同时该方法具有安全、可靠以及可重现等特点,能够符合电子数据鉴定基本原则的规定。

(2)符合电子数据证据获取规范。《电子数据证据现场获取通用规范》SF/Z JD0400002——2015 中明确规定了易丢失数据的提取和固定步骤,同时提出了利用计算电子数据和存储介质的完整性校验值进行完整性校验。从取证方法上来看,基于DMA 技术的内存取证方法能够满足该规范要求。

(3)多种取证方法的原则性比较,如表1所示,通过与休眠文件、崩溃转储等方法进行比较发现,本文中提出的方法具有一定的可操作性和可靠性,便于在司法鉴定过程中进行实施。

表1:多种取证方法原则性比较

5 结语

内存取证技术是当前计算机取证技术的重要组成部分,也是目前取证领域的研究热点,本文从动态内存读取技术原理的角度出发,通过利用Windows 主机中的雷电3、Express Car 等接口,结合动态内存读取技术,有效地进行内存固定与提取,同时针对易失数据证据固定中的相关规范文件,对该方法从取证原则到方法步骤进行对比,符合司法鉴定的相关要求。

猜你喜欢
司法鉴定内存计算机
计算机操作系统
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
基于计算机自然语言处理的机器翻译技术应用与简介
“春夏秋冬”的内存
信息系统审计中计算机审计的应用
肌电图在司法鉴定中的应用(续)
肌电图在司法鉴定中的应用(续)
肌电图在司法鉴定中的应用(续)
肌电图在司法鉴定中的应用(续)
Fresnel衍射的计算机模拟演示