一种插件扫描、确定插件内规则调度顺序的方法及装置与流程

文档序号:11930452阅读:164来源:国知局
一种插件扫描、确定插件内规则调度顺序的方法及装置与流程

本发明涉及互联网安全技术领域,尤其涉及一种插件扫描、确定插件内规则调度顺序的方法及装置。



背景技术:

随着网络技术的日益发展,网络安全问题成为一个关注的热点。漏洞扫描器是一种自动检测远程或本地主机安全性弱点的程序。根据现有的运行机制,漏洞扫描器在启动过程中,要将其所支持的插件加载到内存中,然后根据需要调度这些插件,使这些插件在运行过程中实现对相应漏洞的扫描。

现有技术中漏洞扫描器调度的最小单位为插件,针对一个插件而言,扫描一个漏洞是否存在,可以有很多的规则条件,少则几条,多则几十条。在扫描插件时,一般不考虑插件的调度顺序,即随机选择插件中的规则条件进行调用,或者按照简单的排列方式人工进行调整。然而,对于存在同一漏洞的不同的扫描目标而言,它们可能都是由该漏洞所对应的插件中的某一规则条件扫描得出的。而随机选择规则条件或人工调整的方式,对于未知的扫描目标来说,必然会造成浪费大量的时间和计算机资源,降低扫描速度和效率,且人工调整具有很大的随机性和不确定性。此外,对于漏洞扫描器而言,插件数一般都是成千上万,由于每个插件的扫描速度和效率低,从而降低了漏洞扫描器的扫描性能。

综上所述,现有技术中漏洞扫描器在扫描漏洞时,由于每个插件扫描浪费大量的时间和计算机资源,扫描速度和效率低,导致漏洞扫描器的整体扫描性能较低。



技术实现要素:

本发明提出了一种插件扫描、确定插件内规则调度顺序的方法及装置,用以解决现有技术中漏洞扫描器在扫描漏洞时,通常都是随机选择插件中的规则条件或人工调整规则条件,因而具有很大的随机性和不确定性,在对未知的多个扫描目标进行扫描时,由于每个插件内部规则调度序列不当导致浪费大量的时间和计算机资源,降低了扫描速度和效率低,导致漏洞扫描器的整体扫描性能较低的问题。

本发明实施例提供一种确定插件内规则调度顺序的方法,包括:

获取插件的各规则通道,所述插件通过所述各规则通道扫描出同一漏洞;

针对每条规则通道,确定所述规则通道中各独立规则的资源消耗量和所述规则通道扫描出所述漏洞的命中率;根据所述各独立规则的资源消耗量和所述规则通道的命中率,确定所述规则通道的优先级;所述独立规则在漏洞扫描过程中可独立运行且与其它规则无依赖关系;

根据各规则通道的优先级,确定所述插件运行时所述各规则通道的调度顺序。

较佳地,所述方法还包括:

若所述各规则通道中存在至少两条规则通道具有共享规则,确定共享规则的数量,所述共享规则为所述至少两条规则通道中均包含的独立规则;

针对包含至少一个所述共享规则的规则通道,根据所述至少一个共享规则的资源消耗量,确定所述至少一个共享规则在所述规则通道扫描起始部的顺序。

较佳地,所述确定所述至少一个共享规则在所述规则通道扫描起始部的顺序之后,还包括:

根据所述各规则通道的调度顺序,构建扫描任务调用树,其中,所述扫描任务调用树中不存在重复的独立规则;

所述扫描任务调用树中的每条分支对应一条规则通道,根据除共享规则外的各独立规则的资源消耗量确定各独立规则在各规则通道中分支中的位置。

较佳地,所述根据所述各独立规则的资源消耗量和所述规则通道的命中率,确定所述规则通道的优先级,包括:

根据各独立规则的资源消耗量确定所述规则通道的资源消耗量;

确定各规则通道的命中率与资源消耗量的比值;

将各规则通道按照命中率与资源消耗量的比值从小到大进行排序,得到所述各规则通道的优先级。

本发明实施例还提供一种插件扫描的方法,包括:

获取扫描任务,确定扫描任务的插件;

