一种虚拟机逃逸的防护方法及装置的制造方法

文档序号:9667704阅读:1342来源:国知局
一种虚拟机逃逸的防护方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种虚拟机逃逸的防护方法及装置。
【背景技术】
[0002]随着计算机软件技术的不断发展,基于Unix系统操作平台的软件开发技术越来越普及,其中,虚拟机逃逸变成研发人员急需解决的问题。虚拟机逃逸是指利用虚拟机软件或者虚拟机中运行的软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主操作系统的目的。
[0003]目前,虚拟机中的程序只能在虚拟机中运行,当虚拟机系统出现漏洞时,虚拟机中的程序将突破虚拟机的界限,读取虚拟机以外的资源。虚拟机逃逸可以通过虚拟出一个网盘,将逃逸程序携带进宿主机中,对宿主机中的资源进行占用;还可以虚拟出一个仿真指令来携带逃逸程序。为了防止虚拟机逃逸行为的发生,一般是通过行为分析引擎来分析虚拟机的对外操作是否属于虚拟机逃逸行为。然而在宿主机中设置往往会设置有大量的虚拟机,当大量的虚拟机同时产生对外操作或在短时间内进行大量的对外操作时,分析引擎很容易在大负载的情况下死机或崩溃。从而使得整个虚拟机逃逸防护系统失效。
[0004]可以通过分析引擎对文件行为进行分析,但是在引擎高并发状态时,引擎分析压力大,影响分析结果。

【发明内容】

