掌桥专利:专业的专利平台
掌桥专利
首页

一种多扫描引擎对照扫描方法、装置及电子设备

文献发布时间:2023-06-19 18:37:28


一种多扫描引擎对照扫描方法、装置及电子设备

技术领域

本申请涉及网络安全技术领域,尤其涉及一种多扫描引擎对照扫描方法、装置、电子设备及可读存储介质。

背景技术

近年来,随着科技的发展,网络安全逐渐成为研究热点。随着引导型恶意代码、文件型恶意代码、蠕虫、特洛伊木马、后门、宏恶意代码等恶意代码的不断出现,使得网络安全面临着全新的挑战。为了应对这种挑战,通过开发基于多家检测引擎的对照分析系统,利用国内外主流引擎来对恶意代码进行对照扫描,是目前主流的技术手段。

随着云计算产业发展迅速,各种虚拟化技术不断涌现如VMware、Citrix、KVM、Xen等,这些技术往往会被应用于多引擎对照扫描系统中,现有技术中,虚拟机应用于多引擎对照扫描系统时,为了提升资源利用率和扫描速率,通过关闭完成扫描任务的虚拟机,增加其它引擎的虚拟机完成扫描任务,但这种方式,在面对个别引擎CPU和内存高占用较高的情况下,增加其虚拟机的数量会造成系统整体负担上升,最终导致整体的性能下降,进而影响扫描系统的扫描速度。

发明内容

有鉴于此,本申请实施例提供一种多扫描引擎对照扫描方法、装置、电子设备及可读存储介质,便于提高多扫描引擎对照扫描系统的扫描速度。

第一方面,本申请实施例提供一种多扫描引擎对照扫描方法,应用于多扫描引擎对照扫描系统,所述多扫描引擎对照扫描系统包括至少两个扫描引擎,每个扫描引擎对应至少一个虚拟机,每个虚拟机运行有扫描服务;所述方法包括:监控所述多个扫描引擎中是否存在第一目标扫描引擎,并且监控所述第一目标扫描引擎所对应的至少一个虚拟机中是否存在处于空闲状态的虚拟机;其中,所述第一目标扫描引擎为待完成任务的数量为零的扫描引擎;如果存在所述第一目标扫描引擎,并且所述第一目标扫描引擎所对应的至少一个虚拟机中存在处于空闲状态的虚拟机,则关闭所述空闲状态的虚拟机;根据除所述第一目标扫描引擎之外的其它各扫描引擎的预设的优先级权重,在所述其它各扫描引擎中,确定优先级权重最高的第二目标扫描引擎;其中,所述优先级权重表征资源利用率和/或样本扫描速度;针对所述第二目标扫描引擎,创建新的虚拟机,以使所述新的虚拟机和所述第二目标扫描引擎对应的所述至少一个虚拟机上的扫描服务共同执行扫描任务。

根据本申请实施例的一种具体实现方式,所述监控所述多个扫描引擎中是否存在第一目标扫描引擎,包括:监控所述多个扫描引擎的任务队列;根据各扫描引擎的任务队列的长度,确定是否存在所述第一目标扫描引擎。

根据本申请实施例的一种具体实现方式,所述至少两个扫描引擎的优先级权重根据如下步骤预先确定:获取每个扫描引擎在单独扫描同一样本时,CPU的使用率、内存的使用率和/或所使用的时间;根据每个扫描引擎对应的CPU的使用率、内存的使用率和/或所使用的时间,确定每个扫描引擎的优先级权重。

根据本申请实施例的一种具体实现方式,所述虚拟机为容器。

根据本申请实施例的一种具体实现方式,在监控所述多个扫描引擎中是否存在第一目标扫描引擎之前,所述方法还包括:生成每个扫描引擎的镜像文件;其中所述镜像文件包括扫描服务;根据每个扫描引擎的镜像文件,为每个扫描引擎创建所述至少一个虚拟机,以使扫描服务运行在对应的虚拟机上。

