漏洞扫描方法、装置及系统与流程

文档序号:12493473阅读:437来源:国知局
漏洞扫描方法、装置及系统与流程

本发明涉及系统安全领域,具体而言,涉及一种漏洞扫描方法、装置及系统。



背景技术:

计算机系统在给人们带来方便的同时,也给人们带来了麻烦,由于计算机系统类别复杂,每种组件由不同的厂商,不同的组织研发,每种系统需要全面考虑才能构架出一套没有任何问题的系统,所有计算机系统在设计研发过程中由于种种考虑不周全引入了很多安全问题,我们称这些安全问题为漏洞。

在计算机世界中,人们能够看到了网页相比人们看不到的网页来说只是冰山一角,这些人们看不到的网页我们称之为暗网,暗网看不见的原因大致是这样的,网页被限定特定cookie,指定给特定的人看,网页使用了隧道技术,普通的搜索引擎搜索不到。

现行的漏洞扫描工具,例如awvs(网络漏洞扫描器,Acunetix Web Vulnerability Scanner的简写),appscan(渗透测试工具)呈现给人们的多是一种直接扫描,单机扫描的方式,同时对于带有cookie(小型文本文件)网页的挖掘显得不够透明,在获得cookie的过程中存在一定技术问题,比如无法识别复杂的验证码。

针对现有技术中的漏洞扫描方法为单机扫描的方式,扫描时间长的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种漏洞扫描方法、装置及系统,以至少解决现有技术中的漏洞扫描方法为单机扫描的方式,扫描时间长的技术问题。

根据本发明实施例的一个方面,提供了一种漏洞扫描方法,包括:多个漏洞扫描节点获取多个用户请求,其中,每个漏洞扫描节点获取至少一个用户请求,多个用户请求为用户访问网页所生成的请求;多个漏洞扫描节点同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,其中,扫描结果包括:每个用户请求对应的系统是否存在漏洞以及漏洞的类型;多个漏洞扫描节点将每个用户请求的扫描结果发送给数据收集服务器,其中,数据收集服务器对每个用户请求的扫描结果进行汇总,得到漏洞扫描结果。

进一步地,在多个漏洞扫描节点获取多个用户请求之前,上述方法还包括:代理服务器接收多个用户访问多个网页生成的多个访问请求;代理服务器在将多个访问请求发送至网页服务器的同时,拷贝多个访问请求,得到多个用户请求;代理服务器将多个用户请求发送给多个漏洞扫描节点。

进一步地,代理服务器将多个用户请求发送给多个漏洞扫描节点包括:代理服务器基于预设调度算法,将多个用户请求分发给多个漏洞扫描节点。

进一步地,在多个漏洞扫描节点同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果之后,上述方法还包括:多个漏洞扫描节点将每个用户请求的扫描结果进行结构化处理,得到结构化数据;多个漏洞扫描节点将结构化数据发送给数据收集服务器。

进一步地,多个漏洞扫描节点同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果包括:每个漏洞扫描节点基于多种漏洞检测算法,对获取到的每个用户请求进行漏洞扫描;如果扫描到任意一个用户请求存在任意一种漏洞,则每个漏洞扫描节点获取任意一种漏洞的类型;每个漏洞扫描节点根据任意一种漏洞的类型和任意一个用户请求对应的系统,生成任意一个用户请求的扫描结果。

进一步地,在数据收集服务器对每个用户请求的扫描结果进行汇总,得到漏洞扫描结果之后,上述方法还包括:数据收集服务器将漏洞扫描结果发送至目标客户端,其中,目标客户端显示漏洞扫描结果。

根据本发明实施例的另一方面,还提供了一种漏洞扫描装置,包括:获取模块,用于获取多个用户请求,其中,每个漏洞扫描节点获取至少一个用户请求,多个用户请求为用户访问网页所生成的请求;扫描模块,用于对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,其中,扫描结果包括:每个用户请求对应的系统是否存在漏洞以及漏洞的类型;发送模块,用于将每个用户请求的扫描结果发送给数据收集服务器,其中,数据收集服务器对每个用户请求的扫描结果进行汇总,得到漏洞扫描结果。

