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

文档序号:9667704阅读:来源:国知局
成的时间添加到该队列中,形成一个任务请求队列。需要说明的是,在根据生成时间进行添加时,在时间精度足够细的前提下基本不可能产生两个相同时间生成的任务请求,但是对于时间的精细程度受到设备硬件条件的限制,在虚拟机高并发任务请求的情况下还是会存在一些同时生成的任务请求,对于同时生成的任务请求,可以通过预置的判断条件再对这些任务请求进行优先排序,例如,通过对虚拟机设置权重值来判断任务请求的优先权,在同时生成的任务请求中,将权重值大的虚拟机生成的任务请求优先添加到队列中。这些预置的判断条件可以通过管理员进行实时的修改设置,对此本实施例不做具体限定。
[0033]进一步的,还可以将任务请求优先的发送给分析引擎进行处理,当分析引擎的负载到达一定的阈值时,就将任务请求缓存至协线程中等待处理。也就是说,任务请求的数量以及生成的密度在分析引擎的处理能力范围内时,可以不启用斜线程,而当任务请求数量过大出现排队情况时,而这种情况往往是在任务请求高并发是会出现的情况,就启动协线程来缓存多余的任务请求。例如,可以将设置当分析引擎的处理能力在占用率超过90%时,就启动协线程来缓存任务请求;也可以设置一个排队任务请求的阈值,当排队的任务请求达到该阈值时就启动协线程来缓存分析引擎无法处理的任务请求。
[0034]202、由协线程判断任务请求是否为已知的虚拟机逃逸行为。
[0035]本发明实施例中,在协线程判断任务请求是否为已知的虚拟机逃逸行为之前,需要先设定哪些行为是数据虚拟机逃逸行为。具体的实现方式是在宿主机中建立一个虚拟机逃逸行为列表,在该列表中记录有当前已知的所有属于虚拟机逃逸的操作行为,以及该操作行为所具有的相关特征信息。类似于杀毒软件中的病毒特征数据库,该列表也是一个需要实时进行维护的增量型列表,即创建的初期列表中的操作行为以及特征信息较少,但随着分析引擎所分析出的虚拟机逃逸行为的增多,该列表会将新增加的操作行为以及相应的特征信息添加到列表中,逐渐丰富该列表的数据量。随着列表中的特征信息的增加,协线程将能够过滤掉更多的任务请求,以减轻分析引擎的负载。因此,协线程的过滤能力是随着虚拟机逃逸行为列表的更新而动态提高的。
[0036]在系统中维护有一个虚拟机逃逸行为列表的前提下,协线程将逐一分析任务请求,提取其中虚拟机的操作行为,遍历虚拟机逃逸行为列表,判断该列表中是否具有相同的操作行为信息,若存在则说明该操作行为数据虚拟机逃逸行为;若不存在,则提取该操作行为中的具体的行为特征信息,再遍历虚拟机逃逸行为列表,判断该列表中是否具有相同的行为特征信息,若相同则该操作行为数据虚拟机逃逸行为。进一步的,由于一个操作行为中可能具有多个行为特征信息,在判断一个操作行为时,可能是部分的行为特征为虚拟机逃逸行为的特征信息,因此,在判断操作行为时,可以设置一个预设值,该预设值可以是一个具体数值,根据判断命中的特征信息数量是否达到该值来判断该操作行为是否为虚拟机逃逸行为;也可以使一个比值,该比值用于表示操作行为与虚拟机逃逸行为的特征相似度。在达到该比值的条件下确定该操作行为是虚拟机逃逸行为。例如,设定相似度比值为80%,当一个操作行为具有10个特征时,只有在这10个特征中有8个以上的特征被记录在虚拟机逃逸行为列表中时,才能够确定该操作行为是虚拟机逃逸行为。其中,操作行为中的特征信息可以是由该操作行为计算得出的MD5值等。
[0037]203、若是,则阻止该任务请求发送给分析引擎。
[0038]在本实施例中,协线程并不具有像分析引擎对任务请求进行行为分析的能力,而只是判断该任务请求中的操作行为是否为已知的虚拟机逃逸行为,从而对任务请求进行过滤筛选。当协线程判断任务请求中的操作行为是虚拟机逃逸行为时,该任务请求将不需要分析引擎再进行分析判断,因此,会将该任务请求删除出协线程或发送给宿主机中其他的处理虚拟机逃逸行为的单元模块进行处理。
[0039]204、若否,则保存任务请求,以便发送给分析引擎进行分析。
[0040]在当协线程无法确定任务请求中的操作行为是虚拟机逃逸行为时,该任务请求就需要分析引擎做进一步的分析判断。因此,协线程将保留该任务请求,在分析引擎具有处理能力时发送给分析引擎做进一步分析判断。对于何时向分析引擎发送任务请求,本实施例中,具体实现方式可以是在分析引擎具有处理能力时向协线程发送一个调取指令,用以告知协线程可以向分析引擎发送任务请求,对于协线程则是接收分析引擎所发送的调取指令,并根据该调取指令向分析引擎发送任务请求;还可以是通过设置一个预置的时间间隔,该时间间隔的取值可以根据计算分析引擎平均处理速度来得到,通过计算处理一个任务请求的平均时长来设置该时间间隔,每过一个时间间隔就向分析引擎主动发送一个任务请求。通过上述的两种实现方式,分析引擎都可以实现与协线程的对接,完成对任务请求的分析,判断宿主机中的虚拟机是否存在虚拟机逃逸行为。
[0041]进一步的,作为对上述方法的实现,本发明实施例提供了一种虚拟机逃逸的防护装置,该装置设置于安装有虚拟机的宿主机系统中,如图3所示,该装置具体包括:
[0042]缓存单元31,用于将获取到的任务请求缓存至协线程,其中,所述任务请求为分析引擎获取的对虚拟机对外操作行为的分析请求,所述协线程用于协助所述分析引擎缓存所述任务请求;
[0043]判断单元32,用于由所述协线程判断所述缓存单元31缓存的任务请求是否为已知的虚拟机逃逸行为;
[0044]保存单元33,用于当所述判断单元32判断所述任务请求不是虚拟机逃逸行为时,保存所述任务请求,以便发送给所述分析引擎进行分析。
[0045]进一步的,如图4所示,所述缓存单元31包括:
[0046]创建模块311,用于创建虚拟机的任务请求队列;
[0047]添加模块312,用于将所述任务请求添加到所述创建模块311创建的任务请求队列中。
[0048]进一步的,如图4所示,所述判断单元32包括:
[0049]提取模块321,用于提取所述任务请求中的操作行为;
[0050]匹配模块322,用于将所述提取模块321提取的操作行为与已知的虚拟机逃逸行为进行匹配。
[0051]进一步的,如图4所示,所述装置还包括:
[0052]建立单元34,用于在所述判断单元32由所述协线程判断所述任务请求是否为已知的虚拟机逃逸行为之前,建立虚拟机逃逸行为列表,所述列表中记录有当前已知的所有属于虚拟机逃逸的操作行为特征信息;
[0053]更新单元35,用于根据所述分析引擎的分析结果,更新所述建立单元建立的虚拟机逃逸行为列表。
[0054]进一步的,如图4所示,所述匹配模块322包括:
[0055]提取子模块3221,用于提取所述操作行为中的特征信息;
[0056]判断子模块3222,用于遍历所述虚拟机逃逸行为列表,判断所述虚拟机逃逸行为列表中是否存在所述提取子模块3221提取的特征信息;
[0057]确定子模块3223,用于当所述判断子模块3222判断所述虚拟机逃逸行为列表中存在所述特征信息时,确定所述操作行为是虚拟机逃逸行为。
[0058]进一步的,所述确定子模块3223还用于,当具有多个特征信息时,计算特征相似度比值,所述特征相似度比值是确定为虚拟机逃逸行为列表中的特征信息占所有特征信息的比值;当所述特征相似度比值大于预设值时,确定所述操作行为是虚拟机逃逸行为。
[0059]进一步的,所述提取子模块3221提取的特征信息包括:根据所述操作行为计算得出的MD5值。
[0060]进一步的,所述缓存单元31还用于,根据所述分析引擎的处理能力,将所述分析引擎无法处理的任务请求缓存至所述协线程。
[0061 ] 进一步的,如图4所示,所述装置还包括:
[0062]阻止单元36,用于当所述判断单元32判断所述任务请求为已知的虚拟机逃逸时,所述协线程阻止该任务请求发送给所述分析引擎。
[0063]进一步的,如图4所示,所述保存单元33包括:
[0064]获取模块331,用于获取分析引擎的调取指令;
[0065]第一发送模块332,用于根据所
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1