根据本申请实施例的一种具体实现方式,在监控所述多个扫描引擎中是否存在第一目标扫描引擎之前,所述方法还包括:获取待扫描样本,并将所述待扫描样本插入各扫描引擎的任务队列中。

根据本申请实施例的一种具体实现方式,所述获取待扫描样本,包括:获取待扫描样本对应的存储地址;根据所述存储地址,下载所述待扫描样本。

第二方面,本申请实施例提供多扫描引擎对照扫描装置,应用于多扫描引擎对照扫描系统,所述多扫描引擎对照扫描系统包括至少两个扫描引擎,每个扫描引擎对应至少一个虚拟机,每个虚拟机运行有扫描服务;所述装置包括:监控模块,用于监控所述多个扫描引擎中是否存在第一目标扫描引擎,并且监控所述第一目标扫描引擎所对应的至少一个虚拟机中是否存在处于空闲状态的虚拟机;其中,所述第一目标扫描引擎为待完成任务的数量为零的扫描引擎;关闭模块,用于如果存在所述第一目标扫描引擎,并且所述第一目标扫描引擎所对应的至少一个虚拟机中存在处于空闲状态的虚拟机,则关闭所述空闲状态的虚拟机;第一确定模块,用于根据除所述第一目标扫描引擎之外的其它各扫描引擎的预设的优先级权重,在所述其它各扫描引擎中,确定优先级权重最高的第二目标扫描引擎;其中,所述优先级权重表征资源利用率和/或样本扫描速度;创建模块,用于针对所述第二目标扫描引擎,创建新的虚拟机,以使所述新的虚拟机和所述第二目标扫描引擎对应的所述至少一个虚拟机上的扫描服务共同执行扫描任务。

第三方面,本申请实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实现方式所述的多扫描引擎对照扫描方法。

第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一实现方式所述的多扫描引擎对照扫描方法。

本实施例的多扫描引擎对照扫描方法、装置、电子设备及可读存储介质,监控多个扫描引擎中是否存在第一目标扫描引擎,并且监控第一目标扫描引擎所对应的至少一个虚拟机中是否存在处于空闲状态的虚拟机,在第一目标扫描引擎待完成任务数量为零,且在第一目标扫描引擎中存在处于空闲状态的虚拟机的情况下,可以关闭处于空闲状态的虚拟机,而后,在其它各扫描引擎中,确定优先级权重最高的第二目标扫描引擎,并针对第二目标扫描引擎,创建新的虚拟机,这样,新的虚拟机和第二目标扫描引擎对应的至少一个虚拟机上的扫描服务共同执行扫描任务即增加第二目标扫描引擎对应的虚拟机的数量,而优先级权重表征资源利用率和/或样本扫描速度,这样,在其它各扫描引擎中优先级权重最高的第二目标扫描引擎为在其它还正在执行任务的扫描引擎当中资源利用率最高和/或样本扫描速度最快的扫描引擎,在关闭处于空闲状态的虚拟机的前提下,为资源利用率最高和/或样本扫描速度最快的扫描引擎增加虚拟机,能够提高第二目标扫描引擎的扫描速度,进一步,便于提高多扫描引擎对照扫描系统的扫描速度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请一实施例提供的多扫描引擎对照扫描方法的流程示意图;

图2为本申请一具体实施例提供的多扫描引擎对照扫描方法的流程示意图;

图3为本申请一实施例提供的多扫描引擎对照扫描装置的结构示意图;

图4为本申请一实施例提供的电子设备的结构示意图。

具体实施方式

下面结合附图对本申请实施例进行详细描述。应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

为使本领域技术人员更好地理解本申请实施例的技术构思、实施方案和有益效果,下面通过具体实施例进行详细说明。

本申请一实施例提供的一种多扫描引擎对照扫描方法,便于提高多扫描引擎对照扫描系统的扫描速度。

图1为本申请一实施例提供的多扫描引擎对照扫描方法的流程示意图,如图1所示,本实施例的多扫描引擎对照扫描方法,应用于多扫描引擎对照扫描系统,多扫描引擎对照扫描系统包括至少两个扫描引擎,每个扫描引擎对应至少一个虚拟机,每个虚拟机运行有扫描服务。