根据本发明实施例的另一方面,还提供了一种漏洞扫描系统,包括:多个漏洞扫描节点,用于获取多个用户请求,并同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,其中,每个漏洞扫描节点获取至少一个用户请求,多个用户请求为用户访问网页所生成的请求,扫描结果包括:每个用户请求对应的系统是否存在漏洞以及漏洞的类型;数据收集服务器,与多个漏洞扫描节点具有通信关系,用于对每个用户请求的扫描结果进行汇总,得到漏洞扫描结果。

进一步地,上述系统还包括:代理服务器,与多个漏洞扫描节点具有通信关系,用于接收用户访问网页生成的多个访问请求,在将多个访问请求发送至网页服务器的同时,拷贝多个访问请求,得到多个用户请求,并将多个用户请求发送给多个漏洞扫描节点。

进一步地,代理服务器还用于基于预设调度算法,将多个用户请求分发给多个漏洞扫描节点。

进一步地,上述系统还包括:目标客户端,与数据收集服务器具有通信关系,用于显示漏洞扫描结果。

在本发明实施例中,多个漏洞扫描节点获取多个用户请求,同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,并将每个用户请求的扫描结果发送给数据收集服务器,从而实现分布式的漏洞扫描。容易注意到的是,由于配置了多个漏洞扫描节点,多个漏洞扫描节点可以同时对获取到的多个用户请求进行漏洞扫描,得到漏洞扫描结果,与单机扫描的方式相比,缩短了漏洞扫描的时间,从而解决了现有技术中的漏洞扫描方法为单机扫描的方式,扫描时间长的技术问题。因此,通过本发明上述实施例提供的方案,可以达到缩短漏洞扫描时间,提高漏洞扫描效率的效果。

附图说明

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

图1是根据本发明实施例的一种漏洞扫描方法的流程图;

图2是根据本发明实施例的一种可选的漏洞扫描方法的流程图;

图3是根据本发明实施例的一种漏洞扫描装置的示意图;

图4是根据本发明实施例的一种漏洞扫描系统的示意图;

图5是根据本发明实施例的另一种漏洞扫描系统的示意图;

图6是根据本发明实施例的又一种漏洞扫描系统的示意图;以及

图7是根据本发明实施例的一种可选的漏洞扫描系统的示意图。

具体实施方式

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

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

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

cookie:小型文本文件,指某些网站为了辨别用户身份、进行会话session跟踪而存储在用户本地终端上的数据。由服务器端生成,发送给客户端,客户端的浏览器会存储该cookie,在下次请求同一网站时,可以发送该cookie给服务器。

实施例1

根据本发明实施例,提供了一种漏洞扫描方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的一种漏洞扫描方法的流程图,如图1所示,该方法包括如下步骤:

步骤S102,多个漏洞扫描节点获取多个用户请求,其中,每个漏洞扫描节点获取至少一个用户请求,多个用户请求为用户访问网页所生成的请求。

具体的,可以通过分布式的方式部署多个漏洞扫描节点,漏洞扫描节点的数量可以根据需要进行设定,例如,可以部署5个漏洞扫描节点,每个漏洞扫描节点都具备扫描漏洞的能力,可以自动化地进行漏洞扫描;上述的用户请求可以是用户访问网页生成的访问报文。

在一种可选的方案中,在通过分布式的方式部署多个漏洞扫描节点之后,可以将用于进行漏洞扫描的多个用户请求分发给多个漏洞扫描节点进行扫描,每个漏洞扫描节点对分配到的部分用户请求进行漏洞扫描。

步骤S104,多个漏洞扫描节点同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,其中,扫描结果包括:每个用户请求对应的系统是否存在漏洞以及漏洞的类型。

在一种可选的方案中,多个漏洞扫描节点可以同时对分配到的部分用户请求进行多种漏洞扫描,判断每个用户请求对应的系统是否存在漏洞,以及具体存在的漏洞的类型,例如,可以判断每个用户请求对应的网络是否存在漏洞,或者可以判断每个用户请求对应的服务器是否存在漏洞,得到每个用户请求对应的扫描结果。

步骤S106,多个漏洞扫描节点将每个用户请求的扫描结果发送给数据收集服务器,其中,数据收集服务器对每个用户请求的扫描结果进行汇总,得到漏洞扫描结果。