获取所述插件的各规则通道的调度顺序,所述各规则通道的调度顺序根据各规则通道中的各独立规则的资源消耗量和规则通道的命中率确定;

按照所述各规则通道的调度顺序,依次进行漏洞扫描,直至扫描出所述漏洞或所有规则通道均被调用。

较佳地,所述按照所述各规则通道的调度顺序,依次进行漏洞扫描,直至扫描出所述漏洞或所有规则通道均被调用,包括:

使用扫描任务调用树进行漏洞扫描,所述扫描任务调用树根据所述各规则通道的调度顺序构建;所述扫描任务调用树中不存在重复的独立规则,所述扫描任务调用树中的每条分支对应一条规则通道;

若所述扫描任务调用树中的共享规则扫描失败,则从所述扫描任务调用树中删除包含所述共享规则的尚未被调用的规则通道,直至扫描出所述漏洞或所有规则通道均被调用,所述共享规则为所述至少两条规则通道中均包含的独立规则;所述独立规则在漏洞扫描过程中可独立运行且与其它规则无依赖关系。

本发明实施例还提供一种确定插件内规则调度顺序的装置,包括:

获取单元:用于获取插件的各规则通道,所述插件通过所述各规则通道扫描出同一漏洞;

确定单元:用于针对每条规则通道,确定所述规则通道中各独立规则的资源消耗量和所述规则通道扫描出所述漏洞的命中率;根据所述各独立规则的资源消耗量和所述规则通道的命中率,确定所述规则通道的优先级;所述独立规则在漏洞扫描过程中可独立运行且与其它规则无依赖关系;根据各规则通道的优先级,确定所述插件运行时所述各规则通道的调度顺序。

较佳地,所述确定单元,还用于:

若所述各规则通道中存在至少两条规则通道具有共享规则,确定共享规则的数量,所述共享规则为所述至少两条规则通道中均包含的独立规则;

针对包含至少一个所述共享规则的规则通道,根据所述至少一个共享规则的资源消耗量,确定所述至少一个共享规则在所述规则通道扫描起始部的顺序。

较佳地,所述确定单元,还用于:

根据所述各规则通道的调度顺序,构建扫描任务调用树,其中,所述扫描任务调用树中不存在重复的独立规则;

所述扫描任务调用树中的每条分支对应一条规则通道,根据除共享规则外的各独立规则的资源消耗量确定各独立规则在各规则通道中分支中的位置。

较佳地,所述确定单元,具体用于:

根据各独立规则的资源消耗量确定所述规则通道的资源消耗量;

确定各规则通道的命中率与资源消耗量的比值;

将各规则通道按照命中率与资源消耗量的比值从小到大进行排序,得到所述各规则通道的优先级。

本发明实施例还提供一种插件扫描的装置,包括:

任务获取单元:用于获取扫描任务,确定扫描任务的插件;

调度顺序获取单元:用于获取所述插件的各规则通道的调度顺序,所述各规则通道的调度顺序根据各规则通道中的各独立规则的资源消耗量和规则通道的命中率确定;

扫描单元:用于按照所述各规则通道的调度顺序,依次进行漏洞扫描,直至扫描出所述漏洞或所有规则通道均被调用。

较佳地,所述扫描单元,具体用于:

使用扫描任务调用树进行漏洞扫描,所述扫描任务调用树根据所述各规则通道的调度顺序构建;所述扫描任务调用树中不存在重复的独立规则,所述扫描任务调用树中的每条分支对应一条规则通道;

若所述扫描任务调用树中的共享规则扫描失败,则从所述扫描任务调用树中删除包含所述共享规则的尚未被调用的规则通道,直至扫描出所述漏洞或所有规则通道均被调用,所述共享规则为所述至少两条规则通道中均包含的独立规则;所述独立规则在漏洞扫描过程中可独立运行且与其它规则无依赖关系。

本发明实施例提供的一种插件扫描、确定插件内规则调度顺序的方法及装置,在确定插件内规则调度顺序的阶段,首先确定规则通道中各独立规则的资源消耗量和规则通道扫描出漏洞的命中率;然后根据各独立规则的资源消耗量和规则通道的命中率,确定各规则通道的调度顺序。在扫描阶段,按照各规则通道的调度顺序,依次进行漏洞扫描。本发明实施例将插件按照独立规则进行粒化,将扫描调度的最小单位粒化为规则通道,自动确定合理的规则通道调度顺序,提高了插件扫描速度和效率,同时节省了计算机资源,从而提高了漏洞扫描器的整体扫描性能。