本实施例的多扫描引擎对照扫描系统中的至少两个扫描引擎,每个扫描引擎对相同的样本进行扫描,如有一批样本,则每个扫描引擎的扫描任务均为该批样本。在本实施例的多扫描引擎对照扫描系统中,每个扫描引擎对应的至少一个虚拟机中运行有扫描服务,在对样本进行扫描时,由每个虚拟机中的扫描服务对样本进行扫描,即每个扫描引擎所对应的各虚拟机中的扫描服务执行扫描任务,在执行过程中,一个扫描引擎中的一个虚拟机从该一批样本中获取样本A,扫描完成后,再从该一批样本中获取样本B进行扫描,以此类推;同时,其它虚拟机执行过程类似,直至完成该扫描引擎的扫描任务为止。其它扫描引擎类似执行各自的扫描任务。

多扫描引擎对照扫描系统中的各个扫描引擎的扫描任务完成后,可以根据需要对扫描结果进行处理。

本实施例的方法可以包括:

S101、监控多个扫描引擎中是否存在第一目标扫描引擎,并且监控第一目标扫描引擎所对应的至少一个虚拟机中是否存在处于空闲状态的虚拟机。

本实施例中,第一目标扫描引擎为待完成任务的数量为零的扫描引擎。

对多扫描引擎对照扫描系统中各扫描引擎进行监控,确定待完成任务的数量为零的扫描引擎为第一目标扫描引擎,在此基础上,确定第一目标扫描引擎所对应的虚拟机中是否有虚拟机处于空闲状态,处于空闲状态即没有执行任务。

在一些例子中,在扫描样本时,每个引擎所对应的虚拟机从各自引擎所对应的任务队列中获取任务,对应地,为了较为便捷地确定是否存在第一目标扫描引擎,在一些例子中,监控多个扫描引擎中是否存在第一目标扫描引擎,可以包括:

S101a、监控多个扫描引擎的任务队列。

每个扫描引擎对应一个任务队列。

本实施例中,通过监控多个扫描引擎的任务队列,确定是否存在扫描任务的数量为零的第一目标扫描引擎。

S101b、根据各扫描引擎的任务队列的长度,确定是否存在第一目标扫描引擎。

在开始时每个扫描引擎的任务为多个的情况下,此时,任务队列的长度为大于0。在执行扫描任务过程中,随着每个引擎所对应的虚拟机从任务队列中取出任务,任务队列的长度在减少,当监控到有任务队列的长度为零时,可以确定该任务队列对应的扫描引擎的待扫描任务的数量为零。

可以理解的是,本实施例中的待扫描任务的数量为零,指的是任务队列中的没有任务供虚拟机获取,而此时,该任务队列所对应的虚拟机中的至少部分虚拟机还正在执行之前获取到的扫描任务,当然,该任务队列所对应的虚拟机也可全部处于空闲状态。

S102、如果存在第一目标扫描引擎,并且第一目标扫描引擎所对应的至少一个虚拟机中存在处于空闲状态的虚拟机,则关闭空闲状态的虚拟机。

在待完成任务的数量为零的扫描引擎,并且该扫描引擎所对应的至少一个虚拟机中存在处于空闲状态的虚拟机的情况下,说明处于空闲状态的虚拟机已经没有扫描任务需要执行,此时,为了节省资源,提高扫描效率,可以将空闲状态的虚拟机关闭。

S103、根据除第一目标扫描引擎之外的其它各扫描引擎的预设的优先级权重,在其它各扫描引擎中,确定优先级权重最高的第二目标扫描引擎。

本实施例中,优先级权重表征资源利用率和/或样本扫描速度。

资源利用率可为计算机资源如内存和/或CPU的利用率。

如对照扫描系统中包括扫描引擎A、扫描引擎B和扫描引擎C,当扫描引擎A被确定为第一目标扫描引擎,则根据扫描引擎B和扫描引擎C的预设的优先级权重,在描引擎B和扫描引擎C中,确定优先级权重最高的扫描引擎,将该引擎作为第二目标扫描引擎。

