内存取证原理与实践
上QQ阅读APP看书,第一时间看更新

1.3 计算机取证类型

计算机取证包括证据获取和证据分析等,需要获取的内容以电子数据的形式存在。计算机取证的主要对象和层次如图1-1所示。根据获取电子数据的时机,计算机取证一般分为离线方式和在线方式。

图1-1 取证内容

1.3.1 离线取证

离线方式是指在关闭计算机或电子设备后,对相关数据进行取证,这是传统的取证方式。早期的取证流程和规范规定:首先,使用切断计算机电源的方式关闭计算机和电子设备,最大程度上保持电子数据的原始状态;其次,对存储介质进行比特对比特的镜像复制;然后,分析存储介质副本中的静态数据和文件系统中的数据,从中分析得到需要的电子证据。例如,可以通过恢复删除的数据或者文件碎片的方式,分析出文件的访问模式、浏览器的访问活动等。至今,这种方式仍然是应用最广泛的一种计算机取证技术,应用于打击计算机网络犯罪、反恐等重要领域。

单一的离线取证方式存在一些显而易见的不足。

首先,仅进行离线取证而没有获取易失性数据,会丢失案件关键信息。

当关闭计算机或电子设备时,当前系统的进程信息、当前登录的用户信息、网络连接状态、系统的内存信息等信息将丢失,而这些信息往往在调查网络犯罪的过程中有着不可替代的作用。

其次,在许多情况下,离线取证无法获取数据。

例如,现在Windows操作系统提供了BitLocker驱动器加密技术,加密整个Windows操作系统卷,用于保护用户的硬盘数据。取证时,硬盘被锁定且不知道密码的情况下,就很难获取数据。另外,很多硬盘也使用了BIOS加密,设置了硬盘的数据访问锁,必须在对应的主板且知道密码的情况下才能访问硬盘数据。这些加密保护的情况,必须对相应的加密系统进行破解,有时还需要针对硬盘的固件进行破解,才能最终访问硬盘数据,给取证工作带来很大的困难。

再次,很多应用场景中,如网吧等,用户可能会用预装操作系统的光盘(如Windows下定制的Windows PE、Linux下的Knoppix等)使用计算机,运行时候的数据并不保存在本地硬盘。

在云计算情况下,用户通过计算机、手机等方式接入数据中心,运算和存储大部分都在云端,本地硬盘中的有用数据极少,但由于受到国别、地域、法律、技术难度等种种限制,几乎不可能对云计算中心进行取证。

诸如此类的情况还可以列举出许多,这种情况下,在线取证就成为获取证据的唯一手段。

最后,磁盘镜像模式在很多情况下难以实施。

硬盘发展至今已经有几十年的历史,硬盘的体积越来越小而容量越来越大,从兆字节(MB)为单位到吉字节(GB),发展到现阶段的太字节(TB)阶段,可以预计在单个硬盘的容量扩充技术还会继续增长。目前的磁盘镜像技术,在复制速度上很难跟上存储容量的发展,往往需要花费大量的时间。在有时间要求的情况下,完全磁盘镜像模式难以实施。

现在,人类已经步入一个数字化的信息时代。IT在各个领域中正处于前所未有的关键地位,各种业务数据的数据量呈几何级增加。为了长时间存储并确保这些数据的可访问性,设计了各种存储技术架构,如磁盘阵列、分布式存储等复杂的海量存储解决方案。随着云计算、移动计算等技术的发展,短信、电子邮件、文档、图片、视频、社交网络等数据更是急剧增长。云环境下,往往采用虚拟桌面技术,工作是在设备上进行,但是信息数据保存在云端,采用云存储服务等复杂的海量存储系统。这些系统的复杂程度和海量的存储量导致在取证时,完全进行镜像难以实施。

另外,在实际工作中,有些情况是无法静态进行磁盘镜像的。例如,对需要保障连续运行的系统,中断系统的代价十分昂贵,会造成巨大的声誉和金钱损失。

1.3.2 在线取证

在上述情况下,在线取证(Live Forensics)方式越来越受到人们的重视。在线取证是在不关闭目标计算机或电子设备的情况下,获得目标计算机内存、磁盘等存储介质中的电子数据,并进行分析呈现的取证方式。在线取证的核心任务是获取计算机上的系统进程信息、加载的驱动程序、网络连接状况、当前打开的文件等易失性数据(Volatile Data),这些信息是信息安全事件追查、入侵取证分析的关键要素,而这些信息都驻留在计算机物理内存中,随着宕机或系统重启,这些信息将丢失。

计算机在线取证一般需要获取以下几方面的信息。

(1)内存信息:整个物理内存;每个应用程序使用的内存。

(2)网络连接状态:包括打开的端口,与打开端口相对应应用程序、当前和最近的连接、共享目录、文件、网络配置信息、路由信息、netbios信息等。

(3)进程信息:正在运行的进程信息;每个进程加载的动态链接库;进程打开的文件;线程信息。

(4)文件信息:所有文件的创建、修改和访问时间;隐藏文件;远程打开的文件。

(5)用户信息:当前登录到系统的用户,登录记录。

(6)系统信息:OS版本、OS序列号、OS安装时间、系统时间、时区设置以及输入法设置;正在运行的服务;所有已安装的服务信息;历史开机时间、系统启动时间、环境变量;驱动程序信息;开机自动启动信息:包括DOS自动加载程序、Windows启动加载选项;USB等设备使用记录;硬盘信息。

(7)应用程序信息。

(8)应用程序的密码、登录系统的密码。

可以看出,计算机在线取证的任务是获取计算机内存和页面交换文件中存在的易失信息。早期的在线取证方式,很自然地采取一种直接方式,即针对需要获取的具体数据,分别开发相应的取证工具,直接在目标计算机系统中获取信息。在实际在线取证过程中,根据每次取证的需求,分析判断取证的步骤、采用的工具、保存的方法,制定具体的取证方案,实施在线取证。这种方式可以满足获取信息的需求,但是从计算机取证的角度看,存在一些不足。

(1)获取的在线证据的正确性难以保证。

进行在线取证过程中,一方面要根据每次在线取证的需要,分析系统,判断出需要提取的信息,然后运行相应工具获得证据,这个过程受到分析人员水平、工具本身以及反取证技术的影响,最后得到的结果正确性难以保证;另一方面,在线取证工具受到核心态木马和病毒的影响,得到的数据可能是已被恶意程序篡改过的数据。

(2)时间长,存在丢失内存中和硬盘上有用信息的风险。

由于目前的在线取证工具,如Helix等工具在获取证据时,需要持续的时间比较长,很可能覆盖内存中可疑的信息。同时,恶意攻击者也可能在这段时间删除或破坏硬盘上的有用信息。

(3)易引起数据混淆。

当多个在线取证工具运行在目标系统中时,将不可避免地改变系统的数据和状态,容易引起数据混淆,破坏了取证应尽量不影响原始现场的原则。

(4)方法不科学,依赖于一次过程,得到的证据结果难以质疑和检验。

在线证据获取的过程中,同时包含收集、保存和分析等步骤,取证的过程阶段难以划分。获取得到的证据,在法庭上往往会受到种种质疑。例如,如何证明在线取证时的分析判断过程是科学的,获取证据的工具是否是科学、可信的,获取到的结果是否与需要证明的结论是相关的,是否忽略了能提供相反意见的数据等。这些问题因取证的现场已经消失(当时正在运行的计算机系统),无法通过与其他技术专家的重新检测、分析进行质证,不能得到验证,证据的科学性和可信度会降低。