一种虚拟机逃逸检测方法及装置制造方法及图纸

技术编号:14112964 阅读:49 留言:0更新日期:2016-12-07 09:18
本发明专利技术公开了一种虚拟机逃逸检测方法及装置,涉及计算机技术领域,通过检测虚拟机的读写请求来判断该虚拟机是否存在逃逸行为,以此简化虚拟机逃逸检测流程,提高检测效率。本发明专利技术主要的技术方案为:在对虚拟机中的虚拟设备初始化时,获取所述虚拟设备对应的存储区域的地址;根据所述存储区域的地址查找读写函数指针,所述读写函数指针指向处理所述虚拟设备的读写请求对应程序的地址;将所述读写函数指针替换为对应的检测指针,所述检测指针用于指向检测所述虚拟设备的读写请求是否异常的检测程序的地址;通过检测程序检测所述虚拟设备的读写请求是否为异常请求。本发明专利技术主要用于检测虚拟机逃逸行为。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种虚拟机逃逸检测方法及装置
技术介绍
虚拟化指的是将一个物理计算机划分为一个或多个完全孤立的“虚拟机”。对于操作系统而言,实际上把他们看作是在自己身上运行的一个程序,但他们实际上会共享机器的物理硬件,比如CPU、内存、磁盘和网络设备。虚拟机的使用提供了两个主要的好处:资源共享和隔离。在非虚拟环境中,所有的资源在物理计算机上专用。如果系统有2GB的内存,运行任务使用了其中1GB,那么其余的就会被闲置,不能充分利用。虚拟机提供的环境,看起来就像是独立并存的数个计算机,而实际上是在一个物理主机上模拟运行的。虽然虚拟机的隔离程度依赖于底层的虚拟化技术,但是在没有进行特殊配置的情况下,虚拟机之间并不允许互相交流。虚拟机能够分享主机的资源并提供隔离。在理想的环境中,一个程序运行在虚拟机里,应该无法影响其他虚拟机。但是,由于技术的限制和虚拟化软件的一些程序漏洞,这种理想环境并不存在。在虚拟机里运行的程序能够通过这些漏洞会绕过底层,从而利用宿主机,这种技术叫做虚拟机逃逸技术,由于宿主机的特权地位,其结果将使整个虚拟环境下所有虚拟机的安全性受到威胁。为了防止虚拟机逃逸行为的出现,就需要对虚拟机所运行的程序进行检测判断,尤其是对共享资源的操作请求加以识别。而目前的主要判断方式是通过分析主机内核所生成的操作指令是否会造成虚拟机逃逸,但这种方式的处理过程十分复杂,且没有成熟可行的实现方案,其理论实现方式在实际测试应用中的检测效率十分低下。
技术实现思路
有鉴于此,本专利技术提供一种虚拟机逃逸检测方法及装置,通过虚拟机自行检测其生成的操作请求来判断该虚拟机是否逃逸,以此简化虚拟机逃逸检测流程,提高检测效率。依据本专利技术的一个方面,提出了一种虚拟机逃逸检测方法,该方法包括:在对虚拟机中的虚拟设备初始化时,获取所述虚拟设备对应的存储区域的地址;根据所述存储区域的地址查找读写函数指针,所述读写函数指针指向处理所述虚拟设备的读写请求对应程序的地址;将所述读写函数指针替换为对应的检测指针,所述检测指针用于指向检测所述虚拟设备的读写请求是否异常的检测程序的地址;通过所述检测程序检测所述虚拟设备的读写请求是否为异常请求。依据本专利技术的另一个方面,提出了一种虚拟机逃逸检测装置,该装置包括:获取单元,用于在对虚拟机中的虚拟设备初始化时,获取所述虚拟设备对应的存储区域的地址;查找单元,用于根据所述获取单元获取存储区域的地址查找读写函数指针,所述读写函数指针指向处理所述虚拟设备的读写请求对应程序的地址;替换单元,用于将所述查找单元得到的读写函数指针替换为对应的检测指针,所述检测指针用于指向检测所述虚拟设备的读写请求是否异常的检测程序的地址;检测单元,用于在所述替换单元替换检测指针后,通过所述检测程序检测所述虚拟设备的读写请求是否为异常请求。本专利技术所采用的一种虚拟机逃逸检测方法及装置,通过在虚拟机初始化各个虚拟设备时获取各虚拟设备的存储区域的地址,并将该存储区域中保存的处理虚拟设备读写请求的读写函数指针替换为用于检测读写请求是否存在异常的检测程序的检测指针,以此来检测该虚拟机中的各个虚拟设备是否存在有逃逸行为。同现有的虚拟机逃逸检测方式相比,本专利技术所采用的检测方法无需在主机内核中分析虚拟机中各个虚拟设备的操作指令,而是由虚拟机对本机中的虚拟设备进行实时检测,简化了检测流程,提高了检测的效率。同时,由于目前的开源虚拟化解决方案中针对处理虚拟设备的读写请求的读写函数指针还无法直接获取,因此,本专利技术也是针对在虚拟机侧针对其中的各虚拟设备,尤其是各虚拟设备所生成的读写请求,给出了检测虚拟机逃逸的具体实现方式,解决了虚拟机无法获取各虚拟设备处理读写请求的读写函数指针的问题。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例提出的一种虚拟机逃逸检测方法流程图;图2示出了本专利技术实施例提出的另一种虚拟机逃逸检测方法流程图;图3示出了本专利技术实施例提出的一种虚拟机逃逸检测装置的组成框图;图4示出了本专利技术实施例提出的另一种虚拟机逃逸检测装置的组成框图。具体实施方式下面将参照附图更详细地描述本专利技术的示例性实施例。虽然附图中显示了本专利技术的示例性实施例,然而应当理解,可以以各种形式实现本专利技术而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本专利技术,并且能够将本专利技术的范围完整的传达给本领域的技术人员。本专利技术实施例提供了一种虚拟机逃逸检测方法,该方法基于当前的开源虚拟化解决方案无法获取虚拟机中处理各虚拟设备读写操作的读写函数指针。而虚拟机逃逸行为多是通过虚拟机中的各虚拟设备发起的读写操作请求利用虚拟机机程序中的漏洞所实现的。因此本专利技术实施例所述的方法就是在虚拟机侧监控各虚拟设备的读写操作是否存在异常,进而判断该虚拟机是否有逃逸行为。该方法具体步骤如图1所示,包括:101、在对虚拟机中的虚拟设备初始化时,获取虚拟设备对应的存储区域的地址。在虚拟化环境中创建虚拟机时,需要为虚拟机分配对应的处理资源,如分配内存大小、配置虚拟机的虚拟处理器个数、确定操作系统类型等。也就是对该虚拟机中的各虚拟设备进行初始化设置。在对各虚拟设备初始化时,获取各虚拟设备对应的存储区域的地址,该存储区域用于记载虚拟机处理该虚拟设备的名称以及各操作请求的处理函数指针等信息。102、根据存储区域的地址查找读写函数指针。由于虚拟设备所对应的存储区域中存储有该虚拟设备所产生的各操作请求所对应的处理函数指针,而本专利技术实施例中主要是通过判断读写操作是否异常,因此,需要在各种处理函数指针中查找出用于处理读写操作的读写函数指针。需要说明的是,该读写函数指针分为读函数指针与写函数指针,且分别对应于读操作请求与写操作请求。它们各自指向处理读操作请求或写操作请求所对应程序的地址。103、将读写函数指针替换为对应的检测指针。在得到虚拟设备所对应的读函数指针与写函数指针后,将这些指针替换为各自对应的检测指针,其中,检测读操作的检测指针指向检测虚拟设备的读操作请求是否为异常请求的检测程序地址,检测写操作的检测指针则指向检测虚拟设备的写操作请求是否为异常请求的检测程序地址。在本专利技术实施例中,替换检测指针的目的在于虚拟机处理虚拟设备的读写操作之前,对该虚拟设备的读写请求进行检测,因此,除了替换对应的检测指针外也可以根据读写函数指针的地址将检测指针插入读写函数指针之前,并设置通过检测程序检测合格的读写操作请求继续执行该读写函数指针所指向的处理程序。104、通过检测程序检测虚拟设备的读写请求是否为异常请求。通过上述三个步骤,使得虚拟机在执行虚拟设备的读写操作请求时,将会对该读写操作请求进行检测,即在虚拟设备初始化时完成对该虚拟设备的读写函数指针的替换处理。之后,在虚拟设备产生读写操作请求时,虚拟机将根据检本文档来自技高网...
一种虚拟机逃逸检测方法及装置