S104、针对第二目标扫描引擎,创建新的虚拟机,以使新的虚拟机和第二目标扫描引擎对应的至少一个虚拟机上的扫描服务共同执行扫描任务。

创建的新的虚拟机和多扫描引擎对照扫描系统中最初的第二目标扫描引擎所对应的至少一个虚拟机上的扫描服务共同执行扫描任务,这样可以提高第二目标扫描引擎的扫描速度。

本实施例创建的新的虚拟机的数量可为一个也可为多个,具体可根据系统资源确定。

本实施例,监控多个扫描引擎中是否存在第一目标扫描引擎,并且监控待第一目标扫描引擎所对应的至少一个虚拟机中是否存在处于空闲状态的虚拟机,在第一目标扫描引擎待完成任务数量为零,且在第一目标扫描引擎中存在处于空闲状态的虚拟机的情况下,可以关闭处于空闲状态的虚拟机,而后,在其它各扫描引擎中,确定优先级权重最高的第二目标扫描引擎,并针对第二目标扫描引擎,创建新的虚拟机,这样,新的虚拟机和第二目标扫描引擎对应的至少一个虚拟机上的扫描服务共同执行扫描任务即增加第二目标扫描引擎对应的虚拟机的数量,而优先级权重表征资源利用率和/或样本扫描速度,这样,在其它各扫描引擎中优先级权重最高的第二目标扫描引擎为在其它还正在执行任务的扫描引擎当中资源利用率最高和/或样本扫描速度最快的扫描引擎,在关闭处于空闲状态的虚拟机的前提下,为资源利用率最高和/或样本扫描速度最快的扫描引擎增加虚拟机,能够提高第二目标扫描引擎的扫描速度,进一步,便于提高多扫描引擎对照扫描系统的扫描速度,此外,能够充分利用可用资源。

本申请又一实施例,与上述实施例基本相同,不同之处在于,本实施例的各扫描引擎的预设的优先级权重根据如下步骤预先确定:

S105、获取每个扫描引擎在单独扫描同一样本时,CPU的使用率、内存的使用率和/或所使用的时间。

样本数量可为一个也可为多个,在样本数量为多个的情况下,本实施例的同一样本指该多个样本。

每个扫描引擎单独扫描时,所处的硬件环境相同。

对于同一样本,每个扫描引擎单独进行扫描样本,获取每个引擎对应的CPU的使用率、内存的使用率和/或所使用的时间。

CPU使用率可以通过已使用的CPU和总的CPU大小的百分比来获得,但是这样计算的使用率范围为0和1之间,无论CPU使用率发生多少变化,CPU的使用率变换很小,为此,可以换一种计算方式,在一些例子中,可以根据如下公式确定CPU的使用率:

其中,H(u)为CPU的使用率;

其中,Q

根据如下公式确定内存的使用率:

其中,R(u)为内存的使用率;

其中,M

内存使用率的计算方式类似CPU。

根据如下公式确定所使用的时间:

其中,K(u)为所使用的时间;

其中,C

样本扫描时间通过将该引擎扫描这批样本所需时间,除以所有引擎单独扫描这批样本所需时间的总和。

S106、根据每个扫描引擎对应的CPU的使用率、内存的使用率和/或所使用的时间,确定每个扫描引擎的优先级权重。

可以将每个扫描引擎对应的CPU的使用率、内存的使用率和/或所使用的时间相加,确定每个扫描引擎的优先级权重。

然而,在不同的场合,这每个因素对服务质量的重视程度不同,所以可以考虑使用权重向量,表明它们对不同业务的整体服务质量的不同影响。

在优先级权重包括CPU的使用率、内存的使用率和所使用的时间时,引擎优先级权重函数W则可以表示为如下公式:

其中,

本实施例的虚拟机可以为KVM虚拟机(Kernel-based Virtual Machine),也可为容器。

在一些例子中,虚拟机为容器。