具体的,上述的数据收集服务器可以是与多个漏洞扫描节点通过网络进行通信的后台服务器。

在一种可选的方案中,每个漏洞扫描节点在完成一个用户请求的漏洞扫描之后,可以将得到的扫描结果上传至数据服务收集器,数据收集服务器作为一个汇总者对手机到的所有漏洞扫描节点发送的所有扫描结果进行汇总,得到最终的漏洞扫描结果,即可得到存在漏洞的系统,并确定该系统存在的漏洞的具体类型,网络维护人员可以根据漏洞扫描结果,对存在漏洞的系统进行修复处理,提高整个网络系统的安全性和可靠性。

根据本发明上述实施例,多个漏洞扫描节点获取多个用户请求,同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,并将每个用户请求的扫描结果发送给数据收集服务器,从而实现分布式的漏洞扫描。容易注意到的是,由于配置了多个漏洞扫描节点,多个漏洞扫描节点可以同时对获取到的多个用户请求进行漏洞扫描,得到漏洞扫描结果,与单机扫描的方式相比,缩短了漏洞扫描的时间,从而解决了现有技术中的漏洞扫描方法为单机扫描的方式,扫描时间长的技术问题。因此,通过本发明上述实施例提供的方案,可以达到缩短漏洞扫描时间,提高漏洞扫描效率的效果。

可选的,在本发明上述实施例中,在步骤S102,多个漏洞扫描节点获取多个用户请求之前,该方法还包括:

步骤S108,代理服务器接收用户访问网页生成的多个访问请求。

步骤S110,代理服务器在将多个访问请求发送至网页服务器的同时,拷贝多个访问请求,得到多个用户请求。

步骤S112,代理服务器将多个用户请求发送给多个漏洞扫描节点。

在一种可选的方案中,在用户访问网页之前,可以在客户端上安装代理软件,例如,可以在客户端上安装tornado软件,将所有的访问请求发送给代理服务器,由代理服务器转发给网页服务器,并将网页服务器响应每个访问请求返回的网页信息转发给客户端,代理服务器在转发访问请求的过程中,可以拷贝每个访问请求,从而得到多个用户请求,并将得到的所有用户请求发送给多个漏洞扫描节点进行漏洞扫描。

可选的,在本发明上述实施例中,步骤S112,代理服务器将多个用户请求发送给多个漏洞扫描节点包括:

步骤S1122,代理服务器基于预设调度算法,将多个用户请求分发给多个漏洞扫描节点。

具体的,上述的预设调度算法可以是现有的调度算法,例如,可以是负载均衡调度方法,本发明对此不做具体限定,任何可以实现请求调度的调度算法均可以实现本发明上述实施例的目的。

在一种可选的方案中,代理服务器在拷贝每个访问请求,得到多个用户请求之后,可以调用调度算法,将多个用户请求按照预设调度规则分配给预先配置好的多个漏洞扫描节点,从而每个漏洞扫描节点可以对接收到的用户请求进行漏洞扫描,得到每个用户请求的扫描结果。

通过上述步骤S108至步骤S112,可以通过代理服务器获取到用户请求,由于通过代理服务器在获取用户请求的过程中,存在人机交互,因此,通过代理服务器可以获取到cookie等需要人机交互的用户请求,从而解决了现有技术中无法获取到cookie的问题。

可选的,在本发明上述实施例中,在步骤S104,多个漏洞扫描节点同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果之后,该方法还包括:

步骤S114,多个漏洞扫描节点将每个用户请求的扫描结果进行结构化处理,得到结构化数据。

具体的,上述的结构化数据可以是二维表结构存储的数据。

步骤S116,多个漏洞扫描节点将结构化数据发送给数据收集服务器。

在一种可选的方案中,为了方便数据收集服务器对每个漏洞扫描节点发送的扫描结果进行汇总,每个漏洞扫描节点在扫描完成之后,可以将扫描结果进行结构化处理,将扫描结果以结构化数据的方式发送给数据收集服务器,由数据收集服务器对所有用户请求的扫描结果进行汇总,得到漏洞扫描结果。

通过上述步骤S114至步骤S116,多个漏洞扫描节点可以以结构化数据的方式发送每个用户请求的扫描结果,从而达到进一步提升漏洞扫描效率,方便扫描结果存储与查看的效果。

