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

一种Web漏洞扫描方法、装置、系统、设备及存储介质

文献发布时间:2023-06-19 10:14:56


一种Web漏洞扫描方法、装置、系统、设备及存储介质

技术领域

本发明涉及漏洞扫描技术领域,特别涉及一种Web漏洞扫描方法、装置、系统、设备及存储介质。

背景技术

伴随着互联网的快速发展,人们对网络安全的要求也越来越高。网络信息安全的目标在于保护信息完整性、保密性、以及为合法用户提供应有的服务。但是由于网络协议设计和实现本身的一些不完善的因素以及系统本身存在的脆弱性和安全漏洞,使互联网入侵事件层出不穷,愈演愈烈。

据近几年的攻击事件统计中不难发现,通过网站(Web)漏洞进行攻击事件正在逐年迅速的增长,通过Web漏洞进行攻击成了网络漏洞攻击的主要方式与手段。与此同时,也出现了许多Web漏洞扫描器,扫描器通常会根据用户提供的统一资源定位符(UniformResource Locator,URL)“爬行”整个网站,将网页下载下来,再将网页的内容进行检测、分析以检查网页中是否有漏洞存在。

但是,现有的漏洞扫描器所用的漏洞检测脚本只能保存在本地文件,且只有在本地文件中存在时才能被调用,存在以下问题:(1)漏洞类型多种多样,针对不同漏洞的检测脚本又各不相同,漏洞检测脚本需要占用大量的内存空间;(2)互联网是一个高速发展的产业,随时都可能会有新的网站安全漏洞产生,或者需要对现有的漏洞检测脚本进行更新,在产生新的漏洞检测脚本/漏洞检测脚本更新后,需要对各个扫描节点逐一进行上传更新,效率低下且人力成本和时间成本较高,进而会影响漏洞扫描效率。

发明内容

针对现有技术的上述问题,本发明的目的在于提供一种Web漏洞扫描方法、装置、系统、设备及存储介质,能够提高分布式扫描系统的扫描效率,减少扫描的人力成本和时间成本。

为了解决上述问题,本发明提供一种Web漏洞扫描方法,应用于分布式漏洞扫描系统,所述分布式漏洞扫描系统包括主控节点和多个扫描节点,所述方法包括:

所述主控节点获取漏洞扫描任务,所述漏洞扫描任务包括待扫描网站;

所述主控节点将所述漏洞扫描任务拆分为多个子扫描任务,确定每个所述子扫描任务所需的漏洞检测脚本的代码段;

所述主控节点根据预设调度方式将所述多个子扫描任务及其对应的代码段下发给所述多个扫描节点;

所述扫描节点接收到所述子扫描任务后,根据所述子扫描任务对应的代码段生成与之对应的漏洞检测脚本;

所述扫描节点调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务。

本发明另一方面提供一种Web漏洞扫描方法,应用于分布式漏洞扫描系统的扫描节点中,所述方法包括:

接收主控节点根据预设调度方式下发的子扫描任务及其对应的代码段,所述子扫描任务为所述主控节点对获取的漏洞扫描任务进行拆分得到,所述漏洞扫描任务包括待扫描网站,所述代码段为所述子扫描任务所需的漏洞检测脚本的代码段;

根据所述子扫描任务对应的代码段生成与之对应的漏洞检测脚本;

调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务。

本发明另一方面提供一种Web漏洞扫描装置,设置于分布式漏洞扫描系统的扫描节点中,所述装置包括:

任务接收模块,用于接收主控节点根据预设调度方式下发的子扫描任务及其对应的代码段,所述子扫描任务为所述主控节点对获取的漏洞扫描任务进行拆分得到,所述漏洞扫描任务包括待扫描网站,所述代码段为所述子扫描任务所需的漏洞检测脚本的代码段;

脚本生成模块,用于根据所述子扫描任务对应的代码段生成与之对应的漏洞检测脚本;

漏洞扫描模块,用于调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务。

本发明另一方面提供一种分布式漏洞扫描系统,包括主控节点和多个扫描节点;

所述主控节点用于获取漏洞扫描任务,所述漏洞扫描任务包括待扫描网站;将所述漏洞扫描任务拆分为多个子扫描任务,确定每个所述子扫描任务所需的漏洞检测脚本的代码段;根据预设调度方式将所述多个子扫描任务及其对应的代码段下发给所述多个扫描节点;

