本发明涉及计算机网络安全技术领域,特别涉及一种基于硬件资源的多引擎对照扫描动态调整方法及系统。
背景技术:
在信息化高速发展的今天,网络安全正面临着全新的挑战。传统恶意代码,尤其是木马的快速增长,不断出现新的家族新的变种以对抗杀毒软件。
为了应对不断变种和升级的恶意代码,通过开发基于多恶意代码检测引擎的对照扫描分析系统,利用多个国内外主流引擎对恶意代码进行静态对照扫描分析,是应对恶意代码有效技术手段。
目前国内外已经相继开发出了恶意代码多引擎对照分析系统,如国外的VirusTotal,国内的VirusBook,这些对照系统通常采用分布式集群化的杀毒引擎进行并发扫描,一般采用如下两种方式进行扫描,第一利用大量实体机组成扫描集群,然后在每个实体机中直接安装杀毒引擎;第二利用少量实体机组成扫描集群,但在每个实体机安装多个虚拟机,在每个虚拟机中安装杀毒引擎;以上两种对照扫描系统均存在系统资源(CPU和内存)的浪费。由于每种杀毒引擎的扫描速度不一致,对于同一批样本,势必导致扫描快的引擎,进入空闲状态(CPU和内存空闲),空闲资源不能被扫描慢的引擎使用。
技术实现要素:
基于上述问题,本发明提出了一种基于硬件资源的多引擎对照扫描动态调整方法及系统,充分利用硬件资源,通过对系统资源的动态调整,达到提高系统整体扫描速度,快速判定恶意代码的目的,同时本方法的系统采用统一的任务队列和结果队列进行管理,系统各个模块耦合度低,易于集群化分布式部署。
本发明通过如下方法实现:
首先提出一种基于硬件资源的多引擎对照扫描动态调整方法,包括:
在至少两个实体机上,利用虚拟化技术分别安装至少两个虚拟机;
在各虚拟机中安装检测引擎;
获取待检测样本,并分发到各检测引擎的任务队列;
对各检测引擎任务队列实时监控,判断是否存在待扫描任务为零的检测引擎,如果存在,则同时获取任务队列中待扫描任务数量最多的检测引擎;
确认待扫描任务为零的检测引擎的虚拟机是否处于空闲状态,如果是,则关闭所述虚拟机,并增加待扫描任务数量最多的检测引擎的虚拟机。
所述的方法中,所述获取待检测样本,还包括:
获取待检测样本,若提交的待检测样本为URL,则根据URL下载对应文件;
将所述待检测样本缓存到服务器中,并形成供虚拟机下载的临时URL。
所述的方法中,所述的分发到各检测引擎的任务队列,具体为:
通过统一的任务队列,将临时URL分发到各检测引擎的任务队列。
所述的方法中,所述确认待扫描任务为零的检测引擎的虚拟机是否处于空闲状态,具体为,通过对各检测引擎的虚拟机的扫描状态进行实时监控获得。
所述的方法中,还包括:将所有虚拟机镜像存储在虚拟内存盘中进行扫描。
上述任一所述的方法中,还包括:各检测引擎的虚拟机解析扫描日志,获取各检测引擎的扫描结果,并插入到对应检测引擎的结果队列中;
获取各检测引擎的结果队列中的扫描结果,并合并同一待检测样本的扫描结果,将合并后的扫描结果插入到统一的结果队列中。
本发明还提出一种基于硬件资源的多引擎对照扫描动态调整系统,包括:
检测虚拟机搭建模块,在至少两个实体机上,利用虚拟化技术分别安装至少两个虚拟机;
检测引擎搭建模块,在各虚拟机中安装检测引擎;
样本获取模块,获取待检测样本,并分发到各检测引擎的任务队列;
任务监控模块,对各检测引擎任务队列实时监控,判断是否存在待扫描任务为零的检测引擎,如果存在,则同时获取任务队列中待扫描任务数量最多的检测引擎;
资源调整模块,确认待扫描任务为零的检测引擎的虚拟机是否处于空闲状态,如果是,则关闭所述虚拟机,并增加待扫描任务数量最多的检测引擎的虚拟机。
所述的系统中,所述获取待检测样本,还包括:
获取待检测样本,若提交的待检测样本为URL,则根据URL下载对应文件;
将所述待检测样本缓存到服务器中,并形成供虚拟机下载的临时URL。
所述的系统中,所述的分发到各检测引擎的任务队列,具体为:
通过统一的任务队列,将临时URL分发到各检测引擎的任务队列。
所述的系统中,所述确认待扫描任务为零的检测引擎的虚拟机是否处于空闲状态,具体为,通过对各检测引擎的虚拟机的扫描状态进行实时监控获得。
所述的系统中,还包括:将所有虚拟机镜像存储在虚拟内存盘中进行扫描。
如上任一所述的系统中,还包括:各检测引擎的虚拟机解析扫描日志,获取各检测引擎的扫描结果,并插入到对应检测引擎的结果队列中;
获取各检测引擎的结果队列中的扫描结果,并合并同一待检测样本的扫描结果,将合并后的扫描结果插入到统一的结果队列中。
本发明采用多实体机,每个实体机利用虚拟化技术安装多个虚拟机的方式,安装检测引擎进行对照扫描,通过对各检测引擎的扫描任务数和扫描虚拟机的忙闲状态的实时监控,可快速发现各检测引擎的扫描速度,动态调整不同检测引擎的虚拟机个数,如关闭扫描速度快且处于空闲状态的检测引擎,增加扫描速度慢的检测引擎,使得系统资源能够得到充分利用。并且各检测引擎从各自任务队列获取任务进行扫描,便于系统对各检测引擎进行实时监控;所有扫描虚拟机镜像放在虚拟内存盘中进行扫描,可以提高文件读写吞吐率。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于硬件资源的多引擎对照扫描动态调整方法实施例流程图;
图2为本发明基于硬件资源的多引擎对照扫描动态调整系统结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。
本发明提出了一种基于硬件资源的多引擎对照扫描动态调整方法及系统,充分利用硬件资源,通过对系统资源的动态调整,达到提高系统整体扫描速度,快速判定恶意代码的目的,同时本方法的系统采用统一的任务队列和结果队列进行管理,系统各个模块耦合度低,易于集群化分布式部署。
本发明通过如下方法实现:
首先提出一种基于硬件资源的多引擎对照扫描动态调整方法;
建立多引擎对照扫描环境:在至少两个实体机上,利用虚拟化技术分别安装至少两个虚拟机;在各虚拟机中安装检测引擎;
多引擎对照扫描动态调整的方法流程如图1所示:
S101:获取待检测样本,并分发到各检测引擎的任务队列;
S102:对各检测引擎的任务队列实时监控,判断是否存在待扫描任务为零的检测引擎,如果存在,则执行S103,否则继续监控;
S103:获取任务队列中待扫描任务数量最多的检测引擎;
S104:确认待扫描任务为零的检测引擎的虚拟机是否处于空闲状态,如果是,则执行S105;否则继续监控。
S105:关闭所述虚拟机,并增加待扫描任务数量最多的检测引擎的虚拟机。
所述的方法中,所述获取待检测样本,还包括:
获取待检测样本,若提交的待检测样本为URL,则根据URL下载对应文件;
将所述待检测样本缓存到服务器中,并形成供虚拟机下载的临时URL。可以利用搭建的静态文件下载服务形成可供虚拟机下载的临时URL。
所述的方法中,所述的分发到各检测引擎的任务队列,具体为:
通过统一的任务队列,将临时URL分发到各检测引擎的任务队列。
所述的方法中,所述确认待扫描任务为零的检测引擎的虚拟机是否处于空闲状态,具体为,通过对各检测引擎的虚拟机的扫描状态进行实时监控获得。
所述的方法中,还包括:将所有虚拟机镜像存储在虚拟内存盘中进行扫描。
上述任一所述的方法中,还包括:各检测引擎的虚拟机解析扫描日志,获取各检测引擎的扫描结果,并插入到对应检测引擎的结果队列中;
获取各检测引擎的结果队列中的扫描结果,并合并同一待检测样本的扫描结果,将合并后的扫描结果插入到统一的结果队列中。
通过统一的任务队列和结果队列进行管理,各虚拟机中检测引擎的耦合度低,易于集群化分布式部署。
本发明还提出一种基于硬件资源的多引擎对照扫描动态调整系统,如图2所示,包括:
检测虚拟机搭建模块201,在至少两个实体机上,利用虚拟化技术分别安装至少两个虚拟机;
检测引擎搭建模块202,在各虚拟机中安装检测引擎;
样本获取模块203,获取待检测样本,并分发到各检测引擎的任务队列;
任务监控模块204,对各检测引擎任务队列实时监控,判断是否存在待扫描任务为零的检测引擎,如果存在,则同时获取任务队列中待扫描任务数量最多的检测引擎;
资源调整模块205,确认待扫描任务为零的检测引擎的虚拟机是否处于空闲状态,如果是,则关闭所述虚拟机,并增加待扫描任务数量最多的检测引擎的虚拟机。
所述的系统中,所述获取待检测样本,还包括:
获取待检测样本,若提交的待检测样本为URL,则根据URL下载对应文件;
将所述待检测样本缓存到服务器中,并形成供虚拟机下载的临时URL。
所述的系统中,所述的分发到各检测引擎的任务队列,具体为:
通过统一的任务队列,将临时URL分发到各检测引擎的任务队列。
所述的系统中,所述确认待扫描任务为零的检测引擎的虚拟机是否处于空闲状态,具体为,通过对各检测引擎的虚拟机的扫描状态进行实时监控获得。
所述的系统中,还包括:将所有虚拟机镜像存储在虚拟内存盘中进行扫描。
如上任一所述的系统中,还包括:各检测引擎的虚拟机解析扫描日志,获取各检测引擎的扫描结果,并插入到对应检测引擎的结果队列中;
获取各检测引擎的结果队列中的扫描结果,并合并同一待检测样本的扫描结果,将合并后的扫描结果插入到统一的结果队列中。
本发明采用多实体机,每个实体机利用虚拟化技术安装多个虚拟机的方式,安装检测引擎进行对照扫描,通过对各检测引擎的扫描任务数和扫描虚拟机的忙闲状态的实时监控,可快速发现各检测引擎的扫描速度,动态调整不同检测引擎的虚拟机个数,如关闭扫描速度快且处于空闲状态的检测引擎,增加扫描速度慢的检测引擎,使得系统资源能够得到充分利用。并且各检测引擎从各自任务队列获取任务进行扫描,便于系统对各检测引擎进行实时监控;所有扫描虚拟机镜像放在虚拟内存盘中进行扫描,可以提高文件读写吞吐率。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。