容器具有轻量级、易部署、资源消耗也更少的特点,相比于传统虚拟机,容器可以在秒级启动和停止,并且可以持续集成、交付和部署,为开发、测试和生产提供一致的环境,能够避免使用KVM虚拟机而导致的时间利用率过高、开机时间长、关机时间长、调度迁移过程复杂等诸多限制,本实施例中,可以通过容器化技术创建容器,进一步地,在扫描系统运行过程中,使扫描任务在容器中执行。

本申请再一实施例,与上述实施例基本相同,不同之处在于,本实施例,在监控多个扫描引擎中是否存在第一目标扫描引擎之前,所述方法还可以包括:

S107、生成每个扫描引擎的镜像文件。

本实施例中,镜像文件可以包括扫描服务。

在虚拟机为容器的情况下,本实施例中可以采用容器化技术如Docker容器化技术,为每个引擎生成其对应的镜像文件,并加载到Docker中,在需要使用对应引擎时,直接通过Docker创建其容器,在容器内部执行引擎的扫描命令。

S108、根据每个扫描引擎的镜像文件,为每个扫描引擎创建所述至少一个虚拟机,以使扫描服务运行在对应的虚拟机上。

本实施例中,可以通过Docker创建其容器,该容器中包括扫描服务,这样,在容器内部执行引擎的扫描命令。

本申请再一实施例,与上述实施例基本相同,不同之处在于,本实施例,在监控多个扫描引擎中是否存在第一目标扫描引擎之前,所述方法还可以包括:

S109、获取待扫描样本,并将待扫描样本插入各扫描引擎的任务队列中。

将待扫描样本,分别插入各扫描引擎的任务队列中,以便各扫描引擎所对应的至少一个虚拟机从各自的任务队列中获取待扫描样本,还可以通过对任务队列的长度进行监控,确定待完成任务的数量是否为零。

在一些例子中,获取待扫描样本,可以包括:

S109a、获取待扫描样本对应的存储地址。

可以将存储地址放入队列中,各扫描引擎的虚拟机可以从该队列中获取存储地址。

S109b、根据存储地址,下载所述待扫描样本。

虚拟机可以根据存储地址,下载该存储地址上的待扫描样本,进而对待扫描样本进行扫描。

下面以一具体实施例,对本申请的方案进行详细说明。

参见图2,本实施例的多扫描引擎对照扫描方法,可以包括:

S01:计算各个引擎优先级权重

在向系统中大量投放样本之前,首先通过容器调度算法计算出各个引擎优先级权重。

优先级权重计算方式:本实施例的优先级权重主要依赖于三个部分包括CPU使用率、内存使用率以及系统中样本扫描时间,其中,CPU使用率计算公式如下:

其中,Q

内存使用率的计算方式类似CPU,计算公式如下:

其中,M

其中,M

系统中样本扫描时间主要根据各个引擎在面对相同批次样本,所需检测时间和各个引擎所需时间总和的比例来决定的,公式如下:

其中,

其中,C

在不同的场合,这三个因素对服务质量的重视程度不同,所以我们考虑使用权重向量

S02:样本扫描任务分发

将样本信息存放到队列当中,向各个容器推送扫描任务。

S03:各家引擎容器扫描

各个引擎的容器从队列中获取其扫描任务,下载样本,然后批量扫描,解析扫描日志得到扫描结果,最终插入自家引擎的结果队列中。

S04:各家引擎容器状态监控

通过对各家引擎容器的扫描状态进行实时监控,确认扫描任务为零引擎的容器是否处于空闲状态,若引擎A存在处于空闲状态的容器,则进入S05,否则继续S04。

S05:获取优先级最高的引擎

根据实时监控的结果,通过S01计算得到的引擎优先级权重,获取当前优先级最高且仍然在执行扫描任务的引擎A。

S06:动态调整容器

动态调整容器的个数,例如,当引擎A执行完成扫描任务,那么关闭空闲引擎A的容器,增加S05中获取的优先级最高的引擎B的容器数量,使系统资源得到合理利用。

S07:获取样本扫描结果