所述扫描节点用于在接收到所述子扫描任务后,根据所述子扫描任务对应的代码段生成与之对应的漏洞检测脚本;调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务。

本发明另一方面提供一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由所述处理器加载并执行以实现上述的Web漏洞扫描方法。

本发明另一方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由处理器加载并执行以实现如上述的Web漏洞扫描方法。

由于上述技术方案,本发明具有以下有益效果:

本发明的Web漏洞扫描方法,通过将漏洞检测脚本的代码段存储在主控节点的数据库中,在任务下发时将子扫描任务及其对应的代码段一起下发给扫描节点,使得扫描节点能够根据代码段动态生成漏洞检测脚本,并使用生成的漏洞检测脚本对待扫描网站进行漏洞扫描,漏洞检测脚本对应的代码段无需存储在扫描节点中,能够减少扫描节点的内存占用,提高分布式扫描系统的扫描效率,减少扫描的人力成本和时间成本。同时,代码段添加和更新时也只需在主控节点中进行,无需逐一在扫描节点上进行操作,提高了代码段的更新效率,降低了分布式漏洞扫描系统的维护难度。

附图说明

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

图1是本发明一个实施例提供的Web漏洞扫描方法的流程图;

图2是本发明另一个实施例提供的Web漏洞扫描方法的流程图;

图3是本发明一个实施例提供的分布式漏洞扫描系统的结构示意图;

图4是本发明另一个实施例提供的Web漏洞扫描方法的流程图;

图5是本发明另一个实施例提供的Web漏洞扫描方法的流程图;

图6是本发明一个实施例提供的Web漏洞扫描装置的结构示意图;

图7是本发明一个实施例提供的服务器的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

参考说明书附图1,其示出了本发明一个实施例提供的Web漏洞扫描方法的流程,所述方法可以应用于分布式漏洞扫描系统,所述分布式漏洞扫描系统包括主控节点和多个扫描节点。本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。如图1所示,所述方法可以包括以下步骤:

S101:所述主控节点获取漏洞扫描任务,所述漏洞扫描任务包括待扫描网站。

本发明实施例中,安全研究人员可以通过设置于所述主控节点的客户端设置漏洞扫描任务,或者当用户对某个网站进行访问时可以生成对该网站进行漏洞扫描的漏洞扫描任务,又或者某个网站设置有定时进行漏洞扫描的功能时,即使该网站并没有被用户访问,也会在固定时间段生成对该网站进行漏洞扫描的漏洞扫描任务。其中,所述漏洞扫描任务可以包括需要进行漏洞扫描的待扫描网站的信息,例如网站名称、网站的URL以及网站的版本信息等内容。所述漏洞扫描任务还可以配置有进行漏洞扫描的分布式漏洞扫描系统的信息、进行漏洞扫描的时间等信息。

S103:所述主控节点将所述漏洞扫描任务拆分为多个子扫描任务,确定每个所述子扫描任务所需的漏洞检测脚本的代码段。

本发明实施例中,所述主控节点获取到漏洞扫描任务后,可以根据所述漏洞扫描任务的配置信息确定执行所述漏洞扫描任务所需的漏洞检测脚本信息,例如,所述主控节点可以根据所述待扫描网站的版本信息确定所述待扫描网站可能存在的漏洞信息,根据可能存在的漏洞信息确定对应的漏洞检测脚本信息。所述主控节点还可以将所述漏洞扫描任务拆分为多个子扫描任务,每个所述子扫描任务可以对应不同的网段,所述主控节点还可以确定执行每个所述子扫描任务所需的漏洞检测脚本信息,并根据所述漏洞检测脚本信息从数据库中获取与之对应的代码段。

S105:所述主控节点根据预设调度方式将所述多个子扫描任务及其对应的代码段下发给所述多个扫描节点。

本发明实施例中,所述预设调度方式可以包括静态调度方式和动态调度方式,与所述子扫描任务对应的代码段是指执行所述子扫描任务所需要的漏洞检测脚本的代码段。

具体地,所述所述主控节点根据预设调度方式将所述多个子扫描任务及其对应的代码段下发给所述多个扫描节点可以包括:

当所述预设调度方式为静态调度方式时,所述所述主控节点根据负载均衡原则,将所述多个子扫描任务及其对应的代码段一次性下发给对应扫描节点;