【技术保护点】
一种虚拟机逃逸检测方法,其特征在于,所述方法包括:在对虚拟机中的虚拟设备初始化时,获取所述虚拟设备对应的存储区域的地址;根据所述存储区域的地址查找读写函数指针,所述读写函数指针指向处理所述虚拟设备的读写请求对应程序的地址;将所述读写函数指针替换为对应的检测指针,所述检测指针用于指向检测所述虚拟设备的读写请求是否异常的检测程序的地址;通过所述检测程序检测所述虚拟设备的读写请求是否为异常请求。

【技术特征摘要】
1.一种虚拟机逃逸检测方法,其特征在于,所述方法包括:在对虚拟机中的虚拟设备初始化时,获取所述虚拟设备对应的存储区域的地址;根据所述存储区域的地址查找读写函数指针,所述读写函数指针指向处理所述虚拟设备的读写请求对应程序的地址;将所述读写函数指针替换为对应的检测指针,所述检测指针用于指向检测所述虚拟设备的读写请求是否异常的检测程序的地址;通过所述检测程序检测所述虚拟设备的读写请求是否为异常请求。2.根据权利要求1所述方法,其特征在于,获取所述虚拟设备对应的存储区域的地址包括:获取所述虚拟设备在初始化时为所述虚拟设备对应的存储区域命名的赋值函数;解析所述赋值函数,得到所述存储区域的名称以及赋值的地址;根据所述赋值的地址确定所述存储区域的地址。3.根据权利要求2所述方法,其特征在于,根据所述存储区域的地址查找读写函数指针包括:确定所述存储区域中处理所述虚拟设备的读写请求的地址;在所述地址内查找所述读写请求对应的读写函数指针。4.根据权利要求1所述方法,其特征在于,在将读写函数指针替换为对应的检测指针之前,所述方法还包括:预置检测程序,并根据所述检测程序的地址生成所述检测指针。5.根据权利要求2所述方法,其特征在于,在将读写函数指针替换为对应的检测指针之后,所述方法还包括:根据所述虚拟设备的读写请求,将所述读写请求中包含的设备名称与所述存储区域的名称相匹配;若名称不同,则停止对所述读写请求的处理。6.根据权利要求1所述方法,其特征在于,在通过所述检测程序检测所述虚拟设备的读写请求是否为异常请求之后,所述方法还包括:当所述虚拟设备的读写...

【专利技术属性】
技术研发人员:李常坤汤迪斌栾建海杜少博谭元蕊
申请(专利权)人:北京奇虎科技有限公司北京奇安信科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1