附图说明

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

图1为本发明实施例提供的一种漏洞扫描系统结构示意图;

图2为本发明实施例提供的一种确定插件内规则调度顺序的方法流程示意图;

图3为本发明实施例提供的插件A的独立规则确定的有向无环图;

图4a为本发明实施例提供的插件A的一颗规则通道树;

图4b为本发明实施例提供的插件A的另一颗规则通道树;

图4c为本发明实施例提供的插件A的另一颗规则通道树;

图4d为本发明实施例提供的插件A的另一颗规则通道树;

图5为本发明实施例提供的一种插件扫描的方法流程示意图;

图6为本发明实施例提供的一种确定插件内规则调度顺序的装置结构示意图;

图7为本发明实施例提供的一种插件扫描的装置结构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例提供一种漏洞扫描系统,如图1所示,为本发明实施例提供的一种漏洞扫描系统结构示意图,包括:插件规则调度模块101,统计分析模块102,数据库103。其中,数据库103包括规则库1031、插件库1032、漏洞库1033。一个插件可以扫出多个漏洞,一个插件可以包含多条规则。

其中,统计分析模块102用于机器学习阶段,即通过采集大量样本数据,例如,针对一千个目标主机,通过调度插件库1032中的插件进行扫描,统计出扫描出漏洞A的插件B,以及插件B的能够扫描出漏洞A的规则通道,确定插件A中的各条规则通道的命中漏洞B的概率,以及插件A中的每条规则的资源消耗指数,从而确定插件A中的规则的最优调度顺序。因而,对于任意一个插件,统计分析模块102通过大量的样本采集统计分析,都可以得到插件中规则的最优调度顺序。由于统计分析模块102会消耗额外系统资源,所以在实践扫描阶段可以关闭该功能模块。

插件规则调度模块101用于实践扫描阶段,根据统计分析模块102分析出的各插件中规则的调度顺序,调度插件中的规则。

本发明实施例提供的一种漏洞扫描系统,在机器学习阶段,通过统计分析模块102统计插件库1032中各插件内规则的调度顺序。首先确定规则通道中各规则的资源消耗量和规则通道扫描出漏洞的命中率;然后根据各规则的资源消耗量和规则通道的命中率,确定各规则通道的调度顺序。在实践扫描阶段,插件规则调度模块101按照插件中各规则通道的调度顺序,依次进行漏洞扫描。本发明实施例将插件按照规则进行粒化,将扫描调度的最小单位粒化为规则通道,通过机器学习自动统计分析确定出合理的规则通道调度顺序,相对于现有技术中随机扫描插件中规则或人工简单对规则进行排序等方式,提高了插件扫描速度和效率,同时节省了计算机资源,从而提高了漏洞扫描系统的整体扫描性能。

本发明实施例还提供一种确定插件内规则调度顺序的方法,如图2所示,为本发明实施例提供的一种确定插件内规则调度顺序的方法流程示意图,针对任意一个插件,包括:

步骤201:获取插件的各规则通道,插件通过各规则通道扫描出同一漏洞。

具体地,一个插件的扫描结果有以下两种:扫出漏洞,未扫出漏洞。其中,未扫出漏洞分为两种情况:1、所有规则都执行完毕后未扫出漏洞;2、通过某条规则或某几条规则成立推断出不存在某个漏洞。此外,从判断漏洞存在性的角度可以将插件中的规则分为以下几种:1、单条规则就可以判断漏洞的存在性,包括存在、不存在和不确定三种情况;2、若干条规则有前后依赖关系,例如一条规则的输入依赖于另一条规则的输出,本发明的各实施例将有前后依赖关系的规则进行绑定,作为一条独立规则。例如规则R12的输入依赖于规则R11的输出,则将规则R11和规则R12进行绑定,作为一条独立规则R1;3、各规则之间有关联关系,即若干条规则同时成立才可以判断漏洞的存在性,但是这些规则之间没有先后顺序,是相互独立的,本发明的各实施例将在漏洞扫描过程中可独立运行且与其它规则无依赖关系各规则作为独立规则。例如,规则R1、规则R2、规则R3没有前后依赖关系,且规则R1、规则R2和规则R3同时成立才可以判断漏洞B存在,则将规则R1、规则R2和规则R3都为独立规则。