可选的,在本发明上述实施例中,步骤S106,多个漏洞扫描节点将每个用户请求的扫描结果发送给数据收集服务器包括:

步骤S1062,每个漏洞扫描节点基于多种漏洞检测算法,对获取到的每个用户请求进行漏洞扫描。

具体的,上述的漏洞检测算法可以是现有的漏洞检测算法,本发明对此不做具体限定,任何可以实现漏洞检测的算法均可以实现本发明上述实施例的目的。

步骤S1064,如果扫描到任意一个用户请求存在任意一种漏洞,则每个漏洞扫描节点获取任意一种漏洞的类型。

步骤S1066,每个漏洞扫描节点根据任意一种漏洞的类型和任意一个用户请求对应的系统,生成任意一个用户请求的扫描结果。

在一种可选的方案中,每个漏洞扫描节点在获取到用户请求之后,可以根据漏洞检测算法的需要,从用户请求中提取用于检测的信息,进行漏洞检测,在所有的检测算法进行漏洞检测完成之后,如果该用户请求对应的系统存在漏洞,则可以读取每种漏洞的类型,生成该用户请求的扫描结果,扫描结果中包含有该用户请求对应的系统,以及该系统存在的所有漏洞的类型。

通过上述步骤S1062至步骤S1066,多个漏洞扫描节点可以对多个用户请求进行多种漏洞的漏洞扫描,并根据存在的漏洞的类型生成扫描结果,从而实现在一次漏洞扫描的过程中,对多种漏洞进行扫描,达到提高漏洞扫描效率,提升漏洞扫描深度的效果。

可选的,在本发明上述实施例中,在步骤S106,数据收集服务器对每个用户请求的扫描结果进行汇总,得到漏洞扫描结果之后,该方法还包括:

步骤S118,数据收集服务器将漏洞扫描结果发送至目标客户端,其中,目标客户端显示漏洞扫描结果。

具体的,上述的目标客户端可以是网络管理员的计算机终端或者是需要进行漏洞扫描的客户的计算机终端。

在一种可选的方案中,数据收集服务器在对多个漏洞扫描节点发送的扫描结果进行汇总,得到漏洞扫描结果之后,可以将漏洞扫描结果通过邮件的方式发送给目标客户端,目标客户端显示通知消息,网络管理员或者客户通过点击通知消息可以打开邮件,目标客户端显示接收到的漏洞扫描结果,从而网络管理员或者客户可以获知存在漏洞的系统以及具体的漏洞类型。

图2是根据本发明实施例的一种可选的漏洞扫描方法的流程图,下面结合图2对本发明一种优选的实施例进行详细说明,如图2所示,该方法可以包括如下步骤:

步骤S21,用户设置代理,将所有请求提交给代理服务器。

可选的,用户在访问网页之前,可以设置代理服务器,将所有访问请求发送给代理服务器,由代理服务器转发给网页服务器,并接收网页服务器响应访问请求返回的网页信息,例如,使用代理软件例如tornado,获取到用户请求。这个过程由于存在人机交互,所以获取到的cookie是用户人机交互后的结果,解决了人机交互问题。

步骤S22,代理服务器拷贝用户请求,将用户请求通过调度算法发送给多个漏洞扫描节点。

可选的,代理服务器在转发访问请求的过程中,可以原样拷贝访问请求,得到多个用户请求,并通过调度算法将多个用户请求分发给多个漏洞扫描节点。

步骤S23,多个漏洞扫描节点进行漏洞扫描,发现后通知数据收集服务器。

可选的,每个扫描节点具备扫描漏洞的能力,且是自动化的扫描,多个漏洞扫描节点同时对接收到的多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,并以结构化数据的方式发送给数据收集服务器。

步骤S24,数据收集服务器汇总扫描结果,并发送给用户。

可选的,数据收集服务器将多个漏洞扫描节点发送的扫描结果进行汇总,得到漏洞扫描结果,并将漏洞扫描结果通过邮件的方式通知用户,从而用户可以获知某个系统存在漏洞以及具体的漏洞类型。

