CN103996003B - 一种虚拟化环境中的数据擦除系统及方法 - Google Patents

一种虚拟化环境中的数据擦除系统及方法 Download PDF

Info

Publication number
CN103996003B
CN103996003B CN201410213759.8A CN201410213759A CN103996003B CN 103996003 B CN103996003 B CN 103996003B CN 201410213759 A CN201410213759 A CN 201410213759A CN 103996003 B CN103996003 B CN 103996003B
Authority
CN
China
Prior art keywords
module
data
event
client
client computer
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
CN201410213759.8A
Other languages
English (en)
Other versions
CN103996003A (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.)
Avicit's Science And Technology Ltd Co
Original Assignee
Avicit's Science And Technology Ltd Co
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 Avicit's Science And Technology Ltd Co filed Critical Avicit's Science And Technology Ltd Co
Priority to CN201410213759.8A priority Critical patent/CN103996003B/zh
Publication of CN103996003A publication Critical patent/CN103996003A/zh
Application granted granted Critical
Publication of CN103996003B publication Critical patent/CN103996003B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种虚拟化环境中的数据擦除系统及方法,属于云计算中的数据安全和用户隐私领域,基于Xen虚拟化架构,包括进程监控模块、控制模块、虚拟机自省模块和数据擦除模块;所述控制模块、虚拟机自省模块和数据擦除模块部署在管理域中,进程监控模块部署在虚拟机管理器,即VMM内核中。本发明用于减小用户客户机运行时内存中存储的敏感数据面临的威胁,用尽可能小的代价,缩短敏感数据被攻击的时间窗口,保障用户的客户机内敏感数据的保密性。

Description