步骤202:针对每条规则通道,确定规则通道中各独立规则的资源消耗量和规则通道扫描出漏洞的命中率;根据各独立规则的资源消耗量和所述规则通道的命中率,确定规则通道的优先级。

具体地,步骤202中,首先根据各独立规则的资源消耗量确定规则通道的资源消耗量;然后确定各规则通道的命中率与资源消耗量的比值;最后将各规则通道按照命中率与资源消耗量的比值从小到大进行排序,得到各规则通道的优先级。

假设插件A共三条规则通道C1、C2、C3。规则通道C1包括独立规则R1、R2、R3,规则通道C2包括独立规则R2、R4、R5;规则通道C1包括独立规则R3、R6。首先计算独立规则R1~R6中每条规则的资源消耗量,具体地,每条独立规则的资源消耗量可以根据每条独立规则的以下任意指标之一或组合确定:CPU使用率、内存占有率、IO占有率、网络占用率等。需要说明的是,本发明实施例中资源消耗量的数学计算方法可以采用现有技术的算法,在此不做限制。

然后,根据独立规则R1、R2、R3确定规则通道C1的资源消耗量D1,根据独立规则R2、R4、R5确定规则通道C2的资源消耗量D2,根据独立规则R3、R6确定规则通道C3的资源消耗量D3。

统计规则通道C1、C2、C3三条通道扫描出漏洞B的命中率。例如针对一千个扫描目标,规则通道C1、C2、C3扫描出漏洞B的次数分别为200次、500次、300次,则规则通道C1、C2、C3扫描出漏洞B的命中率分别为20%、50%、30%。

然后,确定各规则通道的命中率与资源消耗量的比值,对于规则通道C1,计算命中率与资源消耗量的比值N1=20%/D1;对于规则通道C2,计算命中率与资源消耗量的比值N2=50%/D2;对于规则通道C3,计算命中率与资源消耗量的比值N3=30%/D3。比较N1、N2、N3的大小,得到N2>N1>N3,将规则通道按照命中率与资源消耗量的比值从小到大进行排序,得到规则通道的优先级为C2、C1、C3。

步骤203:根据各规则通道的优先级,确定插件运行时各规则通道的调度顺序。

根据步骤202中的举例,由于统计得到插件A规则通道的优先级为C1、C2、C3,则得到插件A运行时规则通道的调度顺序为C2、C1、C3。则在实践扫描阶段,在插件A运行时,根据插件A中规则通道的调度顺序C2、C1、C3依次进行漏洞扫描。

本发明实施例通过将插件按照独立规则进行粒化,将扫描调度的最小单位从插件粒化为插件中的规则通道,自动确定出合理的规则通道调用优先级,相对于现有技术中随机扫描插件中规则或人工简单对规则进行排序等方式,提高了插件扫描速度和效率,同时节省了计算机资源,从而提高了漏洞扫描器的整体扫描性能。

进一步地,在确定了规则通道的优先级之后,还可以确定规则通道内的各独立规则的优先级。

若各规则通道中存在至少两条规则通道具有共享规则,确定共享规则的数量,其中共享规则为所述至少两条规则通道中均包含的独立规则。根据步骤202中的举例,规则通道C1和C2都包含独立规则R2,规则通道C1和C3都包含独立规则R3,则得到插件中包括两条共享规则:R2、R3。

然后,针对包含至少一个所述共享规则的规则通道,根据所述至少一个共享规则的资源消耗量,确定所述至少一个共享规则在所述规则通道扫描起始部的顺序。

具体地,在步骤202中,且已确定出独立规则R1~R6的资源消耗量,假设分别为DR1、DR2、DR3、DR4、DR5、DR6,且DR2>DR3>DR1>DR6>DR4>DR5。由于其中共享规则DR2>DR3,则将共享规则R2作为规则通道C2扫描时的第一个独立规则;将共享规则R3作为规则通道扫描时的C3第一个独立规则;将则将共享规则R3作为规则通道C1扫描时的第一个独立规则,将共享规则R2作为规则通道C1扫描时的第二个独立规则。