当所述预设调度方式为动态调度方式时,所述所述主控节点根据负载均衡原则,每次为单个扫描节点下发部分子扫描任务及其对应的代码段,在接收到扫描节点的漏洞扫描结果后,为该扫描节点下发新的子扫描任务及其对应的代码段,直至所有子扫描任务下发完成。

其中,静态调度方式主要适用于对扫描节点性能、网络配置非常熟悉的情况下,一次性将所有子扫描任务下发给各个扫描节点,这种方式要求比较高,分配合理可大大提高扫描效率。动态调度方式适用于大多数场合,尤其是节点多分布广,网络变化频繁,难以一次性分配资源,需要不断动态调整的情况下。在动态调度方式下,主控节点每次为扫描节点下发部分子扫描任务,当子扫描任务完成后,扫描节点向主控节点反馈子扫描任务完成信息,主控节点接收到该信息后,为该扫描节点下发新的子扫描任务,直至所有子扫描任务下发完成。

在上述任务调度方式中,无论是静态调度方式,还是动态调度方式,均可以遵循负载均衡原则,以便充分利用系统资源,提高系统的扫描效率。在本发明实施例中,负载均衡原则包括就近原则、能者多劳原则以及权重原则。就近原则通常是指根据网络响应扫描节点的延时,将延时最小的网络对应的子扫描任务下发给该扫描节点。能者多劳原则通常是指为根据扫描节点性能,将与其性能最匹配的网络对应的子扫描任务下发该扫描节点。权重原则为综合考虑就近原则与能者多劳原则,通过为不同原则配置对应的权重系数,根据计算结果下发子扫描任务给扫描节点。

S107:所述扫描节点接收到所述子扫描任务后,根据所述子扫描任务对应的代码段生成与之对应的漏洞检测脚本。

本发明实施例中,每个漏洞检测脚本用于检测一个类别的漏洞,且不同的漏洞检测脚本之间独立执行,检测结果不产生相互影响。脚本是任何可以被解释或编译之后运行的程序开发语言,可以是类似于Javascript、Python、Perl等通用的动态语言,或batch、shell等基于操作系统命令的脚本,也可以是由自己实现的脚本语言或者领域特定语言等。生成漏洞检测脚本后,可以将其存储在所述扫描节点的临时文件中,在执行所述子扫描任务时可以对所述漏洞检测脚本进行调用。

在一个可能的实施例中,所述根据所述子扫描任务对应的代码段生成与之对应的漏洞检测脚本可以包括:

获取所述代码段对应的主键编号;

以所述主键编号为模块对象名称,利用预设方法动态创建模块对象;

将所述代码段导入所述模块对象中,得到对应的漏洞检测脚本。

具体地,所述扫描节点接收到所述子扫描任务后,可以以所述代码段对应的主键编号作为模块名称,通过imp.new_module方法创建新的模块对象,并将所述代码段导入所述模块对象,得到对应的漏洞检测脚本。

S109:所述扫描节点调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务。

本发明实施例中,由于所述子扫描任务中可能会需要检测多个类型的漏洞,因此所述子扫描任务对应的代码段可以为多个,相应地,所述漏洞检测脚本也可以为多个。所述多个漏洞检测脚本可以存储在所述扫描节点的临时文件中,当完成所述子扫描任务后,所述扫描节点可以将临时存储的漏洞检测脚本进行销毁,可以减少内存占用。

在一个可能的实施例中,所述调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务可以包括:

根据所述子扫描任务确定对应的扫描参数,所述扫描参数包括IP地址和端口号;

以所述IP地址和所述端口号为脚本参数,逐一调用所述多个漏洞检测脚本对所述待扫描网站进行漏洞扫描。

具体地,所述扫描节点可以根据获取到的子扫描任务确定需要扫描的目标网段信息,包括互联网协议(Internet Protocol,IP)地址和对应的服务端口信息。所述扫描节点在执行所述子扫描任务时,可以以所述IP地址和端口号为脚本参数,调用所述多个漏洞检测脚本的send函数进行漏洞扫描,确定所述待扫描网站是否存在漏洞。在实际应用中,可以通过漏洞扫描线程逐一调用所述多个漏洞检测脚本对所述待扫描网站进行漏洞扫描,也可以通过多个漏洞扫描线程并行地调用所述多个漏洞检测脚本对所述待扫描网站进行漏洞扫描,本发明实施例对此不做限制。