[0005]有鉴于此,本发明提供一种虚拟机逃逸的防护方法及装置,能够通过建立分析任务的缓存机制来缓解和过滤分析引擎在分析任务高并发状态时的负载压力。
[0006]依据本发明一个方面,提出了一种虚拟机逃逸的防护方法,该方法包括:
[0007]将获取到的任务请求缓存至协线程,其中,所述任务请求为分析引擎获取的对虚拟机对外操作行为的分析请求,所述协线程用于协助所述分析引擎缓存所述任务请求;
[0008]由所述协线程判断所述任务请求是否为已知的虚拟机逃逸行为;
[0009]若否,则将所述任务请求发送给所述分析引擎进行分析。
[0010]依据本发明另一个方面,还提出了一种虚拟机逃逸的防护装置,该装置包括:
[0011]缓存单元,用于将获取到的任务请求缓存至协线程,其中,所述任务请求为分析引擎获取的对虚拟机对外操作行为的分析请求,所述协线程用于协助所述分析引擎缓存所述任务请求;
[0012]判断单元,用于由所述协线程判断所述缓存单元缓存的任务请求是否为已知的虚拟机逃逸行为;
[0013]发送单元,用于当所述判断单元判断所述任务请求不是虚拟机逃逸行为时,将所述任务请求发送给所述分析引擎进行分析。
[0014]本发明所采用的虚拟机逃逸的防护方法及装置,用于在高并发分析任务的情况下缓解分析引擎的负载压力。主要通过获取虚拟机对本机以外的宿主机资源所进行的操作,并对该操作以任务请求的方式先缓存至协线程中,由该协线程先对所缓存的任务请求进行过滤,判断该任务请求中的操作行为是否为虚拟机逃逸行为,若无法确定该任务请求中的操作行为是虚拟机逃逸行为则将该任务请求保留在协线程中,以便发送至分析引擎进行进一步的分析判断。相对于现有技术中直接由分析引擎获取所有虚拟机的任务请求的方式,本发明所采用的虚拟机逃逸的防护方法能够将请求任务在由分析引擎分析之前先进行初步的筛选以减少一部分无需分析的任务请求,通过减少分析引擎的任务处理量达到部分减轻分析引擎负载压力的效果。同时,通过将任务请求先缓存在协线程中,再有序地向分析引擎发送任务请求,能够在面对任务请求高并发状态时起到保护分析引擎,防止分析引擎因负载过大而死机或崩溃的情况发生,从而提高了系统整体的防护稳定性。
[0015]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的【具体实施方式】。
【附图说明】
[0016]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0017]图1示出了本发明实施例提出的一种虚拟机逃逸的防护方法流程图;
[0018]图2示出了本发明实施例提出的另一种虚拟机逃逸的防护方法流程图;
[0019]图3示出了本发明实施例提出的一种虚拟机逃逸的防护装置组成框图;
[0020]图4示出了本发明实施例提出的另一种虚拟机逃逸的防护装置组成框图。
【具体实施方式】
[0021]下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0022]本发明实施例提供了一种虚拟机逃逸的防护方法,如图1所示,该方法应用于设置有虚拟机的宿主机中,用于防止虚拟机逃逸的情况发生,具体步骤包括:
[0023]101、将获取到的任务请求缓存至协线程。
[0024]要防止虚拟机逃逸的情况发生,首先要能够获取到虚拟机对本机资源以外的宿主机资源或其他虚拟机资源进行的操作行为。根据该行为中的具体特征来判断该操作行为是否构成了虚拟机逃逸。在本实施例中,是由宿主机中的分析引擎获取本机中所有虚拟机的对外操作行为,并将这些行为以任务请求的形式缓存在协线程中。该协线程主要用于辅助分析引擎存储任务请求,以防止多个虚拟机同时产生任务请求或虚拟机在短时间内大量生成任务请求对分析引擎造成的负载过大问题。通过协线程的缓存,分析引擎可以从斜线程中来获取适当数量的任务请求进行分析,从而有效的缓解了分析引擎的处理压力。
[0025]102、由协线程判断任务请求是否为已知的虚拟机逃逸行为。
[0026]任务请求缓存至协线程后,协线程将判断该任务请求是否需要由分析引擎进行虚拟机逃逸的行为分析,即判断该任务请求是否为已知的虚拟机逃逸行为。而已知的虚拟机逃逸行为可以通过分析引擎的分析结果得到,也可以通过管理员设置规定哪些具体的操作行为属于虚拟机逃逸行为,在本实施例中,已知的虚拟机逃逸行为可以是在宿主机中维护的一个列表,在该列表中记录有虚拟机逃逸行为的行为特征。
[0027]103、若否,则保存任务请求,以便发送给分析引擎进行分析。
[0028]根据102的判断,当协线程无法确定该任务请求中所携带的操作行为时虚拟机逃逸行为时,说明该任务请求需要由分析引擎进行进一步的具体分析。因此,协线程会将该任务请求保存下来,等待适合的时机发送给分析引擎进行详细的分析判断。
[0029]通过上述的说明,本发明实施例所提供的一种虚拟机逃逸的防护方法,是通过获取虚拟机对本机以外的宿主机资源所进行的操作,并对该操作以任务请求的方式缓存至协线程中,由该协线程对所缓存的任务请求进行过滤,判断该任务请求中的操作行为是否为虚拟机逃逸行为,若无法确定该任务请求中的操作行为是虚拟机逃逸行为则将该任务请求保留在协线程中,以便发送至分析引擎进行进一步的分析判断。相对于现有技术中直接由分析引擎获取所有虚拟机的任务请求的方式,本发明实施例所采用的虚拟机逃逸的防护方法能够将请求任务在由分析引擎分析之前先进行初步的筛选以减少一部分无需分析的任务请求,通过减少分析引擎的任务处理量达到部分减轻分析引擎负载压力的效果。同时,通过将任务请求先缓存在协线程中,再有序地向分析引擎发送任务请求,能够在面对任务请求高并发状态时起到保护分析引擎,防止分析引擎因负载过大而死机或崩溃的情况发生,从而提高了系统整体的防护稳定性。
[0030]为了更进一步的说明上述的虚拟机逃逸的防护方法,结合具体的实现方式,本发明实施例还提供了一种虚拟机逃逸的防护方法,如图2所示,该方法包括:
[0031 ] 201、将获取到的任务请求缓存至协线程。
[0032]在本发明实施例中,通过建立协线程统一缓存宿主机中所有虚拟机生成的任务请求。具体的实现方式,可以是在该协线程中创建一个队列,将任务请求根据生
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1