进一步地,根据所述各规则通道的调度顺序,构建扫描任务调用树,其中,扫描任务调用树中不存在重复的独立规则。扫描任务调用树中的每条分支对应一条规则通道,根据除共享规则外的各独立规则的资源消耗量确定各独立规则在各规则通道中分支中的位置。

具体地,由于R1~R6的资源消耗量DR2>DR3>DR1>DR6>DR4>DR5,得到规则通道C1内的独立规则的优先级为R3、R2、R1;规则通道C2内的独立规则的优先级为R2、R5、R4;规则通道C3内的独立规则的优先级为R3、R6。根据且步骤202中已确定出规则通道的优先级为C2、C1、C3,得到插件A的独立规则调度顺序R2、R5、R4、R3、R6、R3、R2、R1。为了节省计算机资源,提高扫描效率,仅保留最先出现共享规则的规则通道中的共享规则,即每个独立规则仅扫描一次,得到最后的扫描任务调用树为R2、R5、R4、R3、R6、R1。

本发明实施例首先确定插件中各规则通道的优先级,然后确定规则通道内的各独立规则的优先级,得到最终实践扫描阶段的扫描任务调用树,进一步提高了插件扫描速度和效率,节省了计算机资源,从而提高了漏洞扫描器的整体扫描性能。

下面通过具体的实施例对本发明实施例提供的确定插件内规则调度顺序的方法进行详细说明。

假设某插件A有8条独立规则R1~R8,该8条规则能够联合起来判断漏洞B的存在性。将插件A的8条独立规则作为有向无环图中的8个节点,由于各条独立规则之间的关系独立无前后依赖关系,则建立能够独立判断漏洞存在性的规则通道。如图3所示,假设这8条独立规则中:独立规则1、2、3可以共同判断漏洞B的存在性,得到规则通道树C1;独立规则4、5、3可以共同判断漏洞B的存在性,得到规则通道树C2;独立规则6可以直接判断漏洞B的存在性,得到规则通道树C3;独立规则7、8可以共同判断漏洞B的存在性,得到规则通道树C4。则插件A从扫描开始到结束可以通过C1、C2、C3、C4四条规则通道数中任意一条扫描出漏洞B。

具体地,插件的N条规则为表示描述插件的N个属性,规则是否成立表示是规则的属性值。图4a~图4d所示,为插件A的4颗规则通道树,构建规则通道树时,独立规则可以作为规则通道树的节点,规则的成立与否作为节点的分支,通过自动向下构造规则通道树,图4a~图4d分别构造了四条规则通道树。

由于相同的独立规则可能出现在不同的规则通道树中,而插件调度独立规则的时候在一颗规则通道树失败的情况下才调用另一颗规则通道树,因而在每棵规则通道树中可以将出现在多个通路中的规则节点作为规则通道树的根节点,如图4a和图4b,由于规则通道树C1和规则通道树C2中存在相同的独立规则3,则将独立规则3作为规则通道树的根节点。当根节点失败(规则不成立)时,则表示存在该独立规则的规则通道树全部失败,即存在该独立规则的规则通道树都不能扫描出漏洞B,因而不需要再扫描存在该独立规则的规则通道树,这样可以减少规则的调用次数,从而节省资源。例如,当扫描出独立规则3不成立时,则规则通道树C1和规则通道树C2中的其它规则都不需要再扫描,从而减少规则的调用次数,节省了资源。

进一步地,本发明实施例将规则通道树进行优先级排序,确定出插件规则的调度顺序。

例如,准备样本数据如下,M个扫描目标可能存在漏洞V,现有可以扫描V漏洞的上述包括8条独立规则R1~R8的插件A,该插件对每个扫描目标只扫描一次,则扫描次数一共为M次。此外,为提高统计分析准确性,可尽量增大样本数据M的取值。