通过上述步骤S21至步骤S24,提供了一套基于代理的分布式的漏洞扫描方案,该方案为自动化的漏洞扫描方案,可以通过分布式的方法部署漏洞扫描节点,并通过代理技术获取到人机交互后的用户请求,进行漏洞扫描。因此,本发明上述实施例提供的方案具有如下优点:

1、通过分布式的方式缩短了漏洞扫描的时间;

2、通过代理获取用户提交的请求,拷贝用户提交的请求,进行漏洞挖掘,由于过程中有人机交互,因此可以很好的获取到cookie等需要人机交互的请求。

实施例2

根据本发明实施例,提供了一种漏洞扫描装置的实施例。

图3是根据本发明实施例的一种漏洞扫描装置的示意图,如图3所示,该装置包括:

获取模块31,用于多个漏洞扫描节点获取多个用户请求,其中,每个漏洞扫描节点获取至少一个用户请求,多个用户请求为用户访问网页所生成的请求。

具体的,可以通过分布式的方式部署多个漏洞扫描节点,漏洞扫描节点的数量可以根据需要进行设定,例如,可以部署5个漏洞扫描节点,每个漏洞扫描节点都具备扫描漏洞的能力,可以自动化地进行漏洞扫描;上述的用户请求可以是用户访问网页生成的访问报文。

在一种可选的方案中,在通过分布式的方式部署多个漏洞扫描节点之后,可以将用于进行漏洞扫描的多个用户请求分发给多个漏洞扫描节点进行扫描,每个漏洞扫描节点对分配到的部分用户请求进行漏洞扫描。

扫描模块33,用于多个漏洞扫描节点同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,其中,扫描结果包括:每个用户请求对应的系统是否存在漏洞以及漏洞的类型。

在一种可选的方案中,多个漏洞扫描节点可以同时对分配到的部分用户请求进行多种漏洞扫描,判断每个用户请求对应的系统是否存在漏洞,以及具体存在的漏洞的类型,例如,可以判断每个用户请求对应的网络是否存在漏洞,或者可以判断每个用户请求对应的服务器是否存在漏洞,得到每个用户请求对应的扫描结果。

发送模块35,用于多个漏洞扫描节点将每个用户请求的扫描结果发送给数据收集服务器,其中,数据收集服务器对每个用户请求的扫描结果进行汇总,得到漏洞扫描结果。

具体的,上述的数据收集服务器可以是与多个漏洞扫描节点通过网络进行通信的后台服务器。

在一种可选的方案中,每个漏洞扫描节点在完成一个用户请求的漏洞扫描之后,可以将得到的扫描结果上传至数据服务收集器,数据收集服务器作为一个汇总者对手机到的所有漏洞扫描节点发送的所有扫描结果进行汇总,得到最终的漏洞扫描结果,即可得到存在漏洞的系统,并确定该系统存在的漏洞的具体类型,网络维护人员可以根据漏洞扫描结果,对存在漏洞的系统进行修复处理,提高整个网络系统的安全性和可靠性。

根据本发明上述实施例,多个漏洞扫描节点获取多个用户请求,同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,并将每个用户请求的扫描结果发送给数据收集服务器,从而实现分布式的漏洞扫描。容易注意到的是,由于配置了多个漏洞扫描节点,多个漏洞扫描节点可以同时对获取到的多个用户请求进行漏洞扫描,得到漏洞扫描结果,与单机扫描的方式相比,缩短了漏洞扫描的时间,从而解决了现有技术中的漏洞扫描方法为单机扫描的方式,扫描时间长的技术问题。因此,通过本发明上述实施例提供的方案,可以达到缩短漏洞扫描时间,提高漏洞扫描效率的效果。

实施例3

根据本发明实施例,提供了一种漏洞扫描系统的实施例。

图4是根据本发明实施例的一种漏洞扫描系统的示意图,如图4所示,该系统包括:

多个漏洞扫描节点41,用于获取多个用户请求,并同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,其中,每个漏洞扫描节点获取至少一个用户请求,多个用户请求为用户访问网页所生成的请求,扫描结果包括:每个用户请求对应的系统是否存在漏洞以及漏洞的类型。

具体的,可以通过分布式的方式部署多个漏洞扫描节点,漏洞扫描节点的数量可以根据需要进行设定,例如,可以部署5个漏洞扫描节点,每个漏洞扫描节点都具备扫描漏洞的能力,可以自动化地进行漏洞扫描;上述的用户请求可以是用户访问网页生成的访问报文。

