作者简介: 田志宏, (1978—), 男(汉), 副教授, 黑龙江。E-mail:tianzhihong@hit.edu.cn
基于实时取证的思想,提出了一种支持犯罪重现的按需取证技术—DFR2(on-demand forensic technology support for rollback recovery)。基于按需取证概念, DFR2缩小了处理范围、缩短了取证时间,基于对象依赖技术的多源证据推理融合算法,提取出完整的攻击流程,提高了证据关联性。此外,还将犯罪重现引入计算机取证领域,有效地解决了电子证据证明力不足的问题。实验分析结果表明: 与当前主流的取证方法Snare相比, DFR2不仅支持按需取证、犯罪重现等功能,且在进行系统调用劫持过程中的平均性能开销降低约5%左右。
A system, DFR2 (on-demand forensic technology support for rollback recovery), is developed to obtain on demand real-time evidence from crimes to support rollback recovery. The Linux based system for obtaining evidence uses different methods and objects which are logically based on their different environments to narrow down the range of treatments, to shorten the investigations and evidence acquisition, and to improve the effectiveness of the evidence. The system also supports rollback recovery of the file system data to minimize intrusion losses. Compared with existing method Snare, the results have improved function and performance with reducing 5% cost during robbing process.
随着计算机技术的飞速发展,人类社会对数字信息的依赖达到前所未有的程度。与此同时,计算机犯罪率也以惊人的速度增长,打击计算机犯罪的关键是找到有说服力和法律效力的电子证据。因此,计算机和法学的交叉学科—计算机取证(computer forensics)受到了越来越多的关注,作为计算机安全领域中的一个全新的分支,已逐渐成为FIRST(forum of incident response and security teams)安全年会的研究热点。
就研究方法而言,事后取证[1]是目前普遍采用的取证方式,即在犯罪行为发生后,取证专家对可疑计算机开展数据恢复、数据获取、分析鉴定等取证调查工作,收集所有证据进行事件重构。
与传统的犯罪形式不同,计算机犯罪行为人多是受过一定教育和技术训练,他们会想方设法利用计算机数据易篡改、易伪造等特点,制造假象、隐匿或销毁与其犯罪行为相关的罪证,加之系统中的某些事件,如进程通信和内存使用情况等不易在被攻击的系统中留下事后证据,这些因素都使得事后证据的提取工作变得非常困难。综上,根据当前司法应用和国家安全需要进行计算机取证技术的相关研究是信息安全的重要发展方向,对于有力打击计算机犯罪案件、维护国家安全、保障社会稳定和繁荣都有非常重要的现实意义。
为此,基于实时取证的思想,本文提出一种支持犯罪重现的按需取证技术—DFR2 (on-demand forensic technology support for rollback recovery)。在Linux操作系统下, DFR2基于按需取证的概念,即在取证之初根据不同取证环境合理设置取证方法及对象,以达到缩小处理范围、缩短调查取证时间、提高证据有效性的目的。DFR2的另一特色是支持文件系统数据的犯罪重现操作,能够把入侵损失降低到最低限度。
90年代中后期,计算机取证进入了初步发展阶段,在市场的强烈需求下,出现了一大批以Encase[2]、TCT[3](the coroner's toolkit)、 NTI(new technologies incorporated)[4]以及FTK[5](forensic toolkit)为代表的计算机取证工具等。 这些工具以可能含有犯罪证据的非在线计算机为分析目标,主要采用磁盘镜像备份、磁盘数据浏览和搜索、存储设备的数据恢复、隐藏数据的再现和加密数据的解密等技术,调查发现犯罪行为的相关信息。而系统中的某些事件,如文件修改、进程中断、内部进程通信和内存使用情况等,或许不会在系统中留下事后证据。为了支持取证调查人员得出具有较强的确定性结论,需要实时记录系统事件以获取全面而充分的证据。
实时取证概念的提出有效弥补了上述不足,基于虚拟机监控技术, ReVirt[6]通过记录所有运行在虚拟机上的宿主操作系统的指令执行过程,实现了一个入侵分析框架,尽管ReVirt提供了详尽的系统运行日志记录,供取证调查分析人员进行日志浏览和简单的事件查询,但缺乏有效的自动取证分析机制,把分析留给取证调查者。此外, ReVirt需要虚拟机的支持,因此并不适用于对性能开销要求较高的应用。
作为ReVirt工作的延续, Backtracker[7]以进程、文件和文件名为监控对象,利用虚拟机记录write、 read、 fork及execve等系统调用,按时序及对象间的依赖关系,从入侵检测点开始自动关联入侵动作序列,并以可视化的方式向调查人员展示从引起系统被攻击的检测点开始的整个入侵过程。在Backtracker的研究基础上, Francois等[8]进一步提高了的对象事件取证粒度,使用文件读写偏移量参数来确定一个进程是否读取一个以前曾经被另一个进程修改过的文件的一部分,还结合动态程序切片技术对取证结果进行剪枝,相比Backtracker极大减少了搜索空间、搜索时间和错误依赖。但它们均未考虑电子证据的安全存储和取证进程的安全保护,证据的可信性无法保证。
Snare[9]通过一个运行在Linux操作系统的可动态加载的内核模块提供系统调用级的事件审计和事件日志的功能,并提供了基于Web的客户端界面,供取证调查分析人员进行日志浏览和简单的事件查询。但它不提供任何对于事件序列重构的自动取证分析,把分析任务留给对高一层的系统事件进行观察的调查人员,因此Snare仅仅是一个系统事件审计的基础平台。
基于Snare框架, Forensix[10]监控与进程、文件和网络相关的系统调用事件以及进程PID(process identifier)、 时间戳、返回值、参数,从而提高取证分析的准确度。与Backtracker不同, Forensix依赖关系数据库查询技术自动检索与攻击相关的所有事件序列。为防止审计日志遭入侵者篡改, Forensix的日志并不在被取证的目标主机存放,而是存储于后端MySQL数据库中,并分别在目标主机和后端数据库上安装LIDS(linux intrusion detection system)[11],以保证取证服务自身的安全性。但Forensix不能监测内存映射对象中的相关操作, Meghanathan等[12]虽给出了一种对共享内存映射进行监控的解决办法,但是对于取证模块的部署、安全保护等核心问题均没有提及。
针对取证模块的部署及安全保护等问题, SeFOS[13]根据实时取证思想,提出了一个较为完整的电子证据获取与存储框架,建立了取证行为和模型,并基于安全操作系统实现了取证进程的安全保护以及证据数据的安全存储。孙波等[14]则采用改进的强访问控制方法构建内核层的安全隔离环境,并以此保护电子证据和取证进程,但该方法实现复杂,且附加的检查操作还会增加系统开销,在资源访问的时间开销测试中平均性能损失为6.3%, 而处理服务请求的时间开销测试中平均性能损失更是达到25.4%。
表1列出了DFR2与当前较为流行的几种主机取证机制在安全性、可扩展性、是否支持按需取证、犯罪重现等功能方面的横向对比。
![]() | 表1 各取证系统功能比较结果 |
DFR2的体系架构如图1所示,从中可以看出数据流和控制流的走向及其层次关系。物理结构上, DFR2由2大部分组成,分别是取证前端(forensic front-end)和取证后端(forensic back-end), 取证前端即取证目标系统,主要负责证据数据的采集,而取证后端为负责证据数据存储的关系数据库,二者通过网络相互连接。
逻辑结构上, DFR2主要包括事件采集、需求控制、取证分析、数据重现等多个组件: 其中用户进程是DFR2的取证目标集合; 需求控制组件是一系列用户层函数库,为事件采集组件提供策略; 事件采集组件则根据取证策略实时且高效地获取用户进程产生的底层系统调用数据; 安全防护组件负责DFR2取证服务的安全保护以及取证前后端数据的安全传输; 证据数据的格式化、整理以及封装则由日志生成组件和数据发送组件完成; 最终由网卡驱动模块将证据数据以UDP(user datagram protocol)协议传输至取证后端的证据数据接收组件; 通过批量加载组件将证据数据被写入关系数据库中,为取证分析组件和犯罪重现组件提供数据支撑。
DFR2各组件间层次分明,各自拥有完善的独立接口,保证了DFR2的高度模块化; 需求控制组件提供的编程接口屏蔽了底层的实现细节,方便上层应用软件的升级和移植; 取证前后端物理上相互独立的设计使得DFR2具有良好的可扩展性,对于更大规模的取证需要,只需增添取证前端,稍加配置即可。
随着计算机弱点数量的日益增加、加之网络上攻击工具和黑客教程随手可得,入侵成本逐渐降低,相比之下,分析计算机入侵并进行取证所花费的代价则要大得多,据伏晓等[15]的统计结果可知,对一般系统而言,每当一个安全事件发生时,平均1 h的攻击流量预计需花费40 h的时间来查找有效证据。且不包括弱点扫描、磁盘映像、系统恢复、系统强化等花费的时间。
解决之道在于在取证目标系统中预先做好证据的收集工作,即在取证之初根据不同取证环境制定取证需求,并合理设置取证方法及对象。基于软件工程和安全工程思想,孙波等[14]将需求以场景和组件的形式进行定义,并给出了对取证过程需求进行分组归类的一般方法,然而其对于场景和组件的刻画不够细致和全面,缺乏实用性。尽管如此,将需求作为一个独立因素提出,为计算机取证领域的进一步发展做出了宝贵的贡献,本文的研究参考了其思想。
在DFR2中,需求控制组件将取证需求以事件和对象的形式进行定义,对象是取证过程中最基本取证单位,事件则是取证需求的具体表现形式,由对象的属性描述及各对象间的逻辑关系构成。
与系统调用分类方式相对应, DFR2支持的取证对象包括: 文件、进程、信号和网络这4类。各对象通过其自身特性抽象出的不同属性加以描述。例如: 进程对象的属性包含进程ID(identifier)、 子进程ID以及UID(user identifier)等; 网络对象的属性包含具体协议及四元组(源地址、目的地址、源端口和目的端口)等信息; 文件对象则包含文件名、目录名和是否包含子目录等属性。
为方便上层应用软件的升级和移植,需求控制组件屏蔽了底层的实现细节,将事件和对象以接口函数(具体分为3类: 事件管理、逻辑运算和对象操作)的形式提供给用户,通过API函数调用,可以很容易地实现取证策略的按需定制。
DFR2取证需求制定过程可依次分为以下阶段: 现实取证环境分析、确定取证环境、确定取证目标并调用上述API编写具体的取证需求。图2为用户在取证之初根据取证环境所制定的取证需求实例。
在具体实现中,需求控制组件还采用系统调用ioctl完成用户态下编写的取证需求到内核逻辑设备事件采集组件之间的传递,从而实现了取证需求的动态增加、删除和修改,极大地提高了DFR2的可用性和灵活性。
合理制定取证需求之后, DFR2将所采集的事件以证据向量EV的形式存储于后端的数据库中,供取证分析组件进行证据分析和关联操作并重构整个入侵过程,最终以证据图的表现形式提交给调查取证人员。首先给出一系列相关概念及定义。
定义1 对象依赖 对象依赖OD(object dependency)可以定义为一个三元组OD=<Source,Sink,Operation>, 记为Source
根据对象依赖的定义, DFR2将每个证据向量EV用对象依赖加以描述,例如: 进程parent创建了一个子进程child, 则用对象依赖可表示为parent
根据系统调用分类不难看出,在DFR2中共存在4种对象依赖关系。分别是进程/进程对象依赖、进程/文件系统对象依赖、进程/网络对象依赖、进程/信号对象依赖。因此, Source一般指进程对象,而Sink则可以是进程、信号、文件系统和网络对象中的任意一个, Operation为相应的系统调用。图3描绘了DFR2中各对象间的依赖关系转换图。
定义2 证据图 证据图EG(evidence graph)是一个有向图,定义为一个二元组EG=< N, E>, 其中: N是节点集合,包含对象依赖OD中全部对象(主体和客体), E是边集合。若$ n1, n2∈ N, 且满足 n1依赖于 n2, 即 n1
证据图给出了对象之间依赖关系的最直观表示,因此取证分析操作就等价于尽可能全面地生成证据图。为方便取证分析人员更快更准地发现证据图中的关键对象节点,使之有针对性地快速定位入侵过程中的关键步骤,继续定义3个图操作。
定义3 前驱图操作 给定一个证据图EG=< N, E>以及一个对象节点 n∈ N, 则前驱图操作precedent( n,EG)返回一个EG的最大子图PG=< N', E'>, 满足
1) n∈ N';
2) 对 "n'∈ N'且 n'¹n, 都存在一条从 n'到 n的有向边;
3) 对 "e∈ E', 都在从 n'到 n的路径上。
图PG称作节点 n关于证据图EG的前驱图。
定义4 后继图操作 给定一个证据图EG=< N, E>以及一个对象节点 n∈ N, 则后继图操作subsequent( n,EG)返回一个EG的最大子图SG=< N', E'>, 满足
1) n∈ N';
2) 对 "n'∈ N'且 n'¹n, 都存在一条从 n到 n'的有向边;
3) 对 "e∈ E', 都在从 n到 n'的路径上。
图SG称作节点 n关于证据图EG的后继图。
定义5 关键点操作 给定一个证据图EG=< N, E>以及一个对象节点 n∈ N, 则关键点操作key( n,EG)返回一个EG的最大子图KG=< N', E'>, 满足
1) n∈ N';
2) 对" n'∈ N'且 n'¹n, 都存在一条从 n到 n'或从 n'到 n的有向边;
3) 对 "e∈ E', 都在从 n到 n'或从 n'到 n的路径上。
图KG称作节点 n关于证据图EG的关键点图。
图4描述了3个图操作PG、 SG和KG的详细过程,在这个例子中,关键节点对象是由黑色圆圈标识的进程C。显然,关键点操作等价于前驱图操作和后继图操作的并集,即key( n,EG)=precedent( n,EG)∪subsequent( n,EG)。
基于对象依赖关系,取证分析组件通过聚焦和分析2个阶段的操作来实现入侵过程的重构,并以证据图的形式呈现证据。
1) 聚焦阶段: 利用数据查询语句在数据库中检索出指定时间范围内、指定进程PID的所有证据向量EV。由于操作系统中的PID、 INODE(index node)等数据结构的取值都是循环计数的,因此如不限定时间范围,则可能导致2个PID值相同的证据向量所指代的进程却不相同,从而影响取证分析结果的准确性。
2) 分析阶段: 根据对象依赖定义,将聚焦阶段产生的证据向量转换为对象依赖关系,并执行算法1构建证据图,最后执行算法2进一步去掉证据图中的错误依赖关系,以提高证据的可信性和可靠性。
输入: 聚焦阶段产生的证据向量结果集set(EV)
输出: 证据图EG
(1) foreach elementv in set(EV) {
(2) convert v to object dependency Source⇒Sink;
(3) flag=0;
(4) foreach object O in graph EG{
(5) IF Source== O {flag ++; BREAK;}
(6) }
(7) IF (flag!=0) add object Source to graph EG;
(8) flag=0;
(9) foreach object O in graph EG{
(10) if Sink== O {flag ++; BREAK;}
(11) }
(12) IF (flag!=0) add object Sink to graph EG;
(13) add edge from Source object to Sink object;
(14) }
(15) RETURN EG;
算法1 证据图构建算法
输入: 聚焦阶段产生的证据向量结果集set(EV) 和待剪枝的证据图EG
输出: 剪枝后的证据图EG
(1) foreach elementv in set(EV) {
(2) IF v.revl==0 or v.mapped==0; {
(3) convert v to object dependency Source⇒Sink;
(4) delete the edge from object Source to object Sink in graph EG;
(5) }
(6) }
(7) RETURN EG;
算法2 证据图剪枝算法
取证前后端独立运行的模式,使DFR2具有良好的可扩展性。针对跳板攻击的取证需要,只需在跳板上分别添加取证前端即可,各取证前端所产生的证据向量则由id字段加以区分。此外,取证分析服务组件还支持多源证据向量的自动融合,实现对跳板攻击类型进行取证的目的。
在多源证据融合的设计中, 2个问题尤为关键:
1) 证据图合并问题,多源证据融合的本质是将多个有关联关系的证据图进行合并,给定一个取证主机上生成的证据图,需解决与之相关的其他跳板主机的证据图关联问题。DFR2的解决办法是,由于各跳板主机利用网络数据通信进行交互,因此只需关注证据图中的网络对象,并根据与之进行数据交互的主机的地址信息来查找相关联的证据图,向攻击源头方向的查找过程称为后向追踪,而远离攻击源头方向的查找过程称为前向追踪。图5列举了涉及5台主机的跳板攻击,假设已经获得主机 C的证据图,通过后向追踪可找到主机 B和主机 A的证据图,继续执行前向追踪又可找到主机 D和主机 E的证据图。
2) 准确性问题,通过网络数据交互虽然可以发现关联主机,但无法保证准确性。例如: 如果一个Apache服务器的httpd进程被缓冲区溢出攻击,通过关注非法请求,可以发现入侵者所在的主机并进行正确的证据图合并。然而正常请求也会将合法用户的主机关联起来,最终导致产生错误的证据图。由于缓冲区溢出是最为普遍的获得特权提升的攻击方式,因此, DFR2只关联那些存在缓冲区溢出特征的数据交互的主机,从而使上述问题得到了妥善解决。
在刑事司法领域,犯罪重现技术正作为提高证据证明力的有力途径而被刑事专家广泛采用。DFR2 的犯罪重现组件提供了一种自动的、基于数据回放的文件系统级犯罪重现功能,其核心思想是: 从某时刻的文件系统检查点开始,根据证据向量对系统按时序进行系统调用回放,回放过程中忽略入侵者的恶意行为,只处理合法用户的正常操作,以此达到数据恢复的最终目的。由于针对文件系统的读操作不改变系统安全属性,因此在数据回放过程中忽略所有读操作,以此降低复杂性、提高数据回放的性能。执行犯罪重现的具体操作步骤如下:
步骤1 将系统恢复至距恢复点最近的检查点。
步骤2 从数据库中检索出时间戳在检查点到恢复点之间的所有证据向量,对于那些客体(Sink)为文件系统对象的证据向量,判断其客体是否为取证分析组件产生的证据图的节点,是则标记。
步骤3 除Operation为读操作以及步骤②标记过的向量外,对每个客体按时序依次进行数据回放。
图6详细描述了犯罪重现的操作流程。其中A、 C表示文件系统对象、 B表示进程对象、 D表示网络对象、 W为写操作, R为读操作。
图中黑色节点表示证据图中的节点,即相应的对象已经被入侵者攻击。最后,过滤掉读操作和恶意系统调用之后,对象A的恢复过程包含5个数据回放动作,而对象C的恢复过程仅包含4个数据回放动作。
由于电子证据收集系统往往存在于被攻击主机上,因此不同于传统的犯罪证据,电子证据更容易消失和被破坏,其完整性和真实性很难得到充分保障。为使电子证据能够作为定案的依据,取证机制自身的安全性是首要考虑的问题。
传统的安全防护方法的出发点均假定入侵者已知系统中有取证机制正在运行,且一旦获得系统管理权限后,入侵者必会发动针对取证机制自身的攻击,试图使之失效。从而引出了安全性检查等额外操作,导致系统开销增加。因此, DFR2提出了一种轻量级安全性增强技术,从防止取证机制被入侵者发现的角度入手,致力于提高取证机制自身的隐蔽性,从而规避了复杂且频繁的安全性检查操作,直接降低了实现难度和性能开销。
在具体实现上, DFR2采用模块隐藏、流量隐藏技术提高隐蔽性。借鉴著名的RootKit工具Knark和Adore, DFR2通过操作内核模块管理链表,并禁止模块符号信息导出的方法实现了证据数据采集的核心部件的隐藏。另外,由于证据数据要经过网络接口传输到取证后端,为防止入侵者利用netstat-e或ifconfig等工具发现流量上的变化, DFR2重写了虚拟文件/proc/net/dev中的统计数据,过滤了证据数据引发的流量变化。
然而,通过性能分析手段仍然可以检测到系统中的取证机制,例如: 入侵者可以频繁快速的读取空设备/dev/null, 同时通过监测CPU占用率是否大幅度提升来判断内核审计功能存在与否。解决之道在于剔除DFR2的性能瓶颈,降低资源开销。出于通用性考虑,操作系统协议栈在实现上效率往往很低,因此,在证据数据发送的关键路径中, DFR2直接调用网卡驱动的数据发送方法hard_start_xmit, 通过旁路协议栈的干预有效地消除了系统的通信瓶颈。实际上,只要合理使用DFR2提供的按需取证机制,有针对性的制定取证策略和目标,也完全能够解决上述例子中利用频繁读写空设备/dev/null所导致的性能颠簸来发现取证服务的问题,同时还可以有效预防由大量无效数据所引起的针对取证系统的拒绝服务攻击。
为进一步检验DFR2的有效性,本文在Red Hat Enterprise Linux AS release 3(内核版本2.4.21, 文件系统类型为EXT3)上用C语言开发了DFR2原型系统,选取MySQL作为取证后端的数据库,选用曙光服务器(Intel(R) Xeon(TM) 2.40 GHz(SMP), 4 G MEM)为测试环境。
首先,从制定取证需求,缩小证据范围的角度对按需取证机制对DFR2进行了测试。为说明测试效果, DFR2中增加了记录syslog的调试信息,以此来增加系统的负载。统计了10 h的DFR2运行结果发现,取证后端平均1 h获得的包数为30 146个。分析得知,大量的信息是由于服务syslogd和sendmail记录日志文件所产生的open和writev系统调用数据。因此,增加对目标文件/var/log/procmail。log和 /var/log/maillog不进行取证的按需取证策略之后,取证后端平均1 h获得的包数为2 201个,降低近92.7%, 有效缩小了证据数据查找范围。
图7给出了取证分析组件进行证据分析和关联操作并对入侵过程进行犯罪重现的实例,可视化部分利用Graphviz工具完成。从图中可以清晰地看出攻击者的攻击过程,首先是利用useradd和groupadd命令增加系统管理用户及设定相应权限,继而通过passwd重新设置了用户口令。为了进一步安装攻击脚本,用命令uname查看了内核版本信息,之后通过FTP在远程主机172.16.*.*下载了admin.vbs脚本,并分别编写了cnnsc.asp和ggsm.asp这2个webshell, 利用这2个webshell, 可以方便地操作服务器上的文件。接下来,该攻击者通过执行tar和gzip命令将vbs脚本和winshell打包为hk.tgz, 并转移到/usr/local目录下面进行备份,便于日后继续使用该后门。最后,攻击者删除/root/.bash_history文件,销毁了历史命令记录。
图8显示了在多源证据融合的测试中得到的一组DoS(denial of service)溢出攻击的证据图。DFR2首先根据通过网络数据交互关系发现关联主机,从而确定了攻击目标是207.103.*.*这台主机。继而DFR2发现系统中记录了很多AR利用SQLSERVER的UDP溢出攻击记录,由此可以判断网络中存在相应的DoS溢出攻击,继而检查溢出数据包的源地址,并利用Graphviz工具刻画出相应的证据图。
最后,采用虚拟机VMware来辅助完成犯罪重现的功能测试,首先在虚拟机上部署DFR2系统,并利用VMware的快照存储功能记录 t1时刻的系统快照,然后在 t2时刻模拟攻击者在虚拟机上安装用于数据包构造和发送的libnet函数库与用于协议还原的libnids函数库,上述过程分别在/usr/include/与/usr/local/include目录下建立了下拷贝了若干头文件,并拷贝编译好的静态库libnet.a与libnids.a至系统目录/usr/lib/和/usr/local/lib下。在 t3时刻选择DFR2的犯罪重现功能后,系统状态得到还原,从而DFR2的犯罪重现功能得到了验证。
与DFR2的事件采集功能类似, Snare也是通过一个运行在Linux操作系统的可动态加载的内核模块提供系统调用级的事件审计和事件日志的功能,由于Snare开源,因此被许多著名取证分析软件作为基础底层事件采集平台(如forensix), 具有很强的代表性,因此,采用Snare和DFR2进行了对比测试,并收集了不增加系统调用劫持情况下, Linux操作系统原始的系统调用延迟数据,以此说明Snare和DFR2在进行系统调用劫持过程中的性能开销对比。图9给出了测试结果(Snare没有对old_mmap系统调用进行处理,因此图中没有标注)。图中Linux作为Linux从图中可以看出,增加审计功能后,系统调用的处理延迟有所增加,对比于Snare, 除系统调用mkdir外, DFR2在处理每个系统调用的延迟时间都要优于Snare。
由于磁盘的读写性能是影响系统的主要瓶颈,为从宏观角度衡量DFR2对目标系统的性能影响,利用执行磁盘拷贝命令dd对DFR2进行了相关测试,同时也收集了不增加系统调用劫持情况下, Linux操作系统运行dd命令时的CPU以及内存占用率,以此说明Snare和DFR2在进行系统调用劫持过程中的对操作系统正常工作的影响。测试中dd的输入与输出缓冲区均设置为1 B, 目标文件大小864 Mb。图10和图11分别给出了dd执行过程中Snare和DFR2的CPU和内存占用率的对照关系。显然,增加系统审计功能Snare和DFR2之后, CPU和内存的占用率并无明显提升,对操作系统正常运行的影响很小。
根据当前计算机取证技术没有充分考虑取证需求的按需制定、多源证据链的推理以及犯罪重现等细节致使计算机取证技术难于实际应用和部署的问题,本文通过多源证据链的推理与融合算法,提出了支持犯罪重现的实时取证基础理论和关键功能单元技术与方法DFR2, 在取证理论和方法2个方面取得了一定突破。与已有研究工作相比, DFR2具有如下优势:
1) 可扩展的、模块化的系统架构;
2) 支持按需取证的概念,通过取证之初的合理设置,达到缩短调查取证时间的目的;
3) 支持文件系统数据级的犯罪重现操作,可最大限度降低入侵损失;
4) 采用轻量级的安全性增强技术,有效提高取证系统自身的抗攻击能力。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|