假设初始条件下每个独立规则资源消耗均为无线大,随后M个目标站点分别调用插件A进行V漏洞的扫描。A插件对其扫描规则通道树进行随机选取,例如调用的规则通道树顺序依次为C2、C1、C4、C3,则对应的独立规则队列为[4,5,3,1,2,7,8,6],A插件按照独立规则队列进行依次调度,并记录各规则的资源消耗指数,直到判断存在或不存在漏洞后插件A调度结束,对判断出漏洞是否存在的规则通道树概率权重加1。如果规则队列全部调用完也没有判断出漏洞,则各个规则通道树均不加权,认为此次扫描无效。

假设在M次扫描中,有效次数为N(N<M),则统计分析独立规则R1~R8的指标如表1所示,各规则通道树的指标如表2所示。

表1

表2

为了最快的判断漏洞是否存在,期望插件A的规则通道树调度过程中先调用命中概率最大的且资源消耗指数最小的。因而可以用命中概率与资源消耗的比值(P/C)来反映规则通道树的综合得分,得分越高越先被调用。例如通过统计得出规则通道树调度顺序C3,C2,C4,C1,则相对应的独立规则的顺序为6;3,4,5;7,8;1,2,3。

由于各个规则通道树内的独立规则是相互独立,所以调度时是无序的,因此还需要确定规则通道树内的独立规则的顺序,以插件A快速完成扫描。本发明实施例将出现在多颗规则通道树中的独立规则放在每颗规则通道树的最前面,如果有多个这样的规则,则按照资源消耗从低到高排序。对于只存在于一个规则通道树中的独立规则,直接按照资源消耗的高低从低到高排序,得到各规则通道树内的独立规则的顺序。然后将出现多次的相同独立规则进行去重,得出插件A调度独立规则时的规则队列[6,3,4,5,7,8,1,2]。

本发明实施例提供的确定插件内规则调度方法,对插件中的独立规则条件进行粒化和关联性分析,使资源消耗更加粒度化,具体到可以衡量各个插件规则的资源消耗,有助于收集规则性能数据并进行优化;通过机器学习从样本数据中自动分析获取插件规则调度的规律,在实践扫描阶段将此规律运用到的扫描目标,在尽可能快的完成扫描的同时使用系统资源尽可能少,从整体上提高扫描效率。

基于同样的发明构思,本发明实施例还提供一种插件扫描的方法,如图5所示,为本发明实施例提供的一种插件扫描的方法流程示意图,包括:

步骤501:获取扫描任务,确定扫描任务的插件。

步骤502:获取插件的各规则通道的调度顺序,各规则通道的调度顺序根据各规则通道中的各独立规则的资源消耗量和规则通道的命中率确定。

具体地,各规则通道的调度顺序预先通过大量样本统计分析确定,如上述实施例确定的各规则通道的调度顺序C3,C2,C4,C1。

步骤503:按照各规则通道的调度顺序,依次进行漏洞扫描,直至扫描出漏洞或所有规则通道均被调用。

例如,对于目标主机F1,调用插件A中的规则通道树,如调度顺序C3,C2,C4,C1进行扫描漏洞。

进一步地,使用扫描任务调用树进行漏洞扫描,扫描任务调用树根据各规则通道的调度顺序构建;扫描任务调用树中不存在重复的独立规则,扫描任务调用树中的每条分支对应一条规则通道。例如,扫描任务调用树为上述实施例确定的插件A调度独立规则时的规则队列[6,3,4,5,7,8,1,2]。

进一步地,若扫描任务调用树中的共享规则扫描失败,则从扫描任务调用树中删除包含共享规则的尚未被调用的规则通道,直至扫描出所述漏洞或所有规则通道均被调用,共享规则为所述至少两条规则通道中均包含的独立规则;独立规则在漏洞扫描过程中可独立运行且与其它规则无依赖关系。

例如,根据扫描任务调用树[6,3,4,5,7,8,1,2]依次进行扫描,独立规则6未扫描出漏洞,接着扫描独立规则3,此时扫描出独立规则3不成立,则规则通道树C1和规则通道树C2中的其它规则都不需要再扫描,即不再扫描独立规则4、5、1、2,仅接着依次扫描独立规则7、8,从而减少了规则的调用次数,节省了资源。