本发明实施例中,在扫描过程中,所述扫描节点可以将当前的扫描状态信息实时发送至所述主控节点;完成所述子扫描任务后,所述扫描节点可以将所述子扫描任务对应的漏洞扫描结果发送至所述主控节点,所述主控节点可以对各个扫描节点发送的漏洞扫描结果进行整理分析,得到所述漏洞扫描任务的漏洞扫描结果。所述主控节点还可以显示和/或保存所述扫描状态信息以及所述漏洞扫描任务的漏洞扫描结果,安全研究人员可以通过设置于主控节点的客户端自行设定是否实时显示扫描节点的扫描状态信息及所述漏洞扫描任务的漏洞扫描结果,以及在客户端是否保存所述漏洞扫描任务的漏洞扫描结果,便于安全研究人员对漏洞扫描任务进行实时的控制,从而制定相应的安全策略。

参考说明书附图2,其示出了本发明另一个实施例提供的Web漏洞扫描方法的流程,所述方法可以应用于分布式漏洞扫描系统,所述分布式漏洞扫描系统包括主控节点和多个扫描节点。如图2所示,所述方法可以包括以下步骤:

S201:所述主控节点获取多个代码段,所述代码段与漏洞检测脚本一一对应;所述主控节点分别对每个所述代码段进行编码,将编码后的代码段存储至数据库中。

本发明实施例中,当新增代码段时,安全研究人员可以预先准备好新的代码段,所述主控节点可以读取所述新的代码段的内容,或者安全研究人员可以通过设置于所述主控节点的客户端输入新的代码段。所述主控节点可以将所述代码段进行base64编码,并将编码后的代码段存储至数据库中。当更新数据库中的代码段时,安全研究人员可以预先准备好更新后的代码段,或者安全研究人员可以通过设置于所述主控节点的客户端输入更新后的代码段。所述主控节点可以读取所述更新后的代码段的内容,将所述代码段进行base64编码,并用编码后的代码段替换所述数据库中对应的代码段。具体地,所述代码段可以采用键-值形式存储于所述数据库中。

S203:所述主控节点获取漏洞扫描任务,所述漏洞扫描任务包括待扫描网站。

S205:所述主控节点将所述漏洞扫描任务拆分为多个子扫描任务,确定每个所述子扫描任务所需的漏洞检测脚本的代码段。

S207:所述主控节点根据预设调度方式将所述多个子扫描任务及其对应的代码段下发给所述多个扫描节点。

S209:所述扫描节点接收到所述子扫描任务后,对所述代码段进行解码;利用解码后的代码段生成与所述子扫描任务对应的漏洞检测脚本。

本发明实施例中,由于扫描节点获取的代码段是编码后的代码段,因此在获取到与所述子扫描任务对应的代码段后,需要通过base64进行解码,得到解码后的代码段。具体地,所述利用解码后的代码段生成与所述子扫描任务对应的漏洞检测脚本的方法与图1所示的方法实施例中步骤S107中的方法相同。

S211:所述扫描节点调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务。

本发明实施例中,在扫描过程中,所述扫描节点可以将当前的扫描状态信息实时发送至所述主控节点;完成所述子扫描任务后,所述扫描节点可以将所述子扫描任务对应的漏洞扫描结果发送至所述主控节点,所述主控节点可以对各个扫描节点发送的漏洞扫描结果进行整理分析,得到所述漏洞扫描任务的漏洞扫描结果。所述主控节点还可以显示和/或保存所述扫描状态信息以及所述漏洞扫描任务的漏洞扫描结果,安全研究人员可以通过设置于主控节点的客户端自行设定是否实时显示扫描节点的扫描状态信息及所述漏洞扫描任务的漏洞扫描结果,以及在客户端是否保存所述漏洞扫描任务的漏洞扫描结果,便于安全研究人员对漏洞扫描任务进行实时的控制,从而制定相应的安全策略。

其他相关细节可以参考图1所示的方法实施例。

综上所述,本发明的Web漏洞扫描方法,通过将漏洞检测脚本的代码段存储在主控节点的数据库中,在任务下发时将子扫描任务及其对应的代码段一起下发给扫描节点,使得扫描节点能够根据代码段动态生成漏洞检测脚本,并使用生成的漏洞检测脚本对待扫描网站进行漏洞扫描,漏洞检测脚本对应的代码段无需存储在扫描节点中,能够减少扫描节点的内存占用,提高分布式扫描系统的扫描效率,减少扫描的人力成本和时间成本。