从各家引擎的结果队列中获取扫描结果,对同一样本的扫描结果进行合并,将合并后的结果插入统一的结果队列中。

在S02之前,可以采用容器化技术如Docker容器化技术,为每个引擎生成其对应的镜像,并加载到Docker中,在需要使用对应引擎时,直接通过Docker创建其容器,在容器内部执行引擎的扫描命令。

可以理解的是,当引擎B出现空闲的容器,关闭空闲的容器,增加除A和B之外的其它引擎中优先级最高的引擎的容器数量,使系统的资源得到合理的利用。

本实施例,监控多个扫描引擎中是否存在第一目标扫描引擎,并且监控第一目标扫描引擎所对应的至少一个虚拟机中是否存在处于空闲状态的虚拟机,在第一目标扫描引擎待完成任务数量为零,且在第一目标扫描引擎中存在处于空闲状态的虚拟机的情况下,可以关闭处于空闲状态的虚拟机,而后,在其它各扫描引擎中,确定优先级权重最高的第二目标扫描引擎,并针对第二目标扫描引擎,创建新的虚拟机,这样,新的虚拟机和第二目标扫描引擎对应的至少一个虚拟机上的扫描服务共同执行扫描任务,即增加第二目标扫描引擎对应的虚拟机的数量,而优先级权重表征资源利用率和/或样本扫描速度,这样,在其它各扫描引擎中优先级权重最高的第二目标扫描引擎为在其它还正在执行任务的扫描引擎当中资源利用率最高和/或样本扫描速度最快的扫描引擎,在关闭处于空闲状态的虚拟机的前提下,为资源利用率最高和/或样本扫描速度最快的扫描引擎增加虚拟机,能够提高第二目标扫描引擎的扫描速度,进一步,便于提高多扫描引擎对照扫描系统的扫描速度,为了方便确定优先级,根据每个扫描引擎对应的CPU的使用率、内存的使用率和/或所使用的时间,确定每个扫描引擎的优先级权重,为了使扫描系统更加轻量级、易部署、资源消耗少,虚拟机为容器,在监控多个扫描引擎中是否存在第一目标扫描引擎之前,生成每个扫描引擎的镜像文件,根据每个扫描引擎的镜像文件,为每个扫描引擎创建所述至少一个虚拟机,以使扫描服务运行在对应的虚拟机上,在监控多个扫描引擎中是否存在第一目标扫描引擎之前,还获取待扫描样本,并将待扫描样本插入各扫描引擎的任务队列中,以便各扫描引擎所对应的至少一个虚拟机从各自的任务队列中获取待扫描样本,还可以通过对任务队列的长度进行监控,确定待完成任务的数量是否为零,获取带扫描样本,可以通过获取待扫描样本对应的存储地址,根据存储地址,下载所述待扫描样本。

本申请一实施例提供的多扫描引擎对照扫描装置,便于提高多扫描引擎对照扫描系统的扫描速度。