在一种可选的方案中,在通过分布式的方式部署多个漏洞扫描节点之后,可以将用于进行漏洞扫描的多个用户请求分发给多个漏洞扫描节点进行扫描,每个漏洞扫描节点对分配到的部分用户请求进行漏洞扫描。多个漏洞扫描节点可以同时对分配到的部分用户请求进行多种漏洞扫描,判断每个用户请求对应的系统是否存在漏洞,以及具体存在的漏洞的类型,例如,可以判断每个用户请求对应的网络是否存在漏洞,或者可以判断每个用户请求对应的服务器是否存在漏洞,得到每个用户请求对应的扫描结果。

数据收集服务器43,与多个漏洞扫描节点具有通信关系,用于对每个用户请求的扫描结果进行汇总,得到漏洞扫描结果。

具体的,上述的数据收集服务器可以是与多个漏洞扫描节点通过网络进行通信的后台服务器。

在一种可选的方案中,每个漏洞扫描节点在完成一个用户请求的漏洞扫描之后,可以将得到的扫描结果上传至数据服务收集器,数据收集服务器作为一个汇总者对手机到的所有漏洞扫描节点发送的所有扫描结果进行汇总,得到最终的漏洞扫描结果,即可得到存在漏洞的系统,并确定该系统存在的漏洞的具体类型,网络维护人员可以根据漏洞扫描结果,对存在漏洞的系统进行修复处理,提高整个网络系统的安全性和可靠性。

根据本发明上述实施例,多个漏洞扫描节点获取多个用户请求,同时对多个用户请求进行漏洞扫描,得到每个用户请求的扫描结果,并将每个用户请求的扫描结果发送给数据收集服务器,数据收集服务器对每个用户请求的扫描结果进行汇总,得到漏洞扫描结果,从而实现分布式的漏洞扫描。容易注意到的是,由于配置了多个漏洞扫描节点,多个漏洞扫描节点可以同时对获取到的多个用户请求进行漏洞扫描,得到漏洞扫描结果,与单机扫描的方式相比,缩短了漏洞扫描的时间,从而解决了现有技术中的漏洞扫描方法为单机扫描的方式,扫描时间长的技术问题。因此,通过本发明上述实施例提供的方案,可以达到缩短漏洞扫描时间,提高漏洞扫描效率的效果。

图5是根据本发明实施例的另一种漏洞扫描系统的示意图,可选的,在本发明上述实施例中,如图5所示,该系统还包括:

代理服务器51,与多个漏洞扫描节点具有通信关系,用于接收用户访问网页生成的多个访问请求,将多个访问请求发送至网页服务器的同时,拷贝多个访问请求,得到多个用户请求,并将多个用户请求发送给多个漏洞扫描节点。

在一种可选的方案中,在用户访问网页之前,可以在客户端上安装代理软件,例如,可以在客户端上安装tornado软件,将所有的访问请求发送给代理服务器,由代理服务器转发给网页服务器,并将网页服务器响应每个访问请求返回的网页信息转发给客户端,代理服务器在转发访问请求的过程中,可以拷贝每个访问请求,从而得到多个用户请求,并将得到的所有用户请求发送给多个漏洞扫描节点进行漏洞扫描。

可选的,在本发明上述实施例中,代理服务器还用于基于预设调度算法,将多个用户请求分发给多个漏洞扫描节点。

具体的,上述的预设调度算法可以是现有的调度算法,例如,可以是负载均衡调度方法,本发明对此不做具体限定,任何可以实现请求调度的调度算法均可以实现本发明上述实施例的目的。

在一种可选的方案中,代理服务器在拷贝每个访问请求,得到多个用户请求之后,可以调用调度算法,将多个用户请求按照预设调度规则分配给预先配置好的多个漏洞扫描节点,从而每个漏洞扫描节点可以对接收到的用户请求进行漏洞扫描,得到每个用户请求的扫描结果。

通过上述方案,可以通过代理服务器获取到用户请求,由于通过代理服务器在获取用户请求的过程中,存在人机交互,因此,通过代理服务器可以获取到cookie等需要人机交互的用户请求,从而解决了现有技术中无法获取到cookie的问题。

