一种基于云计算的Web漏洞扫描方法与流程

文档序号:11594252阅读:884来源:国知局

本发明涉及网络安全技术领域,尤其涉及一种基于云计算的web漏洞扫描方法。



背景技术:

如今的网络发展迅速而广泛,各式各样的网站,全球遍布的服务器。然而万事都会有疏忽,不可避免的会在这些网站、服务器、主机上存在着千奇百怪的、意想不到的漏洞。

所谓漏洞就是存在于软件或系统配置中可以被利用的弱点。漏洞的成因有很多种,但最常见的是因为没有及时安装补丁,供应商们会经常发布补丁程序来修补已知的问题或漏洞。没有安装补丁的软件或系统往往会加快黑客渗透测试的过程,因为那些未打补丁的漏洞允许攻击者远程执行代码,可能会对被攻击者造成巨大的损失。

因此保护企业或个人网络服务器的安全是一项很重要的事情,但是由于个人用户往往缺乏经验或者不会检测或修复漏洞、无力购买服务器漏洞检测的软件或服务,所以个人用户难以实现对服务器漏洞的检测与修复。

传统的web漏洞扫描方法,一般是由单机或多节点系统构建而成,单机扫描器面临扫描速度过慢,速度和准确率较低,无法随时开展扫描的问题;多节点扫描器面临成本较高,个人用户难以承担的问题。如何构建一个扫描速度快,可随时开展扫描的,低成本的多节点web漏洞扫描系统是一个待解决的问题。



技术实现要素:

本发明的目的在于提供一种基于云计算的web漏洞扫描方法,以实现随时、快速、低成本的多节点扫描。

本发明提供了一种基于云计算的web漏洞扫描方法,包括以下步骤:a、用户访问网页来提交待扫描目标的ip地址或域名和请求服务,并且将待扫描目标写入待扫描消息队列中;b、控制单元在查询到待扫描消息列队中有新的待扫描目标时,将待扫描目标取出,根据用户状态及具体指令,将目标类型进行划分,并根据策略补全扫描任务,将其从一个ip地址或域名扩大为一个包含具体扫描指令的列表,并添加进待测试消息队列;c、节点池中的各扫描节点在探测到待扫描消息队列中有新的任务时,根据预定策略从待扫描消息列队中提取具体扫描指令并完成;d、当节点池完成所有任务时,控制单元向网页发送请求,当网页完成扫描结果提取后,控制单元将该已扫描目标的相关资源回收。

本发明还提供了一种基于云计算的web漏洞扫描方法,包括以下步骤:提供一种网页,所述网页用于供用户访问来提交待扫描目标的ip地址或域名和请求服务,并且将待扫描目标写入待扫描消息队列中;提供一种控制单元,所述控制单元用于在查询到待扫描消息列队中有新的待扫描目标时,将待扫描目标取出,根据用户状态及具体指令,将目标类型进行划分,并根据策略补全扫描任务,将其从一个ip地址或域名扩大为一个包含具体扫描指令的列表,并添加进待测试消息队列;提供一种具有多扫描节点的节点池,所述节点池中的各扫描节点用于在探测到待测试消息队列中有新的任务时,根据预定策略从待扫描消息列队中提取具体扫描指令并完成;其中,所述网页在接受用户请求服务后,由所述控制单元将用户请求包装成任务并添加至待测试消息列队中,随后由所述节点池根据预定策略完成待测试消息列队中的任务并将扫描结果写入数据库中,当所述节点池完成所有任务时,由所述控制单元向网页发送请求,当网页完成扫描结果提取后,由所述控制单元将该已扫描目标的相关资源回收。

进一步地,上述网页要求用户在扫描前下载一个加密过的文件并存放于网站根目录,所述控制单元在探测到该文件并确认无误后才继续扫描。

进一步地,上述控制单元用于根据任务量控制投入扫描节点的数量,各扫描节点时刻待命并按时扫描待测试消息队列,一旦有任务出现便从待命态转变成活动态并依据指令开始扫描。

进一步地,上述网页提供多种等级服务供用户选择,以允许用户按需请求服务。

进一步地,上述扫描节点的任务分为信息获取和漏洞探测两类,其中,信息获取的扫描优先级高于漏洞探测,当新任务出现时,所述节点池的各扫描节点优先完成信息获取任务,当所有信息获取任务都完成后再完成漏洞探测任务。

通过本方法,各节点之间无直接通信,漏洞扫描节点具有云计算的按需供应、高弹性的特点,漏洞扫描节点可以按需快速上线:任务量小,系统负载小的时候可以只上线少量节点加入扫描,在任务量大、节点压力大的时候直接通过镜像系统快速上线新节点加入节点池参与扫描。最大限度的在实现快速、准确扫描的前提下降低了扫描系统成本。