一种虚拟化环境中的数据擦除系统及方法
技术领域
本发明涉及云计算中的数据安全和用户隐私领域,特别是涉及在虚拟化环境下内存中的敏感数据的擦除系统及方法。
背景技术
虚拟化技术通过对计算、网络、存储资源的抽象,不同用户的客户机共享使用硬件资源,提高了资源的利用率,降低了IT管理的成本。然而用户运行在客户机中的进程地址空间内可能含有密码、隐私等敏感数据,现有的研究主要使用加密或者访问控制的方法保护客户机运行过程中内存中的页面内容,这两种保护敏感数据的方法存在以下问题:(1)加解密不可避免地对虚拟化平台运行效率产生影响,需要付出很大的计算成本;(2)访问控制的方法没有考虑到虚拟化环境中的共享属性,虚拟化平台存在虚拟机运行中动态增减内存,释放的内存分配给其他用户的情况,这时便存在敏感数据泄漏的风险;(3)如果程序在开发过程中没有加入释放数据时的数据擦除的功能,包含敏感数据的内存部分在进程释放后依然会存在泄露的风险,无疑增加了敏感数据泄露的时间窗口。
综上所述,迫切需要一种针对用户客户机内存中数据擦除的系统及方法,采用尽可能小的代价,缩短敏感数据被攻击的时间窗口,保障用户客户机内存数据的安全。
发明内容
本发明技术解决问题:克服现有技术的不足,提供一种虚拟化环境中的数据擦除系统及方法,以减小用户客户机运行时内存中存储的敏感数据面临的威胁,用尽可能小的代价,缩短敏感数据被攻击的时间窗口,保障用户的客户机内敏感数据的保密性。
本发明技术解决方案:一种虚拟化环境中的数据擦除系统,其特征在于所述系统采用Xen虚拟机架构,包括控制模块、进程监控模块、虚拟机自省模块和数据擦除模块;所述控制模块、虚拟机自省模块和数据擦除模块部署在管理域中,进程监控模块部署在虚拟机管理器,即VMM内核中;
控制模块:满足云服务提供商或者客户机用户的隐私需求,提供与进程监控模块通信的功能,并通过调用数据擦除模块的数据擦除部分实现数据擦除的功能;该模块包括用户接口部分、监控准备部分、消息监听部分、消息分析与传递部分;其中,用户接口部分提供本系统对外的功能接口;监控准备部分为进程退出事件的监控创建参数存储与传递的空间,并建立起用于事件发生通知的事件通道;消息监听部分通过事件通道监听并接收进程监控模块发送给控制模块的事件通知;消息分析与传递部分分析接收到的事件通知消息,在监控准备部分创建的参数空间中读取客户机id以及进程id,将这些参数传递给数据擦除模块;
进程监控模块:对客户机中进程退出事件进行监视和处理,并把发生进程退出事件的客户机id以及进程id传递给管理域中的控制模块;进程监控模块由控制逻辑设定和事件处理两部分构成,其中控制逻辑设定部分通过对客户机虚拟机控制域(Virtual Machine ControlStructure,简称为VMCS)中调试寄存器以及相关控制位的设置,实现当客户机内发生进程退出事件时引发处理器异常产生虚拟机退出事件(VM_EXIT),该事件被VMM内核截获后调用事件处理部分;事件处理部分实现对管理域和VMM内核参数空间的写入以及与控制模块的交互的功能,当有进程退出事件发生时,事件处理部分将发生进程退出事件的客户机id以及进程id信息写入控制模块创建的管理域与VMM内核的参数空间中,使用事件通道告知控制模块有进程退出事件发生;
虚拟机自省模块:该模块作为控制模块和数据擦除模块的辅助模块存在,提供在管理域读写不同客户机操作系统指定进程地址空间的接口,并提供访问客户机操作系统内部重要对象的接口;该模块包括操作系统识别部分、参数配置部分和数据存取部分;操作系统识别部分负责根据不同的操作系统在内存中数据结构的特点识别操作系统的类型和版本,数据存取部分实现在客户机进程地址空间某地址读取或写入数据,并为其它模块提供数据存取的接口;参数配置部分定义不同类型的客户机操作系统用于内存管理的数据结构在地址空间中的相对地址以及内部关键属性的偏移量;
数据擦除模块:接收控制模块传递过来的客户机id以及退出进程id的参数信息并实现对客户机内某进程数据区域的数据擦除功能;该模块包括消息解析部分,内存数据区遍历部分及数据擦除部分;其中消息解析部分通过控制模块传递的参数信息获得客户机id以及进程的id,识别客户机操作系统的类型以及版本号信息,调用对应的内存数据区遍历函数;内存数据区遍历部分读取虚拟机自省模块设置的客户机操作系统内存管理数据结构的相对地址以及关键属性的偏移量,访问用于进行内存管理的数据结构,实现内存数据区域的遍历;数据擦除部分实现对给定的进程地址空间内容的擦除功能。
一种虚拟化环境中的数据擦除系统实现数据擦除的方法,其特征包括客户机操作系统进程退出事件截获和客户机进程内存数据区域擦除方案的执行,具体步骤如下:
(1)云服务提供商管理员或用户调用控制模块的用户接口部分,需要对某一客户机进行监视并进行数据擦除操作,用户接口部分接受该请求将这一请求传递给监控准备部分,监控准备部分建立管理域和VMM内核间的参数空间以及事件通道,为参数传递和事件通知做准备;获得客户机操作系统中负责处理进程退出系统调用的地址,将该系统调用地址以及客户机id作为参数,使用Xen提供的超级调用机制把该请求传递给进程监控模块;与此同时,消息监听部分开始监听事件通道,监视是否有进程监控模块传来的发生进程退出事件的通知;
(2)进程监控模块接收到管理域发起的超级调用,解析超级调用的参数,确定目标客户机id以及客户机操作系统负责处理进程退出的系统调用的地址;通过对客户机内调试寄存器的设置将该系统调用地址设置为执行断点,这样当客户机中发生进程退出事件时,会产生调试中断;为了使VMM内核感知并能够处理客户机内部产生的调试中断,接下来需要对VMCS中拦截调试中断的控制位进行设置,当客户机内有进程退出时,会产生处理器异常,客户机产生VM_EXIT将处理器的控制权交给VMM内核;
(3)VMM内核接收到客户机产生的VM_EXIT,进程监控模块的事件处理部分在VMCS中的虚拟机退出信息区域读取VM_EXIT发生的原因,当VM_EXIT是由于客户机内部发生了调试中断而导致时,对比客户机发生调试中断的地址以及客户机操作系统内负责进程退出的系统调用的地址,如果两者相同,说明该客户机内发生了进程退出事件;事件处理部分将客户机id以及进程的id作为参数写入步骤(1)创建的参数空间中,然后通过事件通道通知控制模块有进程退出的事件发生;
(4)控制模块通过消息监听部分收到进程退出事件的通知后,从参数空间中读取发生进程退出事件的客户机以及进程的id参数,将这些参数传给数据擦除模块;
(5)数据擦除模块首先要判断指定客户机操作系统的类型和版本,为不同的操作系统类型及版本调用不同的数据擦除的接口,确定客户机操作系统的类型和版本后,遍历指定进程的数据区,并进行擦除操作。概括来说,Windows系统使用EPROCESS、HEAP、PEB、HEAP_SEGMETN、HEAP_ENTRY五种数据结构完成堆内存的数据管理,利用虚拟机自省模块提供的偏移量和接口依次访问五种管理结构,遍历内存管理最底层HEAP_ENTRY管理结构,对每个HEAP_ENTRY结构管理下的数据块进行置1操作,实现该部分的数据擦除;在Windows系统中,当程序执行过程中申请的内存块大小超过规定的阙值的时候,Windows的内存管理机制将这种情况下申请的堆内存以链表的形式存放到HEAP结构的VirtualAllocdBlocks元素指向的链表中,因此数据擦除的最后一步需要将该链表控制下的内存区块进行擦除操作。
本发明与现有技术相比具有以下的优点:
(1)避免了使用加密手段带来的性能上的损失。当前流行的公有云架构中,大多数依然采用是分块存储保护用户数据的隐私性,因为使用加解密的方法产生的性能损耗是十分巨大的。本发明的性能损耗只存在于客户机内运行的进程退出的时候,带来的性能损失十分微小,特别是没有进程退出的情况时对客户机的运行没有影响;
(2)在虚拟化层添加用户的访问控制机制虽然能有效避免共享资源引起的敏感数据泄漏的问题,但不足之处在于对VMM内核做了大量的修改,容易引入新的安全漏洞。而本发明仅针对客户机发生进程退出的事件进行处理,对VMM内核只做了作了少量的修改,不会给Xen平台带来新的安全威胁,同时保障用户客户机中内存敏感数据的保密性;
(3)本发明使用虚拟机自省技术完成内存数据区域的擦除工作,对不同的操作系统都可以使用,因此该方法具有较强的可扩展性。
附图说明
图1为本发明系统架构图;
图2为图1中进程监控模块的实现流程图;
图3为图1中控制模块的实现流程图;
图4为图1中数据擦除模块的实现流程图;
图5为图1中虚拟机自省模块的功能实现图。
具体实施方式
云环境中如何避免敏感数据的泄漏是云服务供应商和用户都非常关心的问题。本发明利用虚拟化技术实现了在客户机中运行的进程退出时对进程的数据区进行擦除工作,从缩短敏感数据泄漏的时间窗口的角度减小用户客户机运行时敏感数据面临的威胁。客户机内进程运行时内存空间可以分为代码区、全局数据区、堆区和栈区。其中用户的敏感数据可能以全局变量或静态变量的形式存放在全局数据区,也可能以局部变量的形式存放在栈区,同样也可能以动态申请变量的形式处于堆区,考虑到敏感数据(密钥、密码等)很少以静态变量的形式硬编码到程序中,以及栈区对同一区域频繁的分配释放操作且栈中保存着运行的函数上下文信息,对栈区进行擦除容易导致程序甚至系统崩溃的问题,本发明选择对进程的堆区进行数据擦除;为了不影响进程的正常运行,本发明选择在客户机内部进程退出时对进程地址空间的堆区进行数据擦除操作。
在详细介绍各个模块实现的功能和相互之间的关系之前,有必要对本发明用到的一些虚拟化相关的名词术语做简要的解释。本发明基于Xen虚拟化架构,Xen是由剑桥大学开发的一款开源的虚拟机监视器(Virtual Machine Monitor,简称VMM),是一个位于计算机硬件和操作系统间的软件层,它运行在CPU的特权模式,管理和隔离上层运行的各个客户机。管理域(Dom0)是一个特权的客户机,用来辅助Xen管理其它客户机,并提供真实的设备驱动访问物理硬件。本发明主要利用了Xen提供的三种基本机制:超级调用、事件通道以及共享内存,超级调用是Xen向控制域以及其它使用半虚拟化技术的客户机提供的接口,类似于操作系统中的系统调用;事件通道是用于客户机和Xen之间、使用半虚拟化技术的客户机之间的异步事件通知机制,经常与超级调用一起完成异步控制的功能。共享内存允许客户机与Xen内核以及客户机之间共享地址空间。硬件辅助虚拟化是Xen支持的一种虚拟化的形式,指是支持虚拟化的CPU带有特别优化过的指令集控制虚拟化过程以提高执行效率。硬件辅助虚拟化引入了两种专门针对虚拟化打造的运行模式,称为根操作模式和非根操作模式,其中VMM内核运行在根操作模式下,具有最高的执行权限,客户机运行在非根操作模式下,两种模式间的相互切换的行为被称作虚拟机退出(VM_EXIT)和虚拟机进入(VM_ENTRY)。虚拟机控制域(Virtual Machnie Controller Data Structure,简称为VMCS)是用来控制虚拟CPU执行在非根模式下的VM_EXIT和VM_ENTRY行为的数据结构,同时用来保存虚拟CPU调度或者根模式和非根模式间切换时的处理器上下文环境保存和恢复使用的数据。
如图1所示,本发明基于虚拟化的数据擦除系统主要由四个基本模块组成:分别是:控制模块、进程监控模块、虚拟机自省模块、和数据擦除模块。控制模块、虚拟机自省模块和数据擦除模块部署在管理域中,进程监控模块部署在VMM内核中。控制模块和进程监控模块存在控制和消息监视的关系,控制模块通过进程监控模块实现系统对某个客户机进行监视的功能,进程监控模块截获客户机中的进程退出的事件并把截获的事件消息传递到控制模块;控制模块和数据擦除模块存在调用和被调用关系,控制模块接收到某客户机进程退出事件的消息时调用数据擦除模块中的数据擦除接口;虚拟机自省模块为控制模块与数据擦除模块提供读写客户机某进程地址空间的接口,并提供访问不同类型的客户机操作系统的内部对象的接口。
进程监控模块部署在VMM内核中,监视客户机内进程退出的事件并将该事件发生的消息传递给控制模块。VMM内核对客户机在非根环境下进程退出行为的截获是通过设置VMCS的控制位和客户机的调试寄存器实现的,VMCS中保存着客户机CPU的上下文信息以及控制客户机执行过程的控制位,通过对控制位的设置能够实现对客户机内特定事件的截获,本发明主要用到的是VMCS内虚拟机退出域中的调试寄存器以及控制区域的客户机执行控制位。为了简明起见,下面只对针对Windows系统进程监控模块的实现做具体的阐述:
如图2所示,本发明中进程监控模块的具体实现如下:
(1)进程监控模块接收到控制模块发起的超级调用,需要截获某客户机的进程退出事件并进行数据擦除操作,从超级调用的参数中获得需要监视的客户机id以及客户机操作系统中负责处理进程退出的系统调用,Windows操作系统系统中负责处理进程退出工作的系统调用为NtTerminateProcess;
(2)将NtTerminateProcess地址设置为执行断点。x86体系结构提供了8个调试寄存器,DR0~DR7,通过为设置DR0~DR3中的一个过多个需要关注的地址以及为DR7的对应控制位能实现在CPU存取或执行到所关注地址的时产生调试中断,Xen也提供了客户机运行时产生这种调试中断的支持,为客户机维护DR0~DR7虚拟调试寄存器。为客户机选择某虚拟调试寄存器DRn(DR0~DR3)将其地址设为NtTerminateProcess系统调用的地址,同时设置虚拟调试控制器DR7中DRn对应的调试寄存器的控制位,从而将NtTerminateProcess地址设置为执行断点,这样当客户机程序执行到NtTerminateProcess函数体的时候会产生调试中断;
(3)设置客户机虚拟CPU结构中VMCS控制截获调试中断的相应控制位,在Xen中为异常位图区域的Trap_debug控制位,从而VMM内核能够截获到客户机产生的调试中断;
(4)客户机程序因为调试中断发生VM_EXIT时,判断导致该调试中断发生的地址是否为NtTerminateProcess系统调用的地址,当两者相同时,说明该客户机某进程发生了进程退出事件,将该客户机id以及进程id写入控制模块创建的参数空间,并激活事件通道以通知控制模块有进程退出事件发生。
如图3所示,控制模块满足云服务提供商或者客户机用户的隐私需求,为外部提供用户接口,控制进程监控模块的行为,并通过调用数据擦除模块的擦除函数实现数据擦除的功能。具体实现如下:
(1)用户接口被调用欲实现针对客户机的监视和擦除操作;
(2)控制模块调用虚拟机自省模块中提供的接口获得客户机操作系统的类型和版本,并调用该类型和版本的操作系统对应的接口得到该操作系统系统负责处理进程退出的系统调用的地址;
(3)控制模块为了监视指定客户机完成一些准备性的工作。包括创建管理域与VMM内核间的事件通道、使用共享内存维护的参数空间,并将需要监视的客户机id以及客户机操作系统中处理进程退出的系统调用地址作为参数向VMM内核发起超级调用;
(4)控制模块开始监视(3)中创建的事件通道是否被激活;
(5)当事件通道被激活时,表明监视的客户机发生了进程退出事件,控制模块读取(3)中创建的参数空间中的客户机id以及退出进程的id;
(6)控制模块将客户机id和退出进程id作为参数,调用数据擦除模块提供的接口,进行针对客户机该进程内存地址空间数据区的数据擦除操作。
数据擦除模块提供某进程数据区域的擦除功能。客户机安装了不同类型的操作系统,内存管理机制和用于内存管理的数据结构不尽相同,本模块可以提供针对不同操作系统版本进程数据空间进行数据擦除接口,下面以Windows的数据擦除功能的实现为例阐明该模块的实现思路。
Windows系统中通过EPROCESS、PEB、HEAP、HEAP_SEGMETN、HEAP_ENTRY五个数据结构实现对进程堆内存的管理,其中,EPROCESS作为执行体进程块,负责在内核地址空间中维护进程的各种信息以及相关结构的指针,PEB作为进程环境块,位于用户地址空间,存放进程相关的信息,HEAP、HEAP_SEGMENT、HEAP_ENTRY均为用户地址空间用来管理堆空间的数据结构。下面以如图4所示,进一步详细说明本发明所述方法中对堆区数据擦除的过程:
(1)根据虚拟机自省模块提供的接口获得进程id对应的EPROCESS数据结构地址,在_PEB元素的偏移处读取到PEB结构的地址;
(2)在PEB结构中读取堆的个数NumOfHeaps和存放该数量堆结构指针数组的头地址ProcessHeaps;
(3)依次取ProcessHeaps指向的HEAP结构地址数组的地址,执行(4)步骤;
(4)得到HEAP结构的地址,在该结构内保存着HEAP_SEGMENT结构地址的数组,对每一个HEAP_SEGMENT结构执行步骤(5);
(5)HEAP_SEGMENT负责管理一些在内存中连续存放的HEAP_ENTRY和数据,每一段数据前都会存在HEAP_ENTRY这个管理结构。HEAP_SEGMENT保存着(HEAP_ENTRY,数据)为元素的内存连续区域的第一个和最后一个元素的地址:FirstEntry和LastEntryInSegment。读取这两个地址,对每一个HEAP_ENTRY及其数据执行步骤(6);
(6)在HEAP_ENTRY开头读取数据段大小字段Size,对该数据段进行置1或者清0操作;
(7)当程序动态申请的内存大小超过一定阙值的时候,这时候申请的堆内存会以链表的形式保存在HEAP结构的VirtualAllocdBlocks结构中,因此最后对该部分的数据区进行置1或请0,从而完成进程擦除工作。
虚拟机自省模块提供在管理域访问不同客户机操作系统指定进程地址空间的接口,并提供获取客户机操作系统内部重要的对象的功能。因为系统中的控制模块、数据擦除模块都部署在客户机的外部,无法直接使用客户机操作系统提供的接口,只能获得客户机内存、寄存器中的一些低层次的信息,而本发明中的控制模块以及数据擦除模块都需要客户机内存管理结构等高层次的语义信息,因此便出现了语义断层问题,系统中的虚拟机自省模块即为了应对这一问题而开发。
如图5所示,虚拟机自省模块主要对外提供三种类型的接口,三者存在依赖的关系:设置客户机系统的管理结构地址以及关键属性偏移量的接口,该接口主要是出于程序扩展性的考虑,通过该接口将数据擦除的功能扩展到各种类型的客户机系统;读写客户机进程地址空间的接口,该接口将客户机内部的虚拟地址转化为VMM可以读取的机器地址,对外提供写入读取的功能;获得关键管理结构的地址和数据的接口主要封装了一些其它模块经常使用的内存管理数据结构的功能,通过该接口可以方便地访问一些常用的数据结构。
本发明未详细阐述部分属于本领域公知技术。
显然,本发明的上述实施例仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无法对所有的实施方式予以穷举。凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