可选的,在本发明上述实施例中,多个漏洞扫描节点还用于将每个用户请求的扫描结果进行结构化处理,得到结构化数据,将结构化数据发送给数据收集服务器。

在一种可选的方案中,为了方便数据收集服务器对每个漏洞扫描节点发送的扫描结果进行汇总,每个漏洞扫描节点在扫描完成之后,可以将扫描结果进行结构化处理,将扫描结果以结构化数据的方式发送给数据收集服务器,由数据收集服务器对所有用户请求的扫描结果进行汇总,得到漏洞扫描结果。

通过上述方案,多个漏洞扫描节点可以以结构化数据的方式发送每个用户请求的扫描结果,从而达到进一步提升漏洞扫描效率,方便扫描结果存储与查看的效果。

可选的,在本发明上述实施例中,每个漏洞扫描节点还用于基于多种漏洞检测算法,对获取到的每个用户请求进行漏洞扫描,如果扫描到任意一个用户请求存在任意一种漏洞,则获取任意一种漏洞的类型,并根据任意一种漏洞的类型和任意一个用户请求对应的系统,生成任意一个用户请求的扫描结果。

具体的,上述的漏洞检测算法可以是现有的漏洞检测算法,本发明对此不做具体限定,任何可以实现漏洞检测的算法均可以实现本发明上述实施例的目的。

在一种可选的方案中,每个漏洞扫描节点在获取到用户请求之后,可以根据漏洞检测算法的需要,从用户请求中提取用于检测的信息,进行漏洞检测,在所有的检测算法进行漏洞检测完成之后,如果该用户请求对应的系统存在漏洞,则可以读取每种漏洞的类型,生成该用户请求的扫描结果,扫描结果中包含有该用户请求对应的系统,以及该系统存在的所有漏洞的类型。

通过上述方案,多个漏洞扫描节点可以对多个用户请求进行多种漏洞的漏洞扫描,并根据存在的漏洞的类型生成扫描结果,从而实现在一次漏洞扫描的过程中,对多种漏洞进行扫描,达到提高漏洞扫描效率,提升漏洞扫描深度的效果。

图6是根据本发明实施例的又一种漏洞扫描系统的示意图,可选的,在本发明上述实施例中,如图6所示,该方法还包括:

目标客户端61,与数据收集服务器具有通信关系,用于显示漏洞扫描结果。

具体的,上述的目标客户端可以是网络管理员的计算机终端或者是需要进行漏洞扫描的客户的计算机终端。

在一种可选的方案中,数据收集服务器在对多个漏洞扫描节点发送的扫描结果进行汇总,得到漏洞扫描结果之后,可以将漏洞扫描结果通过邮件的方式发送给目标客户端,目标客户端显示通知消息,网络管理员或者客户通过点击通知消息可以打开邮件,目标客户端显示接收到的漏洞扫描结果,从而网络管理员或者客户可以获知存在漏洞的系统以及具体的漏洞类型。

图7是根据本发明实施例的一种可选的漏洞扫描系统的示意图,下面结合图7对本发明一种优选的实施例进行详细说明,如图7所示,该系统可以包括:协调者(即上述的代理服务器)、扫描者1至扫描者n(即上述的多个漏洞扫描节点)和汇总者(即上述的数据收集服务器)。通过代理获取用户请求,通过协调者进行任务的调度和分配,通过扫描者1至扫描者n进行漏洞扫描和通知,通过汇总者汇总扫描结果并通知给用户。

通过上述方案,提供了一套基于代理的分布式的漏洞扫描方案,该方案为自动化的漏洞扫描方案,可以通过一个代理服务器获取到用户请求,使用可以更新的调度算法将请求发送给多个漏洞扫描节点进行漏洞扫描,扫描完成后,多个漏洞扫描节点将结果反馈给扫描结果数据收集服务器,并展示给用户。因此,本发明上述实施例提供的方案具有如下优点:

1、通过分布式的方式缩短了漏洞扫描的时间;

2、通过代理获取用户提交的请求,拷贝用户提交的请求,进行漏洞挖掘,由于过程中有人机交互,因此可以很好的获取到cookie等需要人机交互的请求。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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