计算机调查取证采集篇
信息技术的高速发展,正在深刻地改变人们的生活,与此同时,人类社会对信息技术的依赖,也带来了巨大的安全风险。计算机犯罪正越来越多的在我们身边发生,这种犯罪行为包括了窃取和破坏数据、传播恶意程序、提供违法信息、诈骗以及恐吓等多种多样的形式。因为计算机罪犯往往可以不受限制的获取进行犯罪所需的专业知识,实施犯案行为不受地域限制,并具有高隐蔽性的特征,所以增长十分迅速。单独依靠信息技术进行安全防御已被证明是远远不足的,我们需要更多的主动性手段来打击和威慑计算机犯罪。
计算机取证(Computer Forensics)将计算机系统视为犯罪现场,运用先进的技术工具,按照规程全面检查计算机系统,提取、保护并分析与计算机犯罪相关的证据,以期据此发起诉讼。计算机取证工作主要围绕以下两个方面进行:证据的获取和证据的分析。本文着重介绍证据采集方面的技术方法、流程和原则。
准备工作
无论如何,我们准备的越充分,就越有可能顺利的完成调查工作,也越有可能保证证据被完整的采集。在这里我们主要介绍需要准备的软件和硬件方面的工具,当然,如果你事先总是在你的背包里放一些记录工作流程、问询信息的空白表格,你的工作肯定会更加有条不紊而且更具专业素质。通常来说调查人员并不拥有超级技能(虽然我们大概都希望拥有),所以我们使用的工具从很大程度上决定了我们的工作能有多出色。
这个世界上有很多操作系统,应该尽量在软件包中准备那些可以跨越这些平台进行取证的工具。同时遵循一个原则,尽量避免使用GUI程序,这类程序必须在操作系统处于运行状态的时候使用,而且对内存和存储介质的操作远比命令行程序复杂,如果在被调查机器上启动了这类程序,天知道我们的证据会变成什么样子;尽管具有丰富功能的顶级软件通常都是GUI形式的,但还是留在分析证据时使用吧。
首先,我们应该制作各种操作系统的基本工具集。这样做主要是因为攻击者通常会替换受害机器的二进制命令,如果利用被调查机器中的程序进行工作,产生的结果可能与期望中的全然不同。各种操作系统的基本命令应该包含什么并没有具体的定式,每个人的习惯和技能都不同,而且随着调查经验的丰富,你肯定会不停的对工具包进行更新。需要注意的是,尽量在合法的机器上制作这些工具盘,并且制作所有程序的MD5校验列表,我们很可能需要在法庭上证明这些工具所产生的结果是可以被接受为证据的。
在采集证据的过程中最主要的工作就是对各种介质进行镜像。Class UNIX环境下,dd是能够完成这项工作的通用命令,尽量在你的工具包里包含各种类型、各种版本Class UNIX系统的dd命令吧,通过它可以很容易地为被调查机器的整个驱动器制作一个镜像。Windows平台上也有很多类似的软件,通常我们选择Ghost来完成这项工作。
用于存放证据的存储介质一定要事先进行处理,使用公认可靠的数据擦除软件进行擦除,以避免介质中的残余数据对证据的分析和取信造成影响。在存储证据时,最常用的硬件设备是移动硬盘,除了应该具备尽量大的容量之外,硬盘盒的接口也应该尽量丰富,至少应该同时拥有IDE、SCSI、PCMCIA等常用接口的移动存储设备。除了移动硬盘之外,软盘、Zip软盘、MO、CD-R等存储介质也应该尽量充实到你的工具箱中,因为我们实在无法知道被调查的机器到底具有怎样的外设。另外,各种存储设备的连接线缆以及网络线缆也应该仔细准备,尽量装满你的背包吧,如果还有缝隙,用你的转接头将它们塞满,这样你就可以经常为你的先见之明而自豪了。除了这些,现在市场上还可以购买到很多专用的调查设备,比如以Forensic MD5为代表的手持式取证设备,以及Forensic Computer出品的便携式取证箱等等,这些产品在复制数据的时候速度很快,具备丰富的让你不敢相信的接口,可以应付各种取证要求,而且便于携带,是计算机取证人员真正的百宝箱。
根据情况做决定
在这里我们需要根据所发生的安全事件类型决定我们应该采取怎样的工作步骤,在一台Internet主机上发现非法的登录和局域网服务器上被隐秘的存放了一些恶意程序明显应该使用不同的方法进行调查。同时我们还需要征询计算机设备拥有方的意见,他们可能想彻底的调查该事件并提出起诉,也可能只想大致评估一下目前的状况可能造成的损失,值得注意的是,即使面对的是后一种情况,我们仍需要对证据进行符合手续的处理,也许几个月后我们的委托人突然觉得,应该教训一下冒犯他的家伙。
生成鉴定副本
在进行实际取证工作的时候我们需要遵循一个重要的原则:“尽量避免在被调查的计算机上进行工作”。一方面是因为我们在犯罪环境中所做的操作越多,我们就越无法证明提取的“证据”还是原来的样子,而对诉讼过程产生影响;更重要的是,我们可能会对“犯罪现场”造成破坏,而永远失去那些证据,也许一个“应该”无害的命令就可能引起侵入者的警觉,或触发了事先设定好的处理机制,导致证据被销毁。所以我们应根据当下了解的情况尽可能早的用规范的手段生成一份鉴定副本,将分析工作留在可以监控、拥有更好设施的实验室中进行。
在已经关机的设备上,我们首先要做的是利用准备的工具为所有的数据介质生成鉴定副本。再次提醒大家,除了尽量避免在被调查的机器上操作,我们也不能在该计算机上进行分析和检查,我们制作鉴定副本的主要目的就是在尽量少接触被调查机器的情况下进行证据分析,对原始介质的操作可能使其完全丧失做为证据的可信性。
有些情况下我们无法获取完整的鉴定副本,例如被调查的机器不支持任何热插拔设备,而内存中重要的罪证正在运行,我们就只有在开机状态来获取证据了。这种情况下需要特别的小心,以避免对证据的破坏。我们应该在整个取证过程中详细的记录操作的步骤、方式、方法和时间等。在开机状态执行取证工作时,应该最先对内存中的内容进行采集,例如可以查看系统进程,或者复制出内存的内容,Windows的页面文件、Linux的proc目录都存储着大量运行时内容,如果成功的抽取了内存中的数据,我们就可以相对放心的生成整个调查介质的MD5校验列表,以证明我们的现场调查没有破坏证据的可靠性。
鉴定副本的管理
我们在获取了所有证据之后,应该妥善封存被调查的机器和设备,连同生成的鉴定副本一同加入“证据保管链”,以待进行下一阶段的分析工作。保管链的意义主要在于每次对被保管物的使用和变更都能够被记录和验证。之所以这样做是因为证明我们的证据没有被有意或无意的行为篡改其实是非常困难的,这就是我们为什么不厌其烦的重申要记录所有的操作信息,而且越详细越好。我们要每时每刻都抱有这样的想法:我们现在做的每一件事情都有可能在将来受到仔细的检查。
我们在实际工作中会为每一项证据(甚至我们的工具包)粘贴保管标签,在保管标签上必须体现的内容包括证据的来源、生成的时间、证据当前的保存位置、证据转手时的位置、证据转手的原因以及保管人和接手人的签字,必要时可以增加第三在场人进行签字以做为证明。因为证据大部分情况下是以数字形式进行保存的,我们还可以利用数字签名技术为证据生成电子指纹,这种方式对于证明原始证据没有被变更是比较有说服力的。