Claims (2)

1.一种虚拟化环境中的数据擦除系统,其特征在于所述系统采用Xen虚拟机架构,包括控制模块、进程监控模块、虚拟机自省模块和数据擦除模块;所述控制模块、虚拟机自省模块和数据擦除模块部署在管理域中,进程监控模块部署在虚拟机管理器VMM内核中;
控制模块:满足云服务提供商或者客户机用户的隐私需求,提供与进程监控模块通信的功能,并通过调用数据擦除模块的数据擦除部分实现数据擦除的功能;该模块包括用户接口部分、监控准备部分、消息监听部分、消息分析与传递部分;其中,用户接口部分提供本系统对外的功能接口;监控准备部分为进程退出事件的监控创建参数存储与传递的空间,并建立起用于事件发生通知的事件通道;消息监听部分通过事件通道监听并接收进程监控模块发送给控制模块的事件通知;消息分析与传递部分分析接收到的事件通知消息,在监控准备部分创建的参数空间中读取客户机id以及进程id,将这些参数传递给数据擦除模块;
进程监控模块:对客户机中进程退出事件进行监视和处理,并把发生进程退出事件的客户机id以及进程id传递给管理域中的控制模块;进程监控模块由控制逻辑设定和事件处理两部分构成,其中控制逻辑设定部分通过对客户机虚拟机控制域(Virtual Machine ControlStructure,简称为VMCS)中调试寄存器以及相关控制位的设置,实现当客户机内发生进程退出事件时引发处理器异常产生虚拟机退出事件(VM_EXIT),该事件被VMM内核截获后调用事件处理部分;事件处理部分实现对管理域和VMM内核参数空间的写入以及与控制模块的交互的功能,当有进程退出事件发生时,事件处理部分将发生进程退出事件的客户机id以及进程id信息写入控制模块创建的管理域与VMM内核的参数空间中,使用事件通道告知控制模块有进程退出事件发生;
虚拟机自省模块:该模块作为控制模块和数据擦除模块的辅助模块存在,提供在管理域读写不同客户机操作系统指定进程地址空间的接口,并提供访问客户机操作系统内部重要对象的接口;该模块包括操作系统识别部分、参数配置部分和数据存取部分;操作系统识别部分负责根据不同的操作系统在内存中数据结构的特点识别操作系统的类型和版本,数据存取部分实现在客户机进程地址空间某地址读取或写入数据,并为其它模块提供数据存取的接口;参数配置部分定义不同类型的客户机操作系统用于内存管理的数据结构在地址空间中的相对地址以及内部关键属性的偏移量;
数据擦除模块:接收控制模块传递过来的客户机id以及退出进程id的参数信息并实现对客户机内某进程数据区域的数据擦除功能;该模块包括消息解析部分,内存数据区遍历部分及数据擦除部分;其中消息解析部分通过控制模块传递的参数信息获得客户机id以及进程的id,识别客户机操作系统的类型以及版本号信息,调用对应的内存数据区遍历函数;内存数据区遍历部分读取虚拟机自省模块设置的客户机操作系统内存管理数据结构的相对地址以及关键属性的偏移量,访问用于进行内存管理的数据结构,实现内存数据区域的遍历;数据擦除部分实现对给定的进程地址空间内容的擦除功能。
2.一种虚拟化环境中的数据擦除系统实现数据擦除的方法,其特征包括客户机操作系统进程退出事件截获和客户机进程内存数据区域擦除方案的执行,具体步骤如下:
(1)云服务提供商管理员或用户调用控制模块的用户接口部分,需要对某一客户机进行监视并进行数据擦除操作,用户接口部分接受请求将这一请求传递给监控准备部分,监控准备部分建立管理域和虚拟机管理器VMM内核间的参数空间以及事件通道,为参数传递和事件通知做准备;获得客户机操作系统中负责处理进程退出系统调用的地址,将该系统调用地址以及客户机id作为参数,使用Xen提供的超级调用机制把该请求传递给进程监控模块;同时,消息监听部分开始监听事件通道,监视是否有进程监控模块传来的发生进程退出事件的通知;
(2)进程监控模块接收到管理域发起的超级调用,解析超级调用的参数,确定目标客户机id以及客户机操作系统负责处理进程退出的系统调用的地址;通过对客户机内调试寄存器的设置将该系统调用地址设置为执行断点,这样当客户机中发生进程退出事件时,会产生调试中断;为了使VMM内核感知并能够处理客户机内部产生的调试中断,接下来需要对虚拟机控制域VMCS中拦截调试中断的控制位进行设置,当客户机内有进程退出时,会产生处理器异常,客户机产生VM_EXIT将处理器的控制权交给VMM内核;
(3)VMM内核接收到客户机产生的VM_EXIT,进程监控模块的事件处理部分在VMCS中的虚拟机退出信息区域读取VM_EXIT发生的原因,当VM_EXIT是由于客户机内部发生了调试中断而导致时,对比客户机发生调试中断的地址以及客户机操作系统内负责进程退出的系统调用的地址,如果两者相同,说明该客户机内发生了进程退出事件;事件处理部分将客户机id以及进程的id作为参数写入步骤(1)创建的参数空间中,然后通过事件通道通知控制模块有进程退出的事件发生;
(4)控制模块通过消息监听部分收到进程退出事件的通知后,从参数空间中读取发生进程退出事件的客户机以及进程的id参数,将这些参数传给数据擦除模块;
(5)数据擦除模块首先要判断指定客户机操作系统的类型和版本,为不同的操作系统类型及版本调用不同的数据擦除的接口,确定客户机操作系统的类型和版本后,遍历指定进程的数据区,并进行擦除操作;Windows系统使用EPROCESS、HEAP、PEB、HEAP_SEGMETN、HEAP_ENTRY五种数据结构完成堆内存的数据管理,利用虚拟机自省模块提供的偏移量和接口依次访问五种管理结构,遍历内存管理最底层HEAP_ENTRY管理结构,对每个HEAP_ENTRY结构管理下的数据块进行置1操作,实现该部分的数据擦除;在Windows系统中,当程序执行过程中申请的内存块大小超过规定的阈值的时候,Windows的内存管理机制将这种情况下申请的堆内存以链表的形式存放到HEAP结构的VirtualAllocdBlocks元素指向的链表中,因此数据擦除的最后一步需要将该链表控制下的内存区块进行擦除操作。
CN201410213759.8A 2014-05-20 2014-05-20 一种虚拟化环境中的数据擦除系统及方法 Active CN103996003B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410213759.8A CN103996003B (zh) 2014-05-20 2014-05-20 一种虚拟化环境中的数据擦除系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410213759.8A CN103996003B (zh) 2014-05-20 2014-05-20 一种虚拟化环境中的数据擦除系统及方法