图3为本申请一实施例提供的多扫描引擎对照扫描装置的结构示意图,如图3所示,本实施例的多扫描引擎对照扫描装置,应用于多扫描引擎对照扫描系统,所述多扫描引擎对照扫描系统包括至少两个扫描引擎,每个扫描引擎对应至少一个虚拟机,每个虚拟机运行有扫描服务;所述装置包括:监控模块11,用于监控所述多个扫描引擎中是否存在第一目标扫描引擎,并且监控所述第一目标扫描引擎所对应的至少一个虚拟机中是否存在处于空闲状态的虚拟机;其中,所述第一目标扫描引擎为待完成任务的数量为零的扫描引擎;关闭模块12,用于如果存在所述第一目标扫描引擎,并且所述第一目标扫描引擎所对应的至少一个虚拟机中存在处于空闲状态的虚拟机,则关闭所述空闲状态的虚拟机;第一确定模块13,用于根据除所述第一目标扫描引擎之外的其它各扫描引擎的预设的优先级权重,在所述其它各扫描引擎中,确定优先级权重最高的第二目标扫描引擎;其中,所述优先级权重表征资源利用率和/或样本扫描速度;创建模块14,用于针对所述第二目标扫描引擎,创建新的虚拟机,以使所述新的虚拟机和所述第二目标扫描引擎对应的所述至少一个虚拟机上的扫描服务共同执行扫描任务。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本实施例的装置,监控多个扫描引擎中是否存在第一目标扫描引擎,并且监控第一目标扫描引擎所对应的至少一个虚拟机中是否存在处于空闲状态的虚拟机,在第一目标扫描引擎待完成任务数量为零,且在第一目标扫描引擎中存在处于空闲状态的虚拟机的情况下,可以关闭处于空闲状态的虚拟机,而后,在其它各扫描引擎中,确定优先级权重最高的第二目标扫描引擎,并针对第二目标扫描引擎,创建新的虚拟机,这样,新的虚拟机和第二目标扫描引擎对应的至少一个虚拟机上的扫描服务共同执行扫描任务即增加第二目标扫描引擎对应的虚拟机的数量,而优先级权重表征资源利用率和/或样本扫描速度,这样,在其它各扫描引擎中优先级权重最高的第二目标扫描引擎为在其它还正在执行任务的扫描引擎当中资源利用率最高和/或样本扫描速度最快的扫描引擎,在关闭处于空闲状态的虚拟机的前提下,为资源利用率最高和/或样本扫描速度最快的扫描引擎增加虚拟机,能够提高第二目标扫描引擎的扫描速度,进一步,便于提高多扫描引擎对照扫描系统的扫描速度,此外,能够充分利用可用资源。

作为一可选实施方式,所述监控模块,具体用于:监控所述多个扫描引擎的任务队列;根据各扫描引擎的任务队列的长度,确定是否存在所述第一目标扫描引擎。

作为一可选实施方式,所述装置还包括:第一获取模块,用于获取每个扫描引擎在单独扫描同一样本时,CPU的使用率、内存的使用率和/或所使用的时间;第二确定模块,用于根据每个扫描引擎对应的CPU的使用率、内存的使用率和/或所使用的时间,确定每个扫描引擎的优先级权重。

作为一可选实施方式,所述获取模块,具体用于:根据如下公式确定CPU的使用率:

其中,H(u)为CPU的使用率;

其中,Q

和/或,根据如下公式确定内存的使用率:

其中,R(u)为内存的使用率;

其中,M

和/或,根据如下公式确定所使用的时间:

其中,K(u)为所使用的时间;

其中,C

作为一可选实施方式,所述获取模块,具体用于:根据如下公式确定每个扫描引擎的优先级权重:

其中,

作为一可选实施方式,所述虚拟机为容器。

作为一可选实施方式,所述装置具体还用于:在所述监控模块监控所述多个扫描引擎中是否存在第一目标扫描引擎之前,生成每个扫描引擎的镜像文件;其中所述镜像文件包括扫描服务;根据每个扫描引擎的镜像文件,为每个扫描引擎创建所述至少一个虚拟机,以使扫描服务运行在对应的虚拟机上。

作为一可选实施方式,所述装置还包括:第二获取模块,用于在所述监控模块监控所述多个扫描引擎中是否存在第一目标扫描引擎之前,获取待扫描样本,并将所述待扫描样本插入各扫描引擎的任务队列中。

作为一可选实施方式,所述获取模块,具体用于:获取待扫描样本对应的存储地址;根据所述存储地址,下载所述待扫描样本。

上述实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图4为本申请一实施例提供的电子设备的结构示意图,如图4所示,可以包括:壳体61、处理器62、存储器63、电路板64和电源电路65,其中,电路板64安置在壳体61围成的空间内部,处理器62和存储器63设置在电路板64上;电源电路65,用于为上述电子设备的各个电路或器件供电;存储器63用于存储可执行程序代码;处理器62通过读取存储器63中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述实施例提供的任一种多扫描引擎对照扫描方法,因此也能实现相应的有益技术效果,前文已经进行了详细说明,此处不再赘述。

上述电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

相应的,本申请的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种多扫描引擎对照扫描方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本申请时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

技术分类

06120115635721