同时,代码段添加和更新时也只需在主控节点中进行,无需逐一在扫描节点上进行操作,提高了代码段的更新效率,降低了分布式漏洞扫描系统的维护难度。

参考说明书附图3,其示出了本发明一个实施例提供的一种分布式漏洞扫描系统300的结构。如图3所示,所述系统300可以包括主控节点310和多个扫描节点320;

所述主控节点310可以用于获取漏洞扫描任务,所述漏洞扫描任务包括待扫描网站;将所述漏洞扫描任务拆分为多个子扫描任务,确定每个所述子扫描任务所需的漏洞检测脚本的代码段;根据预设调度方式将所述多个子扫描任务及其对应的代码段下发给所述多个扫描节点;

所述扫描节点320可以用于在接收到所述子扫描任务后,根据所述子扫描任务对应的代码段生成与之对应的漏洞检测脚本;调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务。

在实际应用中,所述主控节点310和所述扫描节点320可以是终端或者服务器。其中,终端可以是智能手机、台式电脑、平板电脑、笔记本电脑等具有各种操作系统的硬件设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。

在一个可能的实施例中,所述主控节点310还可以用于获取多个代码段,所述代码段与漏洞检测脚本一一对应;分别对每个所述代码段进行编码,将编码后的代码段存储至数据库中;

所述扫描节点320还可以用于在接收到所述子扫描任务后,对所述代码段进行解码,利用解码后的代码段生成与所述子扫描任务对应的漏洞检测脚本。

参考说明书附图4,其示出了本发明一个实施例提供的Web漏洞扫描方法的流程,所述方法可以应用于分布式漏洞扫描系统的扫描节点中,所述扫描节点可以是终端或者服务器。其中,终端可以是智能手机、台式电脑、平板电脑、笔记本电脑等具有各种操作系统的硬件设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。如图4所示,所述方法可以包括以下步骤:

S410:接收主控节点根据预设调度方式下发的子扫描任务及其对应的代码段,所述子扫描任务为所述主控节点对获取的漏洞扫描任务进行拆分得到,所述漏洞扫描任务包括待扫描网站,所述代码段为所述子扫描任务所需的漏洞检测脚本的代码段。

本发明实施例中,所述预设调度方式可以包括静态调度方式和动态调度方式,与所述子扫描任务对应的代码段是指执行所述子扫描任务所需要的漏洞检测脚本的代码段。所述主控节点根据预设调度方式下发子扫描任务及其对应的代码段可以包括:

当所述预设调度方式为静态调度方式时,所述所述主控节点根据负载均衡原则,将所述多个子扫描任务及其对应的代码段一次性下发给对应扫描节点;

当所述预设调度方式为动态调度方式时,所述所述主控节点根据负载均衡原则,每次为单个扫描节点下发部分子扫描任务及其对应的代码段,在接收到扫描节点的漏洞扫描结果后,为该扫描节点下发新的子扫描任务及其对应的代码段,直至所有子扫描任务下发完成。

在一个可能的实施例中,所述代码段可以为编码后的代码段,所述代码段可以为所述主控节点对获取的代码段进行编码得到,所述代码段可以存储于主控节点的数据库中。

S420:根据所述子扫描任务对应的代码段生成与之对应的漏洞检测脚本。

本发明实施例中,所述根据所述子扫描任务对应的代码段生成与之对应的漏洞检测脚本可以包括:

获取所述代码段对应的主键编号;

以所述主键编号为模块对象名称,利用预设方法动态创建模块对象;

将所述代码段导入所述模块对象中,得到对应的漏洞检测脚本。

在一个可能的实施例中,结合参考说明书附图5,所述子扫描任务对应的代码段为编码后的代码段,所述扫描节点接收到所述子扫描任务及其对应的代码段后,还可以包括:

S421:对所述代码段进行解码,根据解码后的代码段生成与所述子扫描任务对应的漏洞检测脚本。

其中,根据解码后的代码段生成与所述子扫描任务对应的漏洞检测脚本的方法与步骤S420中的方法相同。

S430:调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务。

本发明实施例中,所述子扫描任务对应的代码段和所述漏洞检测脚本均可以为多个;所述调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务可以包括:

根据所述子扫描任务确定对应的扫描参数,所述扫描参数包括IP地址和端口号;

以所述IP地址和所述端口号为脚本参数,逐一调用所述多个漏洞检测脚本对所述待扫描网站进行漏洞扫描。

