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

扫描任务的管理方法及装置、电子设备、存储介质

文献发布时间:2024-01-17 01:13:28


扫描任务的管理方法及装置、电子设备、存储介质

技术领域

本申请涉及漏洞扫描技术领域,特别涉及一种扫描任务的管理方法及5装置、电子设备、计算机可读存储介质。

背景技术

漏洞扫描技术是重要的网络安全技术。由于系统平台、web网站和设备在使用的过程中可能会产生各种类型的漏洞,为了保证设备的安全运行,

需要通过与漏洞类型向对应的漏洞扫描工具进行漏洞扫描。为有效进行漏0洞扫描任务的合理调度,相关技术中通过漏洞扫描平台对多个漏洞扫描设备进行管理,由漏洞扫描平台向各个漏洞扫描设备下发扫描任务,使得漏洞扫描设备针对待扫描设备执行扫描任务。

漏洞扫描平台可以从各个漏洞扫描设备获取扫描任务对应的任务结

果,并汇总、存储各个扫描任务的任务结果。由于漏洞扫描平台异常断电5或网络波动等问题,可能导致漏洞扫描平台无法正常获取扫描任务的任务结果。

发明内容

本申请实施例的目的在于提供一种扫描任务的管理方法及装置、电子设备、计算机可读存储介质,用于解决在异常断电或网络波动等情况下,0漏洞扫描平台无法正常获取扫描任务的任务结果的问题。

一方面,本申请提供了一种扫描任务的管理方法,应用于漏洞扫描平台,所述漏洞扫描平台与若干漏洞扫描设备对接,包括:

周期性遍历已向漏洞扫描设备下发的扫描任务的任务状态,判断是否存在任务状态为异常状态的扫描任务;

若存在,确定异常状态的扫描任务为异常任务,并获取所述异常任务的连接信息;其中,所述连接信息用于连接所述异常任务所在的漏洞扫描设备;

为所述异常任务创建异常轮询器,并通过所述异常轮询器基于所述连接信息获取所述异常任务的任务结果;

判断是否获得任务结果,若是,通过所述异常轮询器存储所述任务结果,并将所述异常任务的任务状态更新为正常状态。

通过上述措施,对于因异常断电或网络波动等情况导致无法正常获取任务结果的问题,可以启动异常轮询器对异常任务进行跟踪,从而直接从异常任务所在漏洞扫描设备获取任务结果。

在一实施例中,在所述遍历已向漏洞扫描设备下发的扫描任务的任务状态,判断是否存在任务状态为异常状态的扫描任务之前,所述方法还包括:

在所述漏洞扫描平台启动时,检查本地标记为启动状态的周期性扫描任务;

启动标记为启动状态的周期性扫描任务,并将已启动的扫描任务下发至所述若干漏洞扫描设备。

通过上述措施,漏洞扫描平台在发生异常而重启时,均可以重启需要继续执行的周期性扫描任务,避免因异常断电或网络波动等缘故导致任务中断。

在一实施例中,所述方法还包括:

如果不存在任务状态为异常状态的扫描任务,结束当前周期的处理流程。

通过上述措施,在不存在异常任务的情况下,可以直接结束当前周期的处理流程。

在一实施例中,在所述通过所述异常轮询器存储所述任务结果,并将所述异常任务的任务状态更新为正常状态之后,所述方法还包括:

关闭所述异常轮询器。

通过该措施,可以释放完成工作的异常轮询器。

在一实施例中,所述方法还包括:

如果所述异常轮询器无法获取任务结果,针对所述异常任务启动定时器;

在所述定时器达到所述异常任务对应等待时长后,返回所述通过所述异常轮询器基于所述连接信息获取所述异常任务的任务结果的步骤。

通过上述措施,在通过异常轮询器无法获取任务结果的情况下,可以在等待一段时间后,重新去获取任务结果,从而在异常断电、网络波动等情况下,尝试多次以尽可能获取任务结果。

在一实施例中,在所述如果所述异常轮询器无法获取任务结果,针对所述异常任务启动定时器之前,所述方法还包括:

根据所述异常任务对应的失败次数,换算出所述异常任务对应的等待时长;其中,等待时长与失败次数呈正相关关系。

通过上述措施,可以逐步增加屡屡失败的异常任务对应的等待时长,从而降低这类任务占用的计算资源的权重,使得失败次数较少的异常任务能够优先处理,从而合理分配漏洞扫描平台的计算资源。

在一实施例中,所述方法还包括:

在所述异常轮询器无法获取任务结果的情况下,更新所述异常任务对应的失败次数;

当所述异常任务的失败次数达到预设次数阈值时,关闭所述异常轮询器。

通过上述措施,对于始终无法获取任务结果的扫描任务,可以认定该扫描任务已经无法完成,此时,不再继续对其进行跟踪,从而避免无效跟踪导致的资源浪费。

另一方面,本申请提供了一种扫描任务的管理装置,应用于漏洞扫描平台,所述漏洞扫描平台与若干漏洞扫描设备对接,包括:

遍历模块,用于周期性遍历已向漏洞扫描设备下发的扫描任务的任务状态,判断是否存在任务状态为异常状态的扫描任务;

第一获取模块,用于若存在,确定异常状态的扫描任务为异常任务,并获取所述异常任务的连接信息;其中,所述连接信息用于连接所述异常任务所在的漏洞扫描设备;

第二获取模块,用于为所述异常任务创建异常轮询器,并通过所述异常轮询器基于所述连接信息获取所述异常任务的任务结果;

判断模块,用于判断是否获得任务结果,若是,通过所述异常轮询器存储所述任务结果,并将所述异常任务的任务状态更新为正常状态。

此外,本申请提供了一种电子设备,所述电子设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述扫描任务的管理方法。

进一步的,本申请提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述扫描任务的管理方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。

图1为本申请一实施例提供的扫描任务的管理方法的应用场景示意图;

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

图3为本申请一实施例提供的扫描任务的管理方法的流程示意图;

图4为本申请一实施例提供的整体架构示意图;

图5为本申请一实施例提供的扫描任务的管理装置的框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

图1为本申请实施例提供的扫描任务的管理方法的应用场景示意图。如图1所示,该应用场景包括待扫描设备20、漏洞扫描设备30和漏洞扫描平台40;待扫描设备20可以是主机、手机、平板电脑、服务器、服务器集群或云计算中心;漏洞扫描设备30可以是主机、手机、平板电脑、服务器、服务器集群或云计算中心;漏洞扫描平台40可以是主机、服务器、服务器集群或云计算中心。漏洞扫描平台40与多个漏洞扫描设备30对接,用于向漏洞扫描设备30下发扫描任务,以及调度不同漏洞扫描设备30之间扫描任务。漏洞扫描设备30基于漏洞扫描平台40下发的扫描任务,对待扫描设备20进行漏洞扫描。漏洞扫描平台40可以从漏洞扫描设备30汇总扫描任务的任务结果,并通过本申请扫描任务的管理方法,解决可能因异常断电或网络波动等情况下无法正常获取任务结果的问题。

如图2所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图2中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程。在一实施例中,电子设备1可以是上述漏洞扫描平台40,用于执行扫描任务的管理方法。

存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。

本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本申请提供的扫描任务的管理方法。

参见图3,为本申请一实施例提供的扫描任务的管理方法的流程示意图,如图3所示,该方法可以包括以下步骤310-步骤340。

步骤310:周期性遍历已向漏洞扫描设备下发的扫描任务的任务状态,判断是否存在任务状态为异常状态的扫描任务。

本申请方案应用于与若干漏洞扫描设备对接的漏洞扫描平台。漏洞扫描平台在将扫描任务下发至各个漏洞扫描设备之后,可以针对每一扫描任务创建一个常规轮询器。该常规轮询器可以是线程或进程,用于从漏洞扫描设备获取任务结果。

一种情况下,如果获得任务结果,常规轮询器可以存储该任务结果,并在漏洞扫描平台将其对应的扫描任务的任务状态设置为正常状态。在将扫描任务设置为正常状态之后,该常规轮询器的工作已执行完成,此时,可以关闭该常规轮询器。

另一种情况下,如果未获得任务结果,常规轮询器可以确定其对应的扫描任务存在异常,此时,常规轮询器可以将该扫描任务的任务状态设置为异常状态。在将扫描任务设置为异常状态之后,该常规轮询器的工作已执行玩,此时,可以关闭该常规轮询器。

漏洞扫描平台在下发扫描任务之后,可以周期性遍历已下发的扫描任务的任务状态。这里,周期时长可以根据应用场景进行配置。示例性的,漏洞扫描平台每隔10分钟下发扫描任务,理论上扫描任务可以在8分钟内完成,此时,漏洞扫描平台可以在每次下发扫描任务的8分钟后遍历各个已下发的扫描任务的任务状态。同样的,遍历扫描任务的周期时长为10分钟。

在一实施例中,由于每个周期均会遍历已下发的扫描任务,而前一周期下发的扫描任务已经经过遍历,因此,为降低工作量,每一周期遍历时可以仅检测最近一个周期下发的扫描任务的任务状态。

通过遍历各个已下发的扫描任务的任务状态,可以判断是否存在任务状态为异常任务的扫描任务。一种情况下,如果不存在任务状态为异常状态的扫描任务,说明已下发的扫描任务均获得对应的任务结果,此时,漏洞扫描平台可以结束当前周期的处理流程。另一种情况下,如果存在任务状态为异常状态的扫描任务,可以继续执行步骤320。

步骤320:若存在,确定异常状态的扫描任务为异常任务,并获取异常任务的连接信息;其中,连接信息用于连接异常任务所在的漏洞扫描设备。

在存在任务状态为异常状态的扫描任务的情况下,可以将该扫描任务确定为异常任务。漏洞扫描平台可以在本地存储空间获取该异常任务的连接信息。这里,连接信息可以包括但不限于异常任务所在漏洞扫描设备的IP(Internet Protocol Address,互联网协议地址)地址和MAC(Media Access Control Address,媒体存取控制位址)地址、漏洞扫描设备的登陆用户名和密码、漏洞扫描设备的设备类型、异常任务的任务标识和模板信息(模板信息指示扫描任务的工作内容)。

步骤330:为异常任务创建异常轮询器,并通过异常轮询器基于连接信息获取异常任务的任务结果。

针对每一异常任务,漏洞扫描平台可以为该异常任务创建一个异常轮询器。该异常轮询器可以是线程或进程,用于跟踪该异常任务的任务结果。漏洞扫描平台可以通过异常轮询器,基于上述连接信息访问异常任务所在的漏洞扫描设备,以获取异常任务的任务结果。

步骤340:判断是否获得任务结果,若是,通过异常轮询器存储任务结果,并将异常任务的任务状态更新为正常状态。

针对任一异常任务,在通过异常轮询器访问该异常任务所在的漏洞扫描设备之后,可以判断是否获得该异常任务的任务结果。如果获得该异常任务的任务结果,可以通过异常轮询器存储该任务结果。异常轮询器可以将任务结果写入至漏洞扫描平台上存储任务结果的数据库中。此外,异常轮询器可以在漏洞扫描平台上将该异常任务的任务状态更新为正常状态。在将任务状态更新为正常状态之后,该异常轮询器的工作已执行完成,此时,可以关闭该异常轮询器。

通过上述措施,对于因异常断电或网络波动(比如:断网)等情况导致无法正常获取任务结果的问题,可以启动异常轮询器对异常任务进行跟踪,从而直接从异常任务所在漏洞扫描设备获取任务结果。

在一实施例中,在执行步骤310之前,在漏洞扫描平台启动时,可以检查本地标记为启动状态的周期性扫描任务。这里,启动状态指示扫描任务需要持续执行。漏洞扫描平台可能因为异常断电或网络波动的情况而重启,因此,在启动时检查标记为启动状态的周期性扫描任务后,可以启动标记为启动状态的周期性扫描任务。漏洞扫描平台可以依据均衡负载、类型匹配等规则,向与其对接的若干漏洞扫描设备分配扫描任务,并在本地记录各个扫描任务的相关信息。这里,相关信息可以包括任务状态、连接信息等。

漏洞扫描平台可以将已启动的扫描任务,根据分配结果,下发至若干漏洞扫描设备,使得各个漏洞扫描设备可以依据被分配的扫描任务对待扫描设备进行漏洞扫描。

通过上述措施,漏洞扫描平台在发生异常而重启时,均可以重启需要继续执行的周期性扫描任务,避免因异常断电或网络波动等缘故导致任务中断。

在一实施例中,如果异常轮询器通过连接信息访问异常任务所在漏洞扫描设备后,无法获取任务结果,可以通过异常轮询器针对该异常任务启动定时器。此时,定时器从零开始计时。

在定时器达到异常任务对应等待时长后,可以返回步骤330中通过异常轮询器基于连接信息获取异常任务的任务结果的步骤。

这里,等待时长可以为预设固定值,根据需要进行配置。或者,等待时长可以随时间变化而增加,初始情况下的等待时长可以根据需要进行配置。

通过上述措施,在通过异常轮询器无法获取任务结果的情况下,可以在等待一段时间后,重新去获取任务结果,从而在异常断电、网络波动等情况下,尝试多次以尽可能获取任务结果。

在一实施例中,在异常轮询器启动针对异常任务的定时器之前,可以根据该异常任务对应的失败次数,换算出异常任务对应的等待时长。其中,等待时长与失败次数呈正相关关系。这里,可以预配置与每一失败次数对应的等待时长,失败次数越大,等待时长越长;或者,可以预配置失败次数与等待时长之间的换算方式,且该换算方式指示等待时长随失败次数增加而增加。

示例性的,第一次失败,等待时长为15分钟;第二次失败,等待时长为30分钟;第三次失败,等待时长为60分钟;第四次失败,等待时长为120分钟;第五次失败,等待时长为240分钟。以此类推。

通过上述措施,可以逐步增加屡屡失败的异常任务对应的等待时长,从而降低这类任务占用的计算资源的权重,使得失败次数较少的异常任务能够优先处理,从而合理分配漏洞扫描平台的计算资源。

在一实施例中,在异常轮询器无法获取任务结果的情况下,异常轮询器可以更新异常任务对应的失败次数。第一次失败时,可以将失败次数记为1,后续每失败一次,则将失败次数加1。

在更新失败次数后,可以判断失败次数是否达到预设次数阈值。这里,次数阈值用于指示无需继续跟踪的异常任务。次数阈值可以根据需要进行配置,示例性的,次数阈值可以是10次。一种情况下,如果异常任务的失败次数未达到次数阈值,可以继续启动定时器,等待下一次获取任务结果。另一种情况下,如果异常任务的失败次数达到次数阈值,可以放弃跟踪该异常任务,这种情况下,可以关闭该异常轮询器。

此外,对于已经放弃的异常任务,漏洞扫描平台可以在本地将异常任务进行标记,标记为停止跟踪。后续周期性遍历扫描任务的任务状态时,对于标记为停止跟踪的扫描任务,不再处理。

通过上述措施,对于始终无法获取任务结果的扫描任务,可以认定该扫描任务已经无法完成,此时,不再继续对其进行跟踪,从而避免无效跟踪导致的资源浪费。

参见图4,为本申请一实施例提供的整体架构示意图,如图4所示,漏洞扫描平台可以启动多个扫描任务,并向其对应的漏洞扫描设备下发扫描任务。漏洞扫描平台可以在本地记录下发后各个扫描任务的连接信息。漏洞扫描平台可以通过为各个扫描任务所启用的常规轮询器(图4中的任务轮询器),访问漏洞扫描设备后获取任务结果。如果获取到任务结果,可以存储任务结果,并将扫描任务的任务状态设置为正常状态。如果无法获取到任务结果,可以将任务状态设置为异常状态。

漏洞扫描平台周期性遍历已下发的扫描任务的任务状态,从而筛选出异常状态的扫描任务,作为异常任务。针对每一异常任务,创建对应的异常轮询器(图4中的异常任务轮询器),并以异常轮询器借助异常任务的连接信息访问漏洞扫描设备,获取任务结果。如果获得任务结果,异常轮询器可以存储任务结果。如果无法获得任务结果,可以启动定时器等待一段时间后,重新访问漏洞扫描设备以获取任务结果,直至失败次数达到次数阈值或成功获得任务结果。

图5是本发明一实施例的一种扫描任务的管理装置的框图,如图5所示,该装置可以包括:

遍历模块510,用于周期性遍历已向漏洞扫描设备下发的扫描任务的任务状态,判断是否存在任务状态为异常状态的扫描任务;

第一获取模块520,用于若存在,确定异常状态的扫描任务为异常任务,并获取所述异常任务的连接信息;其中,所述连接信息用于连接所述异常任务所在的漏洞扫描设备;

第二获取模块530,用于为所述异常任务创建异常轮询器,并通过所述异常轮询器基于所述连接信息获取所述异常任务的任务结果;

判断模块540,用于判断是否获得任务结果,若是,通过所述异常轮询器存储所述任务结果,并将所述异常任务的任务状态更新为正常状态。

在一实施例中,所述装置还包括:

检测模块550,用于在所述漏洞扫描平台启动时,检查本地标记为启动状态的周期性扫描任务;

下发模块560,用于启动标记为启动状态的周期性扫描任务,并将已启动的扫描任务下发至所述若干漏洞扫描设备。

在一实施例中,遍历模块510,还用于:

如果不存在任务状态为异常状态的扫描任务,结束当前周期的处理流程。

在一实施例中,判断模块540,还用于:

关闭所述异常轮询器。

在一实施例中,判断模块540,还用于:

如果所述异常轮询器无法获取任务结果,针对所述异常任务启动定时器;

在所述定时器达到所述异常任务对应等待时长后,返回所述通过所述异常轮询器基于所述连接信息获取所述异常任务的任务结果的步骤。

在一实施例中,判断模块540,还用于:

根据所述异常任务对应的失败次数,换算出所述异常任务对应的等待时长;其中,等待时长与失败次数呈正相关关系。

在一实施例中,判断模块540,还用于:

在所述异常轮询器无法获取任务结果的情况下,更新所述异常任务对5应的失败次数;

当所述异常任务的失败次数达到预设次数阈值时,关闭所述异常轮询器。

上述装置中各个模块的功能和作用的实现过程具体详见上述扫描任务的管理方法中对应步骤的实现过程,在此不再赘述。

0在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图

中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段5或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。

在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的

是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,0可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以

用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

技术分类

06120116069541