除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照图,对本发明作进一步详细的说明。

附图说明

构成本申请的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为根据本发明的web漏洞扫描方法的云计算应用系统的示意框图;

图2为工作中的控制单元和扫描节点的结构图;以及

图3为根据本发明的web漏洞扫描方法的流程图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

本发明提供了一种基于云计算的web漏洞扫描方法,通过本方法解决弹性计算下扫描节点如何按需弹性调度,以及父子节点间通信问题。

如图1至图3所示,本发明的web漏洞扫描方法包括以下步骤:s10、用户通过访问网页来提交待扫描目标的ip地址或域名以请求服务,同时为防止扫描器被恶意利用,用户扫描前需下载一个加密过的文件并存放于网站根目录,控制单元在探测到该文件存在并确认无误后才会继续扫描,待扫描目标被网页写入待扫描消息队列中;s20、控制单元在查询到有新的待扫描目标时,将目标取出,根据用户状态及具体指令,将目标类型进行划分,并根据策略补全扫描任务,将其从一个ip地址或一个域名扩大为一个包含具体扫描指令的列表,并添加进待测试消息队列;s30、节点池中的各扫描节点在探测到新的任务时,根据既定策略提取具体指令,完成指令后将结果写入数据库并循环此步骤;s40、当完成所有任务时,控制单元向网页发送请求,当网页完成结果提取后,控制单元将该目标相关资源回收。

在本发明中,扫描器采用一个控制单元来负责任务的调度工作,以完成对多个待扫描目标状态及资源的控制。扫描器将扫描任务分为信息获取和漏洞探测两类,其中信息获取的扫描优先级高于漏洞探测。故当新任务出现时,节点池的各扫描节点优先完成信息获取任务,当所有信息获取任务都完成后再完成漏洞探测任务。

在一实施例中,用户对于该系统的使用为按需的可伸缩服务,用户可以根据自身需求进行多种等级服务的获取,如单目标或多目标,基础扫描或高级扫描等。同时用户只需选择服务,而不需拥有或维护实体。

在一实施例中,扫描节点池化,多个用户可共享扫描资源。节点池类似于线程池,各扫描节点时刻待命并按时扫描待测试消息队列,一旦有任务出现便从待命态转变成活动态并依据指令开始扫描,用户从网页取得扫描任务结果。

在一实施例中,节点池中的各扫描节点与控制单元及网页没有任何直接通信,他们之间的信息均由消息队列及数据库进行间接通信。

具体实施时主控节点和子节点的交互配合和信息处理流程如图2所示:

整套漏洞扫描工具采用redis数据库中的list作为消息队列,当需要对某个目标进行扫描时,由web网站将目标解构,然后将目标存入任务创建列表。

节点池类似于线程池,各扫描节点时刻待命并按时扫描待测试消息队列,一旦有任务出现便从待命态转变成活动态并依据指令开始扫描,用户从网页取得扫描任务结果。

节点池中的各扫描节点与控制单元及网页没有任何直接通信,他们之间的信息均由消息队列及数据库进行间接通信。

控制单元检测到任务创建列表非空时,则启用任务创建进程,提取消息并完成任务创建,同时将目标上传到redis中的“目标<->状态”hash表中。

当扫描节点的消息获取模块检测到“目标<->状态”hash表非空,则获取内容,根据目标的状态为“信息收集”或“漏洞扫描”分别调用辅助信息收集脚本与漏洞扫描插件完成任务。

在完成扫描后,扫描节点的结果存储模块取得漏洞扫描模块返回的结果,将其重新打包为json格式后上传。与此同时,进行目标状态判断,若当前扫描为该目标“信息收集”或“漏洞扫描”阶段的最后一个任务,且之前的任务均已完成,则进行阶段结束操作。如:将“信息收集”状态改为“漏洞扫描”状态;或将目标从“目标<->状态”hash表中删除,并将目标存入结果汇报队列。

控制单元检测到结果汇报队列非空时,则启用结果汇报进程,获取目标,并调用web接口,通知web该目标已完成扫描。web在接收到请求后,从数据库中取走结果,并将其打印。在完成结果提取后,web将目标存入资源回收队列。

控制单元在检测到资源回收队列非空时,则启用资源回收进程,获取目标,并将与该目标有关的一切资源释放。

至此,web->控制单元->扫描节点,关于一个目标的扫描工作全部完成。

通过本发明的漏洞扫描系统具有云计算的弹性计算、高可用、按需、快捷的特点。解决了弹性计算下的扫描节点如何按需弹性调度,以及父子节点间通信问题。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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