CN103425563B - 基于虚拟化技术的在线i/o电子取证***及其取证方法 - Google Patents

基于虚拟化技术的在线i/o电子取证***及其取证方法 Download PDF

Info

Publication number
CN103425563B
CN103425563B CN201310278529.5A CN201310278529A CN103425563B CN 103425563 B CN103425563 B CN 103425563B CN 201310278529 A CN201310278529 A CN 201310278529A CN 103425563 B CN103425563 B CN 103425563B
Authority
CN
China
Prior art keywords
evidence
collecting
electronic evidence
online
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310278529.5A
Other languages
English (en)
Other versions
CN103425563A (zh
Inventor
钟贤明
项程程
王润泽
戚正伟
管海兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN201310278529.5A priority Critical patent/CN103425563B/zh
Publication of CN103425563A publication Critical patent/CN103425563A/zh
Application granted granted Critical
Publication of CN103425563B publication Critical patent/CN103425563B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

一种基于虚拟化技术的在线I/O电子取证***,包括:静默虚拟化模块:用于动态地创建虚拟机监视器层,把原先计算机操作***悄悄地上托和封装为虚拟机;内存隐藏模块:对于所述的***安装和运行时所占用的物理内存,通过建立私有页表的方式来进行隐藏;和在线I/O电子取证模块:对硬件设备的I/O活动进行监视和拦截,以获得所需的电子证据,及其电子取证方法。本发明在不影响被取证计算机***正常运行的情况下,安全而准确地对针对特定硬件设备的各项I/O活动进行监控和记录,且不需要重新启动或者重装原***;在虚拟机监视器层被创建后,取代操作***而获得对硬件设备的控制权,并且独立运行于更高的特权模式中,从而保证了取证工作的准确性和有效性。

Description

基于虚拟化技术的在线I/O电子取证***及其取证方法
技术领域
本发明涉及电子取证技术领域,具体是一种基于虚拟化技术的在线I/O电子取证***及其取证方法。
背景技术
电子取证技术主要可以被分为静态电子取证技术和在线电子取证技术,两者的不同在于是否需要停止被取证计算机***的运行。静态电子取证技术针对永久性存储介质,比如计算机硬盘,一般通过离线拷贝的方式分析和取证。在线电子取证技术扩大了电子取证的证据搜集范围,囊括了静态电子取证技术所没有涉及到的***运行时信息。
根据在在线电子取证工具本身所处于的运行环境,在线电子取证技术又可以大致地被分为以下三种:基于App形式、基于Kernel形式和基于VMM形式。
基于App形式的在线电子取证工具依赖于操作***本身提供的软件接口,通过直接调用这些***函数,用户程序可以一定程度地获取***信息。在I/O电子取证方面比较著名的有Wireshark软件,该软件能够详细地列出流经当前计算机***的网络数据包,同时提供协议解析功能。但是基于App形式的在线取证工具的不足之处在于,取证工具仅仅是以普通用户程序的形式存在的,虽然易于安装和取证工作者使用,但是其安全性难以保证。恶意软件能够轻易地检测到该类取证工具的存在,然后进行阻挠和攻击破坏。
基于Kernel形式相对于基于App形式的在线电子取证工具来说更加安全可靠,因为它们处于操作***的内核之中,一般的普通用户进程是没有办法检测和干扰到的。电子取证工作者可以设计设备驱动程序来进行特定的取证行为,弥补基于App形式的在线取证工具的一些不足。然而即使是操作***内核也并不是完全安全可靠的,常用商用操作***庞大的代码基不可避免地存在着大量安全漏洞隐患,恶意软件依然可以由此破坏电子取证工作的正常进行。如果基于开源操作***进行定制和设计,不仅工程浩大,而且对于一般用户将不具有普遍通用性。
基于VMM形式的在线电子取证工具利用虚拟化技术特性,把原操作***和用户应用程序封装在独立的虚拟机(VirtualMachine,VM)之中,然后所有的虚拟机交由虚拟机监视器(VirtualMachineMonitor,VMM)控制管理。其中VMM在整个***中占有最高的权限,对所有的硬件设备具有绝对控制权。尤其是近年来硬件辅助虚拟化技术的出现,使得VMM可以运行在CPU特定的模式下,从根本上杜绝了来自用户程序和操作***的攻击。不过基于VMM形式的在线电子取证技术也存在着天然的弊端,因为VMM的建立往往需要先于操作***安装。如果被取证***本身并不存在VMM,那么该类方法将导致原***的重新启动甚至完全重装,对于要求24/7连续工作的商用服务器来说是非常地不利的。
通过检索发现,中国专利文献号CN101645048记载了“计算机虚拟化取证的实现方法”,该发明虽然使用了虚拟化技术,但是实质上只属于静态电子取证技术。因为该发明首先需要卸下被取证***的存储设备,然后复制制作成虚拟机镜像文件供取证专用计算机使用。仅仅是人为地克隆重现了一个类似于原计算机***的运行环境,并不是在线实时地真正在原计算机***上进行电子取证。由该发明所取得的各种***动态信息,包括内存内容、进程列表、网络连接等等,都将与真实的电子证据有所出入。
发明内容
考虑到上述现有在线电子取证技术的不足,本发明提出了一种基于虚拟化技术的在线I/O电子取证***及其取证方法,在不影响被取证计算机***正常运行的前提下,对特定硬件设备的各项I/O活动进行准确而高效的监视和记录,同时严格保证取证工具自身的安全。区别于现有的基于VMM形式在线电子取证技术,本发明无需重新启动或者重新安装被取证***,能够静默地建立虚拟机监视器层,无缝地接管硬件资源的控制权,让原***从裸机环境平滑过度到虚拟化环境。
本发明的技术解决方案如下:
一种基于虚拟化技术的在线I/O电子取证***,其特点是该***包括:
静默虚拟化模块:用于动态地创建虚拟机监视器层,把原先计算机操作***悄悄地上托和封装为虚拟机;
内存隐藏模块:对于本发明***安装和运行时所占用的物理内存,通过建立私有页表的方式来进行隐藏,从而防止用户操作***访问和修改;
在线I/O电子取证模块:对硬件设备的I/O活动进行监视和拦截,以获得所需的电子证据。
利用所述的基于虚拟化技术的在线I/O电子取证***的取证方法,其特征是该方法包括如下步骤:
(1)以普通硬件设备驱动的形式安装上所述的***,在不中断被取证计算机***正常运行的情况下,静默地在被取证计算机***中已有操作***运行情况下建立虚拟机监视器层;
(2)取证工作者根据自身需要和环境要求,针对特定硬件设备的特定I/O活动进行监视和拦截记录。
所述步骤(2)中监视和拦截的硬件设备的I/O活动是某一时刻的I/O活动,或是连续一段时间内的I/O活动。
与现有的电子取证技术相比,本发明具有如下有益效果:在线、安全、针对I/O。本发明借助业界成熟的硬件虚拟化技术,能够在不影响被取证计算机***正常运行的情况下,安全而准确地对针对特定硬件设备的各项I/O活动进行监控和记录。以操作***设备驱动的形式加载建立虚拟机监视器层,不需要重新启动或者重装原***。在虚拟机监视器层被创建后,其取代操作***而获得对硬件设备的控制权,并且独立运行于更高的特权模式中,从而保证了取证工作的准确性和有效性。
附图说明
图1是静默虚拟化技术。
图2是内存隐藏技术。
具体实施方式
本实施例在以本发明技术方案为前提的情况下进行实施,下面对具体的实施方式和操作过程作详细说明。本发明的保护范围包括但不限于这些实施例。
一种基于虚拟化技术的在线I/O电子取证***,包括:
静默虚拟化模块:用于动态地创建虚拟机监视器层,把原先计算机操作***悄悄地上托和封装为虚拟机;
内存隐藏模块:对于本发明***安装和运行时所占用的物理内存,通过建立私有页表的方式来进行隐藏,从而防止用户操作***访问和修改;
在线I/O电子取证模块:对硬件设备的I/O活动进行监视和拦截,以获得所需的电子证据。
静默虚拟化模块的实现基于硬件辅助虚拟化技术,目前主流的硬件辅助虚拟化技术包括Intel公司的IntelVT-x技术和AMD公司的AMD-V技术,我们选择了较为通用的前者。静默虚拟化模块的具体实现流程如图1所示,大致可以被分为以下三个步骤:
(1)首先需要在被取证计算机上开启硬件辅助虚拟化支持。本发明***选用IntelVT-x硬件辅助虚拟化技术,近年来的新一代Intel系列CPU都已经支持该技术。但是默认情况下该技术可能并没有被开启,因此事先需要通过BIOS设置在被取证机器上开启IntelVT-x技术。
(2)接下来在被取证计算机***中通过安装设备驱动的方式,动态而不影响原***运行地载入本发明***。其会在内存中分配和填充虚拟机控制结构(VirtualMachineControlStructure,VMCS)。该数据结构将存放虚拟化后宿主机和客户机的各种信息,指导CPU在两者之间进行预期设定的上下文切换执行。
(3)最后启动虚拟化后的原先计算机***,操作***已经由直接运行于硬件上变为运行于虚拟机中。不过在普通用户以及犯罪分子看来,控制流始终在原先计算机***执行,因此本发明***不会轻易地暴露自身存在。
依赖于静默虚拟化技术,本发明区别于现存的所谓在线电子取证技术,在真正意义上达到在线电子取证的目的。本发明***的安装过程不需要导致被取证计算机***的重新启动和重新安装,而且在电子取证过程中原操作***和用户应用程序的运行也不受影响,完成取证工作后本发明***同样能够轻松地从被取证计算机***中卸载,完全恢复之前的***架构。
内存隐藏模块的本质在于保护本发明取证***在运行的过程中不被其它恶意软件或操作***发现,独立于刚刚被载入时的通用操作***内存空间,从而保证所搜集到的取证结果的真实性和完整性。该技术的具体实现流程如图2所示,同样可以大致地被分为以下三个步骤:
(1)复制原操作***内核部分各级页表内容。一般情况下虚拟机监视器是无法调用虚拟机中操作***的软件接口的,但是通过此项操作本发明***接管原操作***控制权后将仍能够调用操作***的API,借助现有的Windows操作***API能够更加方便地维护私有页表。
(2)修改原操作***页表中的本发明***占用部分为预留空闲页。尽管在载入过程不可避免地留下了少量内存痕迹,但是本发明***能够追踪抹除之前使用的内存页,让原操作***彻底丧失对本发明***内存的操作权,进一步保证了取证工作不会被恶意软件从中破坏。
(3)取消原操作***对其页表的写访问权限。因为在虚拟机监视器层建立以后,事实上操作***已经无法直接改变内存的映射情况,不过我们又需要给上层操作***提供这样一种假象。所以把原操作***页表设为只读,当操作***试图更改页表项内容时,将触发页错误异常陷入到虚拟机监视器中。进而交付虚拟机监视器核对更改内存页面映射,处理完毕后返回操作***运行。
在线电子取证技术面向于被取证计算机***的动态信息,但是现有技术一般仅仅是考虑物理内存内容,对于硬件设备的I/O活动却少有涉及。物理内存内容只能体现被取证计算机***在某一瞬间的状态,无法体现其连续的一段时间内的活动,所以本发明***特定地针对I/O电子取证领域,提供了全方位的技术支持。
计算机***所有硬件设备的I/O访问活动被分为三大类:可编程I/O指令访问(PIO)、I/O内存映射(MMIO)和直接内存访问(DMA)。下面介绍本发明***如何对这三种I/O访问方式进行监控和拦截:
(1)可编程I/O指令访问主要通过I/O指令(比如IN、OUT)指定I/O端口进行不同大小数据的读写,在VMCS中存在一个相应的位图用于控制客户机是否拥有访问该I/O端口的权限。如果位图中某个端口被设为0,说明当客户机尝试访问这个端口时将会触发异常陷入到虚拟机监视器,于是本发明取证***就可以对此次PIO操作进行读取和记录。
(2)考虑到一些物理设备拥有大量的I/O寄存器,如果采用PIO的方式逐一读取设置将非常低效。MMIO提供了批量把物理设备寄存器映射到操作***内存空间的方法,使得对这些设备寄存器的访问读写操作如内存一样。本发明取证***自然而然地通过只读页表方式捕获MMIO操作,即在页表中将这些区域标记为只读,当发生写操作时***同样触发异常交由虚拟机监视器处理。
(3)DMA操作避免了CPU介入,让物理设备能够直接读写内存,大大提高了I/O吞吐效率。该部分是所有I/O电子取证中最为麻烦的,因为既不能像PIO一样利用现有数据结构进行配置,也不能如MMIO一般转化为内存访问拦截。本发明***巧妙地利用了DMA操作与物理设备寄存器之间的关系,根据特定寄存器的值来间接地检测和获取该类操作。
现实的电子取证工作中,并不是所有的物理设备都需要被同时监控,合理地放弃部分无关紧要设备,反而可以增加电子取证的效率。因为特定物理设备所能访问的I/O端口一般事先都可以得知,即使其中存在动态修改也可以通过拦截PCI操作来获取,不同的物理设备之间拥有的I/O端口不会相互覆盖,MMIO涉及的内存地址也相对比较固定,DMA操作则由设备寄存器侧面反应,所以本发明电子取证***可以根据不同的应用环境更改设置,更加具有针对性地面向指定物理设备I/O活动进行电子取证工作。
本发明电子取证***以普通硬件设备驱动的形式安装,中途不会引入明显的被取证***服务中断,用户几乎无法察觉本发明电子取证***的侵入。主要步骤如下:
(1)为了保证安装以前本发明电子取证***的正确性和完整性,将通过只读设备接入安装程序,哈希校验可以进一步地确保准确无误。
(2)随后被取证计算机的操作***负责把本发明电子取证***载入和启动,由此进入虚拟化特权模式。
(3)建立的虚拟机监视器开始为后面的电子取证分配必要的内存和数据结构,同时完成对它们的初始化和相关设置。
(4)根据原操作***的内存页表构造内存隐藏技术所需要的私有页表,修改原操作***页表的可写权限,重新映射本发明取证***占用的内存页。
(5)结束虚拟机监视器的创建过程,定位好原操作***的下一条执行指令(依赖EIP等寄存器),此时已经变成虚拟机的操作***恢复运行。
在安装完成本发明电子取证***后,取证工作者可以进行特定的电子取证行为。根据不同环境下不同的需求,可以针对不同硬件设备的I/O活动进行监视和拦截。键盘和网络是普通用户日常使用计算机过程中几乎不可缺少的部分,对于某些恶意的攻击破坏者而言也是一样,所以接下来我们将介绍这两个实施例。
如前面的技术方案所述,在VMCS中存在一个相应的位图用于控制客户机是否拥有访问该I/O端口的权限,而键盘的工作原理正是通过PIO的形式读写I/O端口来完成。一般的键盘驱动使用0x60作为数据端口,0x64作为控制端口,借助本发明取证***可以方便地对它们进行访问拦截。主要步骤如下:
(1)当用户按下或者释放键盘中的某个按键时,键盘设备向操作***发送硬件中断。
(2)操作***中的中断处理程序将通知键盘驱动程序进行处理,其中包含键盘发送而来的扫描码。
(3)键盘驱动程序尝试读取数据,但是由于本发明取证***的存在,控制流陷入到虚拟机监视器层中。
(4)本发明取证***在虚拟机监视器层截获相关数据,存放在预先分配的内存中供电子取证工作使用。
(5)控制流返回虚拟化的操作***中运行,之后如正常的操作***行为,用户没有任何察觉。
网卡拦截相对于简单的键盘而言更为复杂,但是大致的步骤还是比较类似。网卡所拥有的设备寄存器数量较大,所以一般的网卡驱动都会通过MMIO将其映射到操作***的虚拟内存空间。网卡需要频繁地处理首发数据,因此吞吐能力非常重要,它会使用DMA方式与操作***交互,读取操作***所需要发送的数据包和返回网卡自身从网络中接收到的数据包。考虑到DMA拦截的复杂性,本发明电子取证***借助网卡的特定寄存器来进行网卡监视和拦截,同时接收和发送有所区别:
(1)当有数据包需要由网卡发送时,操作***负责填写对应内存地址到网卡的发送描述符队列,同时更新必要的网卡设备寄存器。因为寄存器被MMIO到了内存空间,所以本发明取证***可以拦截到此操作,记录下当前所需要发送的数据内容。
(2)当有数据包被网卡接收到时,网卡通过DMA直接更新对应的设备寄存器,但是这一过程我们是无法由虚拟机监视器拦截的。本发明取证***是通过网卡的接收描述符队列,每次保留当前的队列索引,下次陷入时就能够获得之间的数据包。因为网卡的数据缓冲区是其独占的,所以不用担心在这段时间内数据会被覆盖丢失。
通过上述步骤,本发明取证***能够静默而安全地被安装到被取证计算机***中,然后由取证工作者指定实际监控和拦截记录的硬件设备对应的I/O活动,不导致任何***服务中断的情况下完成在线电子取证工作。

Claims (3)

1.一种基于虚拟化技术的在线I/O电子取证***,其特征是该***包括:
静默虚拟化模块:用于动态地创建虚拟机监视器层,把原先计算机操作***上托和封装为虚拟机;
内存隐藏模块:对于所述的***安装和运行时所占用的物理内存,通过建立私有页表的方式来进行隐藏;
在线I/O电子取证模块:对硬件设备的I/O内存映射和直接内存访问进行监视和拦截,以获得所需的电子证据。
2.利用权利要求1所述的基于虚拟化技术的在线I/O电子取证***的取证方法,其特征是该方法包括如下步骤:
(1)以普通硬件设备驱动的形式安装上所述的***,在不中断被取证计算机***正常运行的情况下,在被取证计算机***中已有操作***运行情况下建立虚拟机监视器层;
(2)取证工作者根据自身需要和环境要求,针对特定硬件设备的特定I/O活动进行监视和拦截记录。
3.根据权利要求2所述的基于虚拟化技术的在线I/O电子取证方法,其特征是:所述步骤(2)中监视和拦截的硬件设备的I/O活动是某一时刻的I/O活动,或是连续一段时间内的I/O活动。
CN201310278529.5A 2013-07-04 2013-07-04 基于虚拟化技术的在线i/o电子取证***及其取证方法 Active CN103425563B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310278529.5A CN103425563B (zh) 2013-07-04 2013-07-04 基于虚拟化技术的在线i/o电子取证***及其取证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310278529.5A CN103425563B (zh) 2013-07-04 2013-07-04 基于虚拟化技术的在线i/o电子取证***及其取证方法

Publications (2)

Publication Number Publication Date
CN103425563A CN103425563A (zh) 2013-12-04
CN103425563B true CN103425563B (zh) 2016-05-11

Family

ID=49650349

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310278529.5A Active CN103425563B (zh) 2013-07-04 2013-07-04 基于虚拟化技术的在线i/o电子取证***及其取证方法

Country Status (1)

Country Link
CN (1) CN103425563B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021063B (zh) * 2014-05-14 2015-03-11 南京大学 一种基于硬件虚拟化的模块化计算机取证***及其方法
US9851998B2 (en) * 2014-07-30 2017-12-26 Microsoft Technology Licensing, Llc Hypervisor-hosted virtual machine forensics
CN111312005A (zh) * 2020-02-12 2020-06-19 博智安全科技股份有限公司 基于虚拟化技术的电子取证实训平台
CN111814141B (zh) * 2020-09-15 2020-12-18 浙江数秦科技有限公司 一种基于区块链的离线过程取证与存证方法
CN113626148B (zh) * 2021-08-03 2024-02-09 浙江中电远为科技有限公司 一种基于混合虚拟化的终端虚拟机生成***及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101271401A (zh) * 2008-04-23 2008-09-24 北京航空航天大学 一种具备单一***映像的服务器机群***
CN101452407A (zh) * 2007-12-04 2009-06-10 联想(新加坡)私人有限公司 防止vmm***中的uos使sos正在使用的设备断电的***和方法
CN102096786A (zh) * 2011-03-04 2011-06-15 上海交通大学 基于硬件虚拟化的跨平台安全保护***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8079037B2 (en) * 2005-10-11 2011-12-13 Knoa Software, Inc. Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101452407A (zh) * 2007-12-04 2009-06-10 联想(新加坡)私人有限公司 防止vmm***中的uos使sos正在使用的设备断电的***和方法
CN101271401A (zh) * 2008-04-23 2008-09-24 北京航空航天大学 一种具备单一***映像的服务器机群***
CN102096786A (zh) * 2011-03-04 2011-06-15 上海交通大学 基于硬件虚拟化的跨平台安全保护***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于硬件虚拟化反调试的软件保护设计;伊滕飞;《中国硕士学位论文全文数据库信息科技辑》;20101115(第11期);第17-47页 *

Also Published As

Publication number Publication date
CN103425563A (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
US8856473B2 (en) Computer system protection based on virtualization
EP1939754B1 (en) Providing protected access to critical memory regions
JP6761476B2 (ja) 仮想マシンを監査するためのシステムおよび方法
CN105393255B (zh) 用于虚拟机中的恶意软件检测的过程评估
US9507939B1 (en) Systems and methods for batch processing of samples using a bare-metal computer security appliance
US12013939B2 (en) Analysis system, analysis method, analysis device, and storage medium for analyzing operation of a program executed in an analysis environment
Srinivasan et al. Process out-grafting: an efficient" out-of-vm" approach for fine-grained process execution monitoring
CN102147763B (zh) 一种网络日志的记录方法、***及计算机
CN103425563B (zh) 基于虚拟化技术的在线i/o电子取证***及其取证方法
US20140053272A1 (en) Multilevel Introspection of Nested Virtual Machines
CN106970823B (zh) 高效的基于嵌套虚拟化的虚拟机安全保护方法及***
CN105512550A (zh) 用于活跃的操作***内核保护的***和方法
US10061918B2 (en) System, apparatus and method for filtering memory access logging in a processor
US11734430B2 (en) Configuration of a memory controller for copy-on-write with a resource controller
CN106778275A (zh) 基于虚拟化环境下的安全防护方法及***和物理主机
CN104573422A (zh) 一种基于虚拟机的应用进程运行方法及装置
CN103996003A (zh) 一种虚拟化环境中的数据擦除***及方法
US20180157605A1 (en) Configuration of a memory controller for copy-on-write
CN112099916A (zh) 虚拟机数据的迁移方法、装置、计算机设备及存储介质
KR101467877B1 (ko) 하이퍼바이저를 이용한 프로세스 메모리 보안 시스템 및 방법
CN106775941A (zh) 一种虚拟机内核完整性保护方法和装置
CN112329008A (zh) 一种基于内核调试器的虚拟化逃逸防御方法
CN105184158A (zh) 一种提升云计算操作***安全性的方法
Chen et al. DScope: To Reliably and Securely Acquire Live Data from Kernel-Compromised ARM Devices
Stüttgen On the viability of memory forensics in compromised environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant