一种基于完整性验证的净室实时监控方法

文档序号:9453367阅读:418来源:国知局
一种基于完整性验证的净室实时监控方法
【技术领域】
[0001]本发明属于计算机科学与技术领域,特别涉及一种基于完整性验证的净室实时监控方法。
【背景技术】
[0002]在云计算飞速发展的今天,数据的安全问题越来越严重,在使用净室保证计算安全的同时,使用净室保证用户程序的安全性也是一项重要的任务。目前实现应用程序的监控和数据的检测技术已经发展地非常丰富。然而对于虚拟机运行中的完整性检测仍然不够完善。在远程服务器上,由于应用程序难以管理,以及网络传输的不安全,可能导致用户程序或者虚拟机被篡改,一旦这些被篡改过的程序进入到净室,就会泄露用户的隐私,甚至造成服务器崩溃等诸多问题,我们需要一种净室实时监控技术,通过该技术能够实时监控虚拟机的运行状态,保证虚拟机的完整和安全,并在此基础上,对进入虚拟机运行的应用程序进行监测,保证程序的合法运行,从而保障虚拟机和用户程序运行环境的安全。
[0003]净室实时监控技术是在净室云计算的基础上实施的,在净室云理论中计算执行环境分为“服务态”和“净室态”,用户签订安全服务协议后执行环境就会切换到净室态,净室态的执行环境只面向该用户开放。
[0004]通常在虚拟机的监控方法都是基于主机的完整性检测,这种方法是采用在主机上安装监控软件,当用户程序和监控软件同时运行时,通过监控软件来记录程序运行状态,从而检验程序是否被篡改。目前典型的技术是完整性度量架构,在该技术执行下,操作系统会从内核初始化开始,对运行在操作系统上的应用程序和内核模块进行实时验证。由于这种架构不能防止攻击者对安全列表的修改,需要采用远程验证来检测列表是否被修改,因此这种方法所存在的问题是完整性度量软件和用户程序同时运行在同一环境下,这就会导致度量软件的暴露,攻击者很有可能通过攻击度量软件和度量列表来破坏完整性度量。

【发明内容】

[0005]本发明提供了一种对用户虚拟机的净室实时监控方法,来阻止用户未经授权的行为,保证云计算环境下的用户虚拟机的安全运行,并且保护虚拟机中应用程序的安全。
[0006]—种基于完整性验证的净室实时监控方法,包括以下几个步骤:
[0007]步骤1:在服务器上安装可信虚拟监视器,利用所述可信虚拟监视器提取服务器初始数据,并计算服务器初始数据的哈希函数值,将服务器初始数据以其对应的哈希函数值备份到服务器中的可信列表中;
[0008]所述服务器初始数据包括服务器的系统文件和进程数据;所述系统文件包括文件类型、文件名和文件大小;进程数据包括该进程的进程名、线程数量和线程峰值数量;
[0009]所述可信列表用于保存可信任的系统数据、可信任的虚拟机信息以及可信任的用户程序信息;
[0010]步骤2:在可信虚拟监视器中安装虚拟机陷入程序,利用虚拟机陷入程序的sh_page_fault函数获得陷入可信虚拟监视器的虚拟机的进程、内核模块及动态库;
[0011]所述虚拟机陷入程序的安装是通过将Vmx.c文件中的vmx_vmexit_handler函数的返回地址修改为非法地址完成;
[0012]步骤3:在可信虚拟机中运行完整性测量代理,对步骤2获取的虚拟机完整性进行测量,如果虚拟机完整,则进入步骤4,否则,返回步骤2,等待虚拟机陷入程序获取陷入可信虚拟监视器的虚拟机;
[0013]所述完整性测量代理是可信虚拟管理器中的组件;
[0014]步骤4:计算步骤2所获取的虚拟机的进程、内核模块和动态库的哈希值,并与步骤I所述可信列表中的数据进行比对;
[0015]若该虚拟机对应的哈希值存在于可信列表中,则continue函数修改guest_rip为原来的地址使虚拟机正常运行,进入步骤5,否则,调用kill函数终止虚拟机的运行,返回步骤2,等待虚拟机陷入程序获取陷入可信虚拟监视器的虚拟机;
[0016]步骤5:在终端安装应用程序监视器,截获用户程序产生的系统调用,得到传递给系统调用的全部参数;
[0017]步骤6:在终端运行完整性测量代理,对步骤5所获取程序的事件类型、事件参数、运行程序的指令计算哈希值;
[0018]步骤7:使用netlink创建套接字将步骤6得到的哈希值数据发送到服务器,与服务器的可信列表中的项进行比对;
[0019]若步骤5截获的程序对应的哈希值存在于服务器的可信列表中,则调用continue函数继续用户进程执行,并允许用户进程进入步骤2所述虚拟机中运行,否则调用TerminateProcess函数终止程序的运行。
[0020]有益效果
[0021]本发明提供了一种基于完整性验证的净室实时监控方法,通过对用户虚拟机的完整性检测和对用户程序的完整性验证,来保证虚拟机的安全。对用虚拟机的监控主要是监控虚拟机的进程、内核模块以及动态库的完整性,通过实时监测虚拟机的运行状态来保证虚拟机不被篡改,彻底的阻止了用户未经授权的行为,保证云计算环境下的用户虚拟机的安全运行,并且保护虚拟机中应用程序的安全。
【附图说明】
[0022]图1为本发明所述方法的流程图;
[0023]图2为服务器监控模型图;
[0024]图3为终端监控模型图。
【具体实施方式】
[0025]下面结合具体实例和说明书附图对本发明做进一步的说明。
[0026]在本实例中远程服务器使用Ubuntul4.04作为操作系统,数据库为MySQL。客户端为Windows操作系统的台式机。本实例服务器装备了能够远程出发系统管理终端的频带外信道,利用系统管理模式、智能平台管理接口以及底板管理控制器,客户端通过远程认证的方式对虚拟机的运行过程进行动态完整性检测。
[0027]—种基于完整性验证的净室实时监控方法,如图1所示,包括以下步骤:
[0028]步骤1:在服务器上安装可信虚拟监视器,利用所述可信虚拟监视器提取服务器初始数据,并计算服务器初始数据的哈希函数值,将服务器初始数据以其对应的哈希函数值备份到服务器中的可信列表中;服务器监控模型如图2所示;
[0029]所述服务器初始数据包括服务器的系统文件和进程数据;所述系统文件包括文件类型、文件名和文件大小;进程数据包括该进程的进程名、线程数量和线程峰值数量;
[0030]所述可信列表用于保存可信任的系统数据、可信任的虚拟机信息以及可信任的用户程序信息;
[0031]通过调用以下函数来获取服务器信息。
[0032]GetDriveType (IpRootPathName:PChar):UINT ;返回指定驱动器的类型。
[0033]GetDiskFreeSpace(IpRootPathName:PChar ;var IpSectorsPerCluster, IpBytesPerSector, IpNumberOfFreeClusters, IpTotalNumberOfClusters: DffOR D):B00L ;返回指定驱动器的总簇数、剩余簇数及每簇扇区数、每扇区字节数,从而可以计算出总容量和剩余空间。
[0034]步骤2:在可信虚拟监视器中安装虚拟机陷入程序,利用虚拟机陷入程序的sh_page_fault函数获得陷入可信虚拟监视器的虚拟机的进程、内核模块及动态库;
[0035]所述虚拟机陷入程序的安装是通过将Vmx.c文件中的vmx_vmexit_handler函数的返回地址修改为非法地址完成;
[0036]虚拟机陷入程序的安装方法:打开Vmx.c文件并修改vmx_vmexit_handler函数中的返回地址为非法地址。然后在sh_page_fault函数获取陷入虚拟机的进程、内核模块、动态库。
[0037]在本实例中可信虚拟监视器采用Xen,用户要获取虚拟机的信息,只需要通过Xencontrol和Xenstore这两个接口就能获得虚拟机的信息。
[0038]Xencontrol是Xen提供的控制接口,该接口只能被DomO使用,用于帮助DomO控制和管理其他的Domain。通过Xencontrol,DomO不仅能够创建、销毁、Domain,控制Domain的运行、暂停、恢复以及迀移,还能够实现对其他Domain的CPU调度、内存分配以及设备访问。
[0039]XenStore是Xen提供的一个域间共享的存储系统,它以字符串形式存放了管理程序和前、后端驱动程序的配置信息。XenStore的存储结构类似于Dom树:每一个节点(Node)有一个字符串值(Value),并且可以有多个子节点。xenstored在根(/)下有三个子目录,vm,local (实际上是/local/domain)和tool。vm存放
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1