Publications (2)

Publication Number Publication Date
CN103996003A CN103996003A (zh) 2014-08-20
CN103996003B true CN103996003B (zh) 2016-08-24

Family

ID=51310165

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410213759.8A Active CN103996003B (zh) 2014-05-20 2014-05-20 一种虚拟化环境中的数据擦除系统及方法

Country Status (1)

Country Link
CN (1) CN103996003B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104715202B (zh) * 2015-03-31 2018-06-12 北京奇虎科技有限公司 一种虚拟机中的隐藏进程检测方法和装置
CN108647154A (zh) * 2018-05-14 2018-10-12 国网山东省电力公司阳谷县供电公司 一种在集中器中进行参数修改的方法
CN109857520B (zh) * 2019-01-18 2020-01-07 四川大学 一种虚拟机自省中的语义重构改进方法及系统
CN111831520A (zh) * 2019-04-17 2020-10-27 烽火通信科技股份有限公司 用于Linux操作系统的故障诊断方法及系统
CN110362311B (zh) * 2019-06-18 2023-03-14 创新先进技术有限公司 用于辅助位图对象内存分配的方法及装置
CN110764674B (zh) * 2019-09-12 2021-03-26 湖南新云网科技有限公司 一种用于电子白板的笔记图元擦除方法、系统及电子白板
CN110865866B (zh) * 2019-09-29 2022-04-05 中通服咨询设计研究院有限公司 一种基于自省技术的虚拟机安全检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599022A (zh) * 2009-07-07 2009-12-09 武汉大学 用于虚拟机系统的可信计算基裁剪方法
CN102289620A (zh) * 2011-08-12 2011-12-21 华南理工大学 一种基于Xen安全计算机可信设备虚拟化系统及方法
CN103441844A (zh) * 2013-07-31 2013-12-11 南京神盾信息技术有限公司 基于云存储的数据安全和内网监控系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101205890B1 (ko) * 2010-12-07 2012-11-28 한국과학기술연구원 데스크탑 가상화를 위한 보안 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599022A (zh) * 2009-07-07 2009-12-09 武汉大学 用于虚拟机系统的可信计算基裁剪方法
CN102289620A (zh) * 2011-08-12 2011-12-21 华南理工大学 一种基于Xen安全计算机可信设备虚拟化系统及方法
CN103441844A (zh) * 2013-07-31 2013-12-11 南京神盾信息技术有限公司 基于云存储的数据安全和内网监控系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
公共云计算环境下用户数据的隐私性与安全性保护;张逢喆;《中国博士学位论文全文库》;20120115(第1期);第1-120页 *