基于同样的发明构思,本发明实施例还提供一种确定插件内规则调度顺序的装置,具体执行主体可以为本发明实施例提供的漏洞扫描系统中的统计分析模块实现。如图6所示,为本发明实施例提供的一种确定插件内规则调度顺序的装置结构示意图,包括:

获取单元601:用于获取插件的各规则通道,所述插件通过所述各规则通道扫描出同一漏洞;

确定单元602:用于针对每条规则通道,确定所述规则通道中各独立规则的资源消耗量和所述规则通道扫描出所述漏洞的命中率;根据所述各独立规则的资源消耗量和所述规则通道的命中率,确定所述规则通道的优先级;所述独立规则在漏洞扫描过程中可独立运行且与其它规则无依赖关系;根据各规则通道的优先级,确定所述插件运行时所述各规则通道的调度顺序。

较佳地,所述确定单元602,还用于:

若所述各规则通道中存在至少两条规则通道具有共享规则,确定共享规则的数量,所述共享规则为所述至少两条规则通道中均包含的独立规则;

针对包含至少一个所述共享规则的规则通道,根据所述至少一个共享规则的资源消耗量,确定所述至少一个共享规则在所述规则通道扫描起始部的顺序。

较佳地,所述确定单元602,还用于:

根据所述各规则通道的调度顺序,构建扫描任务调用树,其中,所述扫描任务调用树中不存在重复的独立规则;

所述扫描任务调用树中的每条分支对应一条规则通道,根据除共享规则外的各独立规则的资源消耗量确定各独立规则在各规则通道中分支中的位置。

较佳地,所述确定单元602,具体用于:

根据各独立规则的资源消耗量确定所述规则通道的资源消耗量;

确定各规则通道的命中率与资源消耗量的比值;

将各规则通道按照命中率与资源消耗量的比值从小到大进行排序,得到所述各规则通道的优先级。

本发明实施例提供的一种确定插件内规则调度顺序的装置,用于确定插件内规则调度顺序的机器统计分析阶段,首先确定规则通道中各独立规则的资源消耗量和规则通道扫描出漏洞的命中率;然后根据各独立规则的资源消耗量和规则通道的命中率,确定各规则通道的调度顺序。本发明实施例将插件按照独立规则进行粒化,将扫描调度的最小单位粒化为规则通道,自动确定合理的规则通道调度顺序,提高了插件扫描速度和效率,同时节省了计算机资源,从而提高了漏洞扫描器的整体扫描性能。

基于同样的发明构思,本发明实施例还提供一种插件扫描的装置,具体执行主体可以为本发明实施例提供的漏洞扫描系统中的插件规则调度模块实现。如图7所示,为本发明实施例提供的一种插件扫描的装置结构示意图,包括:

任务获取单元701:用于获取扫描任务,确定扫描任务的插件;

调度顺序获取单元702:用于获取所述插件的各规则通道的调度顺序,所述各规则通道的调度顺序根据各规则通道中的各独立规则的资源消耗量和规则通道的命中率确定;

扫描单元703:用于按照所述各规则通道的调度顺序,依次进行漏洞扫描,直至扫描出所述漏洞或所有规则通道均被调用。

较佳地,所述扫描单元703,具体用于:

使用扫描任务调用树进行漏洞扫描,所述扫描任务调用树根据所述各规则通道的调度顺序构建;所述扫描任务调用树中不存在重复的独立规则,所述扫描任务调用树中的每条分支对应一条规则通道;

若所述扫描任务调用树中的共享规则扫描失败,则从所述扫描任务调用树中删除包含所述共享规则的尚未被调用的规则通道,直至扫描出所述漏洞或所有规则通道均被调用,所述共享规则为所述至少两条规则通道中均包含的独立规则;所述独立规则在漏洞扫描过程中可独立运行且与其它规则无依赖关系。

本发明实施例提供的一种插件扫描装置,用于实践扫描阶段,按照确定的各规则通道的调度顺序,依次进行漏洞扫描。本发明实施例调用按照独立规则进行粒化的插件,将扫描调度的最小单位粒化为规则通道,调用自动优化规则通道调度顺序的各规则,提高了插件扫描速度和效率,同时节省了计算机资源,从而提高了漏洞扫描器的整体扫描性能。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1