本发明实施例中,在扫描过程中,所述扫描节点可以将当前的扫描状态信息实时发送至所述主控节点;完成所述子扫描任务后,所述扫描节点可以将所述子扫描任务对应的漏洞扫描结果发送至所述主控节点,所述主控节点可以对各个扫描节点发送的漏洞扫描结果进行整理分析,得到所述漏洞扫描任务的漏洞扫描结果。所述主控节点还可以显示和/或保存所述扫描状态信息以及所述漏洞扫描任务的漏洞扫描结果,安全研究人员可以通过设置于主控节点的客户端自行设定是否实时显示扫描节点的扫描状态信息及所述漏洞扫描任务的漏洞扫描结果,以及在客户端是否保存所述漏洞扫描任务的漏洞扫描结果,便于安全研究人员对漏洞扫描任务进行实时的控制,从而制定相应的安全策略。

其他相关细节可以参考图1所示的方法实施例。

综上所述,本发明的Web漏洞扫描方法,通过将漏洞检测脚本的代码段存储在主控节点的数据库中,在任务下发时将子扫描任务及其对应的代码段一起下发给扫描节点,使得扫描节点能够根据代码段动态生成漏洞检测脚本,并使用生成的漏洞检测脚本对待扫描网站进行漏洞扫描,漏洞检测脚本对应的代码段无需存储在扫描节点中,能够减少扫描节点的内存占用,提高分布式扫描系统的扫描效率,减少扫描的人力成本和时间成本。

同时,代码段添加和更新时也只需在主控节点中进行,无需逐一在扫描节点上进行操作,提高了代码段的更新效率,降低了分布式漏洞扫描系统的维护难度。

参考说明书附图6,其示出了本发明一个实施例提供的一种Web漏洞扫描装置600的结构,所述装置600可以设置于分布式漏洞扫描系统300的扫描节点320中。如图6所示,所述装置600可以包括:

任务接收模块610,用于接收主控节点根据预设调度方式下发的子扫描任务及其对应的代码段,所述子扫描任务为所述主控节点对获取的漏洞扫描任务进行拆分得到,所述漏洞扫描任务包括待扫描网站,所述代码段为所述子扫描任务所需的漏洞检测脚本的代码段;

脚本生成模块620,用于根据所述子扫描任务对应的代码段生成与之对应的漏洞检测脚本;

漏洞扫描模块630,用于调用所述漏洞检测脚本对所述待扫描网站进行漏洞扫描,以完成所述子扫描任务。

在一个可能的实施例中,所述子扫描任务对应的代码段为编码后的代码段,所述脚本生成模块620,还可以用于对所述代码段进行解码,根据解码后的代码段生成与所述子扫描任务对应的漏洞检测脚本。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与相应方法实施例属于同一构思,其具体实现过程详见对应方法实施例,这里不再赘述。

本发明一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或者至少一段程序,该至少一条指令或者该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的Web漏洞扫描方法。

存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。

本发明实施例所提供的方法实施例可以在终端、服务器或者类似的运算装置中执行,即上述电子设备可以包括终端、服务器或者类似的运算装置。以运行在服务器上为例,如图7所示,其示出了本发明实施例提供的运行Web漏洞扫描方法的服务器的结构示意图。该服务器700可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Unit,CPU)710(例如,一个或一个以上处理器)和存储器730,一个或一个以上存储应用程序723或数据722的存储介质720(例如一个或一个以上海量存储设备)。其中,存储器730和存储介质720可以是短暂存储或持久存储。存储在存储介质720的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器710可以设置为与存储介质720通信,在服务器700上执行存储介质720中的一系列指令操作。服务器700还可以包括一个或一个以上电源760,一个或一个以上有线或无线网络接口750,一个或一个以上输入输出接口740,和/或,一个或一个以上操作系统721,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

输入输出接口740可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器700的通信供应商提供的无线网络。在一个实例中,输入输出接口740包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口740可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯,所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。

本领域普通技术人员可以理解,图7所示的结构仅为示意,服务器700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。

本发明一个实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于电子设备之中以保存用于实现一种Web漏洞扫描方法相关的至少一条指令或者至少一段程序,该至少一条指令或者该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的Web漏洞扫描方法。

可选地,在本发明实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本发明一个实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现例中提供的Web漏洞扫描方法。

需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种Web漏洞扫描方法、装置、系统、设备及存储介质
  • Web漏洞扫描方法、系统、装置、存储介质和计算机设备
技术分类

06120112476676