Also Published As

Publication number Publication date
CN103996003A (zh) 2014-08-20

Similar Documents

Publication Publication Date Title
CN103996003B (zh) 一种虚拟化环境中的数据擦除系统及方法
CN102262557B (zh) 通过总线架构构建虚拟机监控器的方法及性能服务框架
EP2656206B1 (en) Probe insertion via background virtual machine
US9436603B1 (en) Detection and mitigation of timing side-channel attacks
Belay et al. Dune: Safe user-level access to privileged {CPU} features
Steinberg et al. NOVA: A microhypervisor-based secure virtualization architecture
Compastié et al. From virtualization security issues to cloud protection opportunities: An in-depth analysis of system virtualization models
US10545851B2 (en) Breakpoint insertion into kernel pages
Wu et al. Taming hosted hypervisors with (mostly) deprivileged execution.
JP2019503539A (ja) 仮想マシンを監査するためのシステムおよび方法
CN105393229A (zh) 虚拟机中的页面错误注入使得经换出的存储器页面映射到虚拟机虚拟化存储器中
US10061616B2 (en) Host memory locking in virtualized systems with memory overcommit
CN104321748A (zh) 用于捕捉轻量虚拟机管理器中的错误条件的方法、系统和装置
CN103177212B (zh) 一种基于轻量虚拟机监控器的计算机安全输入系统与方法
Li et al. Twinvisor: Hardware-isolated confidential virtual machines for arm
Pan et al. Nestcloud: Towards practical nested virtualization
US20200334062A1 (en) Safe hyper-threading for virtual machines
US9292324B2 (en) Virtual machine supervision by machine code rewriting to inject policy rule
Hetzelt et al. Via: Analyzing device interfaces of protected virtual machines
EP3274896B1 (en) Configuration of a memory controller for copy-on-write with a resource controller
JP7465046B2 (ja) 割り込み及び例外をセキュア仮想マシンにインジェクトする
Li et al. vMON: An efficient out-of-VM process monitor for virtual machines
US9378057B2 (en) Paravirtualized migration counter
Grinberg et al. Architectural virtualization extensions: A systems perspective
Nimgaonkar et al. Ctrust: A framework for secure and trustworthy application execution in cloud computing

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