漏洞检测方法、检测装置和检测系统与流程

文档序号:17049338发布日期:2019-03-05 19:52阅读:178来源:国知局
漏洞检测方法、检测装置和检测系统与流程

本发明涉及网络安全领域,具体而言,涉及一种漏洞检测方法、检测装置和检测系统。



背景技术:

随着互联网技术的发展,在网络中出现了越来越多的服务,用户通过网络可随时随地的获取服务,人们获取网络服务的途径越来越便捷。同时,网络服务中存在的漏洞也越来越容易被黑客所利用,进而导致网络服务被黑客所入侵,用户的数据被泄露,由此,给企业以及个人造成了财产上乃至名誉上的损失。

漏洞扫描器作为一种主动对网络服务的漏洞进行扫描的设备,可以基于漏洞数据库,通过扫描等手段对指定的远程或本地计算机系统的安全性进行检测,进一步发现可利用的漏洞。因此,通过漏洞扫描器来扫描网络服务的漏洞是一种安全检测(即渗透攻击)行为,可以有效地提高网络服务的安全性能。

传统的漏洞扫描器是基于请求-响应模型的扫描器,其中,请求-响应模型是指漏洞扫描器向被扫描服务器发送扫描请求,被扫描服务器对扫描请求进行响应,并将响应结果反馈给漏洞扫描器的过程,在这个过程中,需要构造网络请求,通过判断被扫描服务器对网络请求的响应是否携带回显特征来判断被扫描服务器是否存在漏洞。

但上述请求-响应模型存在如下问题:

(1)如果被扫描服务器存在漏洞,并且被扫描服务器进行了响应,并将回显特征反馈给漏洞扫描器。但回显特征可能没有明确的特征可以提取,由此,产生了漏报现象。常见的漏洞如命令执行漏洞、ssrf(server-siderequestforgery,即服务器端请求伪造漏洞),以命令执行漏洞为例,漏洞扫描器构造特定请求,请求中携带被扫描服务器所要执行的命令,如果被扫描服务器中存在漏洞,则被扫描服务器将会执行该命令,但被扫描服务器执行该命令的结果与被扫描服务器未执行该命令之前并没有产生明显的区别特征,漏洞扫描器无法根据不明显的特征来确定被扫描服务器是否存在漏洞。

(2)如果被扫描服务器存在漏洞,但被扫描服务器没有立即执行请求所携带的命令,需要通过人工操作的方式才能触发被扫描服务器执行该命令。然而,由于请求-响应模型是即时的,因此,传统的漏洞扫描器也无法感知被扫描服务器中是否存在漏洞。其中,比较常见的漏洞类型为存储型xss(crosssitescripting,跨站脚本攻击)。包含存储型xss的漏洞网站在接收到漏洞扫描器的特定请求后,会将请求中的payload存储在数据库中,在用户访问网页之后才会触发被扫描服务器执行该命令。然而,用户在何时访问该网页时未知的,从而漏洞扫描器无法确定被扫描服务器中是否存在漏洞。

针对上述在扫描漏洞的过程中,无法精确地对漏洞进行自动化检测的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种漏洞检测方法、检测装置和检测系统,以至少解决在对漏洞扫描的过程中,无法精确地对漏洞进行自动化检测的技术问题。

根据本发明实施例的一个方面,提供了一种漏洞检测方法,包括:第二服务器接收第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞;在漏洞扫描请求被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息;第二服务器发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

根据本发明实施例的另一方面,还提供了一种漏洞检测系统,包括:第二服务器包括:接收模块,用于接收来第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞;信息获取模块,用于在漏洞扫描请求被触发时,获取漏洞扫描请求被执行时对应的安全漏洞信息;处理模块,用于发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

根据本发明实施例的另一方面,还提供了一种漏洞检测装置,包括:接收子模块,用于第二服务器接收第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞;获取子模块,用于在漏洞扫描请求被触发时,获取漏洞扫描请求被执行时对应的安全漏洞信息;处理子模块,用于发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行漏洞检测方法。

根据本发明实施例的另一方面,还提供了一种处理器,该处理器用于运行程序,其中,程序运行时执行漏洞检测方法。

根据本发明实施例的另一方面,还提供了一种系统,包括:处理器;以及存储器,与处理器连接,用于为处理器提供执行以下处理过程的指令:第二服务器接收第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞;在漏洞扫描请求被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息;第二服务器发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

在本发明实施例中,采用反连服务器的方式,通过第二服务器接收第一服务器发送的漏洞扫描请求,在漏洞扫描请求被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息,并发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞,达到了精确判断漏洞是否存在,并对检测到的漏洞进行精确定位的目的,从而实现了对被扫描服务器漏洞进行自动化检测的技术效果,进而解决了在对漏洞扫描的过程中,无法精确地对漏洞进行自动化检测的技术问题。

附图说明

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

图1是根据现有技术的一种现有的漏洞检测方法的示意图;

图2是根据本发明实施例的一种漏洞检测系统的结构示意图;

图3是根据本发明实施例的一种可选的漏洞检测系统的交互示意图;

图4是根据本发明实施例的一种可选的漏洞检测系统的架构图;

图5是根据本发明实施例的一种漏洞检测方法的流程图;

图6是根据本发明实施例的一种可选的漏洞检测方法的流程图;

图7是根据本发明实施例的一种可选的漏洞检测方法的流程图;

图8是根据本发明实施例的一种可选的漏洞检测方法的流程图;

图9是根据本发明实施例的一种漏洞检测装置的结构示意图;以及

图10是根据本发明实施例的一种计算机终端的硬件结构框图。

具体实施方式

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

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

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

(1)漏洞扫描器,是一种用于对企业网络进行漏洞扫描的硬件设备,可分为主机漏洞扫描器和网络漏洞扫描器,其中,主机漏洞扫描器用于对在系统本地检测系统漏洞,网络漏洞扫描器指对企业网络架构系统或者网站进行扫描的硬件设备。

(2)命令执行漏洞,指用户通过浏览器提交执行命令,由于服务器端没有对执行函数进行过滤,从而导致在没有指定绝对路径的情况下执行命令,可能会允许攻击者通过改变路径或程序执行环境的其他方面来执行一个恶意构造的代码。

(3)payload,即有效负载,指用户构造的恶意请求中希望服务器执行的具体操作。

(4)回显特征,指显示正在执行的批处理命令及执行的结果,例如,被扫描服务器执行请求中的命令,并产生执行结果,该执行结果即为回显特征。

(5)反连或回连,指如果服务器a向服务器b发送一个扫描请求,而从服务器b返回的与扫描请求对应的扫描响应中无法确定用户所操作的服务的接口、漏洞的类型、payload的触发位置以及payload这些细节信息,进而无法精确确定特定类型漏洞(例如:命令执行漏洞),那么服务器a可以向服务器b发送携带有反连命令的扫描请求时,如果服务器b中包含命令执行漏洞,则服务器b将执行反连命令,并在向服务器a返回原有的请求响应的基础上,再向服务器a发送一个网络请求,其中,该网络请求中携带的信息包括:用户所操作的服务的接口、漏洞的类型、payload的触发位置以及payload这些细节信息,以便服务器a确定特定类型漏洞。

实施例1

根据本发明实施例,提供了一种漏洞检测系统的实施例,需要说明的是,本实施例可以应用于对服务器的漏洞检测中,通过本申请所提出的方案,可以确定服务器中是否存在漏洞,并在服务器中存在漏洞的情况下,确定漏洞所在的具体位置,进而提高了用户使用网络的安全性。

随着互联网技术的快速发展,网络中出现了越来越多的服务,人们通过网络可随时随地的获取网络服务。在人们越来越便捷地获取到网络服务器的同时,黑客利用网络服务中存在的漏洞来获取人们的私密信息,由此,给企业以及个人造成了财产上乃至名誉上的损失。

漏洞扫描器作为一种主动对网络服务的漏洞进行扫描的设备,可发现被扫描服务器中的漏洞,进而对被扫描服务器的安全性进行检测。

在一种可选的实施例中,如图1所示的一种现有的漏洞检测方法的示意图,其中,在图1中,用户表示被扫描的设备,可以为但不限于本地计算机系统以及服务器。具体步骤如下:

步骤1,被扫描设备接收到扫描请求后,向用户设置的dns服务器查询域名“test.loii.club”;

步骤2,用户设置的dns服务器通过迭代的方式在dns服务器中查询域名“test.loii.club”;

步骤3,dns服务器对上述域名进行配置,将nameserver.ns.loii.club返回给用户设置的dns服务器;

步骤4,用户设置的dns服务器根据dns服务器返回的nameserver.ns.loii.club,在ns服务器中查询“test.loii.club”;

步骤5,ns服务器根据对“test.loii.club”进行解析,得到ip地址(127.0.0.1),并将该ip地址反馈给用户设置的dns服务器;

步骤6,用户设置的dns服务器将ip地址反馈给被扫描设备,被扫描设备根据反馈的结果确定该设备是否存在漏洞。

另外,上述用户设置的dns服务器也可以为用户设置的http服务器,http服务器通过构造请求,让用户出发http请求,通过http服务器日志来人工判断被扫描设备是否存在漏洞,对漏洞的检测原理与上述原理相同,在此不再赘述。

然而,在上述方案中,存在如下问题:

①被扫描设备的回显特征中没有携带足够的特征来对被扫描设备的漏洞进行描述。用于dns协议的局限性,使得在一个反向连接的过程中无法对漏洞进行详细描述,针对用户的回连操作,无法确定用户所操作的服务的接口、漏洞的类型、payload的触发位置以及payload的具体形式,缺乏足够的细节信息,因此,无法精确确定漏洞的详细信息。

②需要对日志进行人工分析,甚至有可能需要有针对性的被扫描设备重新进行一次漏洞扫描,无法自动定位到漏洞的具体位置。

为解决上述问题,申请人经研究,定义了一种规则编写语法,通过xml语言描述扫描规则,并定义构造请求所对应的漏洞类型、所使用的接口、漏洞的触发位置以及payload等,在构造请求时在参数中携带这些信息,并对反连的http请求进行自动分析,从而实现了实时将定位漏洞信息并入数据库,进而达到了上述参数完全自动化入库的目的。

此外,与传统的漏洞检测系统相比,本申请所提出的方案还可以得到如下技术效果:采用反连服务器的方式,达到了精确判断漏洞是否存在,并对检测到的漏洞进行精确定位的目的,从而实现了对被扫描服务器漏洞进行自动化检测的技术效果。另外,本申请所提出的方案可以在linux平台上实现,采用java编程语言,由于在对被扫描设备进行扫描的过程中,需要占用大量的带宽,需要高并发执行,而linux平台可以为其提供大流量网卡和优质的网络环境,进而,提高了漏洞扫描器对被扫描设备的扫描速度。

在上述系统架构下,作为一种可选的实施例,图2示出了根据本申请实施例的一种漏洞检测系统的结构示意图,如图2所示,该系统包括:第一服务器10、第二服务器20和第三服务器30,其中,第二服务器20包括:接收模块201、信息获取模块203以及处理模块205。

其中,接收模块201,用于接收来第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞;信息获取模块203,用于在漏洞扫描请求被触发时,获取漏洞扫描请求被执行时对应的安全漏洞信息;处理模块205,用于发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

需要说明的是,第一服务器可以为但不限于对被扫描设备进行扫描的设备,可以为但不限于漏洞扫描器;第二服务器为被扫描的设备,第三服务器为用于进行反连的服务器,可以为但不限于http服务器。

在一种可选的实施例中,漏洞扫描器向被扫描的第二服务器发送漏洞扫描请求,以获取第二服务器中的安全漏洞信息,其中,漏洞扫描请求中包含了第二服务器的域名或ip地址、身份认证信息以及扫描速率等,安全漏洞信息至少包括:漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷(即payload),而漏洞类型至少包括命令执行漏洞、ssrf、存储型xss、sql注入漏洞、弱口令漏洞、http报头追踪漏洞、struts2远程命令执行漏洞、框架钓鱼漏洞(框架注入漏洞)、文件上传漏洞等。第二服务器的接收模块与第一服务器之间通过无线通信连接,接收模块在接收到第一服务器的漏洞扫描请求之后,对漏洞扫描请求进行解析处理,并将解析后的解析结果传送给处理模块,如果处理模块执行了解析结果中的漏洞检测命令,说明第二服务器中存在漏洞,并获取第二服务器中的安全漏洞信息,然后基于获取到的安全漏洞信息生成网络请求,最后将网络请求发送给触发模块。触发模块在接收到处理模块发送的网络请求之后,将网络请求发送给第三服务器,第三服务器网络请求进行解析,得到封装在网络请求中的安全漏洞信息,并对安全漏洞信息进行存储,并获取到第二服务器中的漏洞的位置以及漏洞类型等。

此处需要说明的是,在第二服务器中存在漏洞的情况下,第二服务器会产生控制处理模块执行漏洞检测命令的指令,进而处理模块在检测到有该指令生成的情况下,执行漏洞检测命令。否则,处理模块正常运行,但不执行漏洞检测命令。

此外,还需要说明的是,第二服务器根据不同类型的漏洞扫描请求扫描不同类型的安全漏洞,即第二服务器根据第一服务器所发送的漏洞扫描请求来检测第二服务器的本地是否存在与漏洞扫描请求对应的安全漏洞。其中,不同类型的漏洞扫描请求对应不同类型的安全漏洞。

在另一种可选的实施例中,第一服务器具有与第三服务器相同的存储安全漏洞信息的功能。在第二服务器向第三服务器发送与漏洞扫描请求对应的安全漏洞信息之后,第一服务器或第三服务器将安全漏洞信息存储在预设存储区域中,其中,预设存储区域用于存储与第二服务器关联的漏洞检测结果。在仅存在第一服务器和第二服务器的情况下,位于第一服务器的预设存储区域存储与第二服务器关联的漏洞检测结果。而在漏洞检测系统中,即存在第一服务器、第二服务器和第三服务器的情况下,第一服务器发送漏洞扫描请求,而不对漏洞检测结果进行存储,此时,第三服务器中的预设存储区域内存储安全漏洞信息。

由上可知,在本申请的上述实施例中,通过第二服务器接收第一服务器发送的漏洞扫描请求,在漏洞扫描请求被触发时,获取漏洞扫描请求被执行时对应的安全漏洞信息,并发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞。

容易注意到的是,漏洞扫描请求中包含有漏洞检测命令,在第二服务器中存在漏洞的情况下,第二服务器执行漏洞扫描请求中的漏洞检测命令,而在第二服务器中不存在漏洞的情况下,第二服务器将不执行漏洞检测命令,即如果第二服务器执行了漏洞检测命令,并产生了执行结果,则确定第二服务器中存在漏洞,进而再获取第二服务器中的安全漏洞信息。由此,通过本申请的上述方案可以精确确定第二服务器中是否存在安全漏洞,从而有效减少了对安全漏洞的漏报。

通过本申请上述实施例1所提供的方案,可以达到精确判断漏洞是否存在,并对检测到的漏洞进行精确定位的目的,从而实现了对被扫描服务器漏洞进行自动化检测的技术效果,进而解决了在对漏洞扫描的过程中,无法精确地对漏洞进行自动化检测的技术问题。

在一种可选的实施例中,第二服务器中的处理模块包括:确定单元、获取单元以及处理单元。其中,确定单元用于从漏洞扫描请求中解析出漏洞描述信息,并根据漏洞描述信息确定本地存在安全漏洞,其中,漏洞描述信息包括:漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数、触发漏洞待使用的有效载荷;获取单元用于获取第三服务器所支持的通信协议;处理单元用于按照通信协议将安全漏洞信息封装在网络请求中,其中,安全漏洞信息包括:与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数、触发漏洞待使用的有效载荷;处理单元用于向第三服务器发送网络请求。

需要说明的是,如果确定单元对第一服务器发送的漏洞扫描请求进行响应,说明第二服务器中存在安全漏洞;如果确定单元没有对第一服务器发送的漏洞扫描请求进行响应,说明第二服务器中不存在安全漏洞。上述第三服务器所支持的通信协议可以为但不限于http、tcp、udp。

在另一种可选的实施例中,如图2所示,漏洞检测系统包括第三服务器,其中,第三服务器包括解析模块、第一生成模块、存储模块以及保存模块。其中,解析模块,用于对网络请求进行解析,从网络请求中获取与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷;第一生成模块,用于采用与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷生成安全漏洞记录;存储模块,用于将安全漏洞记录存储于预设存储区域;保存模块,用于将安全漏洞信息存储在预设存储区域,其中,预设存储区域用于存储与第二服务器关联的漏洞检测结果。

需要说明的是,上述预设存储区域为第三服务器本地的存储区域(例如,位于第三服务器本地的文件夹中的存储区域),也可以为安装在第三服务器上的数据库的存储区域。

在另一种可选的实施例中,如图2所示,漏洞检测系统包括第一服务器,其中,第一服务器包括:第二生成模块、获取模块以及发送模块。其中,第二生成模块,用于从预设存储区域内提取安全漏洞记录,生成漏洞检测报告;获取模块,用于获取漏洞检测任务,其中,漏洞检测任务中携带有第二服务器的标识信息;发送模块,用于根据漏洞检测任务向第二服务器发送漏洞扫描请求。

需要说明的是,第一服务器通过访问第三服务器中的预设存储区域来提取安全漏洞记录,并根据安全漏洞记录生成漏洞检测报告,其中,漏洞检测报告内记录了被扫描服务器(即第二服务器)中的所有漏洞的安全漏洞信息,对于第二服务器反连的安全漏洞信息,第三服务器将获取到的每条安全漏洞记录存储在第三服务器中的数据库中,第三服务器的后台处理程序在检测到数据库内的存储内容发生变化时,直接将该条安全漏洞记录通过网络推送给相关的业务开发人员。

在另一种可选的实施例中,图3示出了一种可选的漏洞检测系统的交互示意图,如图3所示,漏洞检测系统包括第一服务器、第二服务器和第三服务器,三个服务器之间的交互流程具体如下:

步骤s300,第一服务器获取漏洞检测任务,其中,用户可通过对第一服务器进行操作,来设置漏洞检测任务。具体的,用户可在第一服务器中设置被扫描服务器的名称或id、扫描时间、扫描类型等。

步骤s302,第一服务器根据漏洞检测任务向第二服务器发送漏洞扫描请求。具体的,第一服务器根据漏洞检测任务中的服务器的名称或id来确定被扫描服务器,并将漏洞扫描请求发送给确定需要进行漏洞检测的服务器,即第二服务器。

步骤s304,第二服务器接收第一服务器发送的漏洞扫描请求,并根据漏洞扫描请求来确定本地存在安全漏洞。需要说明的是,漏洞扫描请求中包含有漏洞检测命令,如果第二服务器的本地存在安全漏洞,则第二服务器将执行漏洞检测命令,否则,不执行漏洞检测命令。

步骤s306,在确定第二服务器本地存在安全漏洞的情况下,第二服务器构造网络请求,其中,网络请求中携带有安全漏洞信息,其中,安全漏洞信息至少包括如下之一:漏洞检测任务标识、漏洞类型、漏洞存在的位置、触发漏洞的参数、触发漏洞待使用的有效载荷等。

步骤s308,第二服务器向第三服务器发送网络请求。

步骤s310,第三服务器在接收到网络请求之后,从网络请求中解析出安全漏洞信息。

步骤s312,第三服务器根据安全漏洞信息生成安全漏洞记录,并将安全漏洞记录存储在第三服务器中的预设存储区域中。

步骤s314,第一服务器从第三服务器的预设存储区域中读取安全漏洞记录,并生成第二服务器的安全漏洞检测报告,用户通过第一服务器便可查看到对第二服务器进行漏洞检测的检测结果。

还存在一种可选的实施例,如图4所示的一种可选的漏洞检测系统的架构图,漏洞检测系统包括用户接口、扫描引擎、规则库、漏洞库。其中,用户接口用于与用户进行交互,例如,用户可通过用户接口下发漏洞检测任务,用户还可通过用户接口来查看生成好的扫描报告。扫描引擎用于通过规则库中的扫描规则对被扫描的设备进行扫描,通过漏洞库查询到扫描到的漏洞类型,根据扫描结果构造网络请求,并将网络请求发送给http服务器,http服务器根据安全漏洞信息生成安全漏洞记录,并对安全漏洞记录进行存储。漏洞扫描器从http服务器中读取安全漏洞记录生成检测漏洞的扫描报告。

实施例2

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

本申请提供了图5所示的一种获取验证码的方法,通过本申请所提出的方案,可以确定服务器中是否存在漏洞,并在服务器中存在漏洞的情况下,确定漏洞所在的具体位置,进而提高了用户使用网络的安全性,具体地,图5是根据本申请实施例的一种漏洞检测方法的流程图,如图5所示,该方法具体包括如下步骤:

步骤s502,第二服务器接收第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞。

需要说明的是,第二服务器为被扫描的设备,第一服务器为对第二服务器进行扫描的设备,可以为但不限于漏洞扫描器。此外,上述安全漏洞信息至少包括漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷。

具体的,用户通过第一服务器下发漏洞检测任务,第一服务器在接收到漏洞检测任务之后向第二服务器发送漏洞扫描请求,第二服务器在接收到漏洞扫描请求后,对漏洞扫描请求进行解析处理,得到第二服务器的域名或ip地址、身份认证信息以及漏洞的扫描速率等。

在一种可选的实施例中,存在多个待扫描的设备的情况下,用户通过第一服务器来选择需要进行漏洞扫描的第二服务器,每个第二服务器具有一个唯一的标识信息,其中,该标识信息可以为但不限于id、域名或ip地址。第一服务器生成多个漏洞扫描请求,并将多个漏洞扫描请求发送给第二服务器,第二服务器对多个漏洞扫描请求进行解析处理,得到每个漏洞扫描请求中所包含的标识信息,并将该标识信息与第二服务器的标识信息进行匹配,如果匹配成功,则该标识信息所对应的漏洞扫描请求即为该第二服务器所对应的漏洞扫描请求。

此外,还需要说明的是,第二服务器根据不同类型的漏洞扫描请求扫描不同类型的安全漏洞,即第二服务器根据第一服务器所发送的漏洞扫描请求来检测第二服务器的本地是否存在与漏洞扫描请求对应的安全漏洞。其中,不同类型的漏洞扫描请求对应不同类型的安全漏洞。

步骤s504,在漏洞扫描请求被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息。

需要说明的是,漏洞扫描请求中还包括漏洞检测命令,第二服务器可执行漏洞检测命令,并产生执行结果,第二服务器根据执行结果可判断第二服务器的本地是否存在安全漏洞。上述第三服务器为进行反连或回连的服务器,可以为但不限于http服务器。

具体的,第二服务器对漏洞扫描请求进行解析处理,得到漏洞检测命令。如果第二服务器中存在安全漏洞,则当第二服务器解析得到漏洞检测命令后,存在安全漏洞的第二服务器将执行该漏洞检测命令,并产生执行结果;如果第二服务器中不存在安全漏洞,则第二服务器不会执行漏洞检测命令。因此,可通过判断第二服务器是否执行漏洞检测命令来确定第二服务器中是否存在安全漏洞。在确定第二服务器的本地存在安全漏洞的情况下,第二服务器获取安全漏洞信息,并将安全漏洞信息封装成网络请求。

步骤s506,第二服务器发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

在一种可选的实施例中,在确定第二服务器中存在安全漏洞的情况下,第二服务器将安全漏洞信息封装成网络请求,并向第三服务器发起网络请求,第三服务器接收到网络请求后,从网络请求中解析出安全漏洞信息,并根据安全漏洞信息生成安全漏洞记录,并将其存储在第三服务器的预设存储区域中,第一服务器可从第三服务器的预设存储区域中存储安全漏洞记录,并生成漏洞检测报告供用户查看分析。其中,预设存储区域可以为第三服务器本地的存储区域(例如,位于第三服务器本地的用于存放安全漏洞记录的文件夹),也可以为安装在第三服务器中的数据库(例如,sqlserver数据库、mysql数据库、oracle数据库、db2数据库以及sybase数据库等)。

需要说明的是,第二服务器可以向第一服务器发送安全漏洞信息,也可以向第三服务器发送安全漏洞信息。上述通过第三服务器检测漏洞的方法同样适用于通过第一服务器检测漏洞,在此不再赘述。

在另一种可选的实施例中,第一服务器具有与第三服务器相同的存储安全漏洞信息的功能。在第二服务器向第三服务器发送与一个或多个漏洞扫描请求对应的安全漏洞信息之后,第一服务器或第三服务器将安全漏洞信息存储在预设存储区域中,其中,预设存储区域用于存储与第二服务器关联的漏洞检测结果。在仅存在第一服务器和第二服务器的情况下,位于第一服务器的预设存储区域存储与第二服务器关联的漏洞检测结果。而在漏洞检测系统中,即存在第一服务器、第二服务器和第三服务器的情况下,第一服务器发送漏洞扫描请求,而不对漏洞检测结果进行存储,此时,第三服务器中的预设存储区域内存储安全漏洞信息。

基于上述步骤s502至步骤s506所限定的方案,可以获知,通过第二服务器接收第一服务器发送的漏洞扫描请求,在漏洞扫描请求被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息,并发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞。

容易注意到的是,漏洞扫描请求中包含有漏洞检测命令,在第二服务器中存在漏洞的情况下,第二服务器执行漏洞扫描请求中的漏洞检测命令,而在第二服务器中不存在漏洞的情况下,第二服务器将不执行漏洞检测命令,即如果第二服务器执行了漏洞检测命令,并产生了执行结果,则确定第二服务器中存在漏洞,进而再获取第二服务器中的安全漏洞信息。由此,通过本申请的上述方案可以精确确定第二服务器中是否存在安全漏洞,从而有效减少了对安全漏洞的漏报。

通过本申请上述实施例2所提供的方案,可以达到精确判断漏洞是否存在,并对检测到的漏洞进行精确定位的目的,从而实现了对被扫描服务器漏洞进行自动化检测的技术效果,进而解决了在对漏洞扫描的过程中,无法精确地对漏洞进行自动化检测的技术问题。

在一种可选的实施例中,如图6所示的一种可选的漏洞检测方法的流程图,第第二服务器将安全漏洞信息发送至第三服务器具体包括如下步骤:

步骤s602,第二服务器从漏洞扫描请求中解析出漏洞描述信息,并根据漏洞描述信息确定本地存在安全漏洞,其中,漏洞描述信息包括:漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数、触发漏洞待使用的有效载荷;

步骤s604,第二服务器获取第三服务器所支持的通信协议;

步骤s606,第二服务器按照通信协议将安全漏洞信息封装在网络请求中,其中,安全漏洞信息包括:与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数、触发漏洞待使用的有效载荷;

步骤s608,第二服务器向第三服务器发送网络请求。

具体的,在确定第二服务器中存在安全漏洞的情况下,第二服务器通过对漏洞扫描请求进行解析,得到漏洞描述信息。根据漏洞描述信息中的漏洞检测任务标识确定漏洞检测命令,并执行漏洞检测命令,产生执行结果,以确定第二服务器本地存在安全漏洞。在确定本地存在安全漏洞之后,第二服务器获取到第三服务器所支持的通信协议,与第三服务器建立通信连接。在第二服务器将安全漏洞信息根据第三服务器所支持的通信协议进行封装后,将封装后的安全漏洞信息发送给第三服务器,由第三服务器进行下一步的处理。

需要说明的是,第三服务器所支持的通信协议可以为但不限于http协议、udp协议以及tcp协议。

在另一种可选的实施例中,如图7所示的一种可选的漏洞检测方法的流程图,在图7中,用户通过第一服务器或漏洞扫描器提供的界面和语法编辑扫描漏洞的扫描规则,在配置好扫描规则后,第一服务器向下发漏洞检测任务,其中,第一服务器在下发漏洞检测任务之前需要指定被扫描的服务器(即第二服务器)的域名或ip地址以及必要的身份认证信息、扫描漏洞的扫描速率等,并将漏洞检测任务下发至第一服务器的扫描引擎中,扫描引擎对扫描规则进行解析处理,并构造漏洞扫描请求,向第二服务器发起漏洞扫描请求,第二服务器接收到漏洞扫描请求后,确定本地是否存在安全漏洞,如果不存在,则第二服务器正常响应,不执行漏洞扫描请求中的漏洞检测命令;如果存在漏洞,第二服务器执行漏洞检测命令,构造网络请求,并向http服务器(即第三服务器)发起网络请求。

需要说明的是,第二服务器在接收到漏洞扫描请求后,通过扫描规则来判断本地是否存在安全漏洞。其中,每个扫描规则提供属性来描述安全漏洞的详细信息,并提供input和output的配置选项来构造网络请求,并对漏洞的扫描结果进行判断。其中,第二服务器中的扫描引擎根据input来构造网络请求,根据output的判定条件来验证第二服务器中是否存在安全漏洞。

此外,还需要说明的是,一般情况下,第二服务器中是否存在漏洞是通过判断第二服务器执行漏洞检测命令的执行结果来确定的,而对于反连类的漏洞,描述规则中的output的输出为空,只有在第二服务器生成反连请求(即网络请求)之后,才能确定第二服务器中存在安全漏洞,即通过判断第三服务器是否接收到反连请求来确定第二服务器中是否存在安全漏洞。

在另一种可选的实施例中,图8示出了一种可选的漏洞检测方法的流程图,如图8所示,在第二服务器将安全漏洞信息发送至第三服务器之后,漏洞检测方法还包括如下步骤:

步骤s802,第三服务器对网络请求进行解析,从网络请求中获取与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷;

步骤s804,第三服务器采用与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷生成安全漏洞记录;

步骤s806,第三服务器将安全漏洞记录存储于预设存储区域。

需要说明的是,第三服务器通过解析网络请求可以得到完整的漏洞信息,例如,扫描规则可以为:

在上述描述规则中,通过对网络请求解析可以获取到网络请求中的安全漏洞信息。对于一个已经存在的网络请求,可以对网络请求中的每个安全漏洞信息的参数值进行替换操作,可以得到一个新的网络请求,例如,在第二服务器中存在xss漏洞的情况下,第二服务器将对test.com进行网络请求,其中,questid为漏洞检测任务的id,type为漏洞类型,para为触发漏洞的参数,index用于确定描述规则的具体位置。此外,在描述规则中还可以加入urlhash,来确定存在漏洞的url。

此外,还需要说明的是,第三服务器通过获取安全漏洞信息中的url来确定漏洞的具体位置,通过type来获取漏洞的类型,通过questid来获取漏洞检测任务的标识,通过para来确定触发漏洞的参数,通过index来确定触发漏洞检测所需要使用的有效载荷。

还存在另一种可选的实施例,在第二服务器向第三服务器发起网络请求之后,第一服务器从预设存储区域内提取安全漏洞记录,生成漏洞检测报告。

具体的,在第二服务器向第三服务器发起网络请求之后,第三服务器根据网络请求获取到安全漏洞信息,并根据安全漏洞信息生成安全漏洞记录,此时安全漏洞记录存储在第三服务器的预设存储区域中,第一服务器通过访问第三服务器的预设存储区域,从第三服务器的预设存储区域中读取到安全漏洞记录,最后第一服务器根据安全漏洞记录生成漏洞检测报告。

需要说明的是,在第二服务器发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测之后,第三服务器将安全漏洞信息存储在预设存储区域,其中,预设存储区域用于存储与第二服务器关联的漏洞检测结果。

在一种可选的实施例中,在第三服务器中的安全漏洞记录存储在第三服务器的数据库中,并且每天安全漏洞记录与产生安全漏洞的第二服务器的标识一一对应。第一服务器获取用户设置的待扫描设备的标识信息,基于该标识信息在第三服务器的数据库中查询与该标识信息相对应的第二服务器的安全漏洞记录,取出符合条件的第二服务器的安全漏洞记录,第一服务器根据取出的安全漏洞记录生成漏洞检测报告。

需要说明的是,第一服务器根据不同的标识信息为不同的第二服务器生成漏洞检测报告,用户可根据第二服务器的标识信息来查询与该标识信息相对应的第二服务器的漏洞检测记录。

此外,还需要说明的是,在第二服务器接收第一服务器发送的漏洞扫描请求之前,漏洞检测方法还包括如下步骤:

步骤s5002,第一服务器获取漏洞检测任务,其中,漏洞检测任务中携带有第二服务器的标识信息;

步骤s5004,第一服务器根据漏洞检测任务向第二服务器发送漏洞扫描请求。

具体的,用户在第一服务器中设置需要进行漏洞检测的服务器的标识信息(如,被扫描服务器的id、域名或ip地址)、身份认证信息以及扫描速率等,并在用户对需要进行漏洞检测的服务器的相关参数设置完成后,对漏洞检测任务进行封装处理,得到漏洞扫描请求,并向第二服务器下发漏洞扫描请求。第二服务器在接收到漏洞扫描请求后执行漏洞检测的后续步骤,其中,漏洞检测的后续步骤在上述实施例中已经进行说明,在此不再赘述。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的漏洞检测方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例3

根据本发明实施例,还提供了一种用于实施上述实施例2漏洞检测方法的漏洞检测装置,如图9所示的漏洞检测装置的结构示意图,该装置包括:接收子模块901、获取子模块903以及处理子模块905。

其中,接收子模块901,用于第二服务器接收第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞;获取子模块903,用于在漏洞扫描请求被触发时,获取漏洞扫描请求被执行时对应的安全漏洞信息;处理子模块905,用于发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

此处需要说明的是,上述接收子模块901、获取子模块903以及处理子模块905对应于实施例2中的步骤s502至步骤s506,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。

在一种可选的实施例中,处理子模块包括:响应模块、第二获取模块、封装模块以及发送单元。其中,响应模块,用于从漏洞扫描请求中解析出漏洞描述信息,并根据漏洞描述信息确定本地存在安全漏洞,其中,漏洞描述信息包括:漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数、触发漏洞待使用的有效载荷;第二获取模块,用于获取第三服务器所支持的通信协议;封装模块,用于按照通信协议将安全漏洞信息封装在网络请求中,其中,安全漏洞信息包括:与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数、触发漏洞待使用的有效载荷;发送单元,用于向第三服务器发送网络请求。

此处需要说明的是,上述响应模块、第二获取模块、封装模块以及发送单元对应于实施例2中的步骤s602至步骤s608,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。

在一种可选的实施例中,漏洞检测装置还包括:解析子模块、生成模块以及记录模块。其中,解析子模块,用于对网络请求进行解析,从网络请求中获取与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷;生成模块,用于采用与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷生成安全漏洞记录;记录模块,用于将安全漏洞记录存储于预设存储区域。

此处需要说明的是,上述解析子模块、生成模块以及记录模块对应于实施例2中的步骤s802至步骤s806,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。

在一种可选的实施例中,漏洞检测装置还包括:提取模块。其中,提取模块,用于第一服务器从预设存储区域内提取安全漏洞记录,生成漏洞检测报告。

在一种可选的实施例中,漏洞检测装置还包括:第三获取模块以及发送子模块。其中,第三获取模块,用于第一服务器获取漏洞检测任务,其中,漏洞检测任务中携带有第二服务器的标识信息;发送子模块,用于第一服务器根据漏洞检测任务向第二服务器发送漏洞扫描请求。

此处需要说明的是,上述第三获取模块以及发送子模块对应于实施例2中的步骤s5002至步骤s5004,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。

在一种可选的实施例中,漏洞检测装置还包括:保存子模块。其中,保存子模块,用于将安全漏洞信息存储在预设存储区域,其中,预设存储区域用于存储与第二服务器关联的漏洞检测结果。

实施例4

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

图10示出了一种计算机终端的硬件结构框图。如图10所示,计算机终端a可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端a还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。

应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端a中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

处理器102可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:第二服务器接收第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞;在漏洞扫描请求被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息;第二服务器发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的漏洞检测方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端a。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端a的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(lcd),该液晶显示器可使得用户能够与计算机终端a的用户界面进行交互。

此处需要说明的是,在一些可选实施例中,上述图10所示的计算机终端a可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图10仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机终端a中的部件的类型。

在本实施例中,上述计算机终端a可以执行应用程序的获取验证码的方法中以下步骤的程序代码:第二服务器接收第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞;在漏洞扫描请求被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息;第二服务器发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:第二服务器从漏洞扫描请求中解析出漏洞描述信息,并根据漏洞描述信息确定本地存在安全漏洞,其中,漏洞描述信息包括:漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数、触发漏洞待使用的有效载荷;第二服务器获取第三服务器所支持的通信协议;第二服务器按照通信协议将安全漏洞信息封装在网络请求中,其中,安全漏洞信息包括:与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数、触发漏洞待使用的有效载荷;第二服务器向第三服务器发送网络请求。

可选的,上述处理器还可以执行如下步骤的程序代码:第三服务器对网络请求进行解析,从网络请求中获取与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷;第三服务器采用与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷生成安全漏洞记录;第三服务器将安全漏洞记录存储于预设存储区域。

可选的,上述处理器还可以执行如下步骤的程序代码:第一服务器从预设存储区域内提取安全漏洞记录,生成漏洞检测报告。

可选的,上述处理器还可以执行如下步骤的程序代码:第一服务器获取漏洞检测任务,其中,漏洞检测任务中携带有第二服务器的标识信息;第一服务器根据漏洞检测任务向第二服务器发送漏洞扫描请求。

在本实施例中,上述计算机终端可以执行应用程序的漏洞检测方法中以下步骤的程序代码:第二服务器接收第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定本地存在与漏洞扫描请求对应的安全漏洞;在第二服务器被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息;第二服务器发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

本领域普通技术人员可以理解,图10所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图10其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

实施例5

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例二所提供的漏洞检测方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:第二服务器接收第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞;在漏洞扫描请求被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息;第二服务器发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:第二服务器从漏洞扫描请求中解析出漏洞描述信息,并根据漏洞描述信息确定本地存在安全漏洞,其中,漏洞描述信息包括:漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数、触发漏洞待使用的有效载荷;第二服务器获取第三服务器所支持的通信协议;第二服务器按照通信协议将安全漏洞信息封装在网络请求中,其中,安全漏洞信息包括:与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数、触发漏洞待使用的有效载荷;第二服务器向第三服务器发送网络请求。

可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:第三服务器对网络请求进行解析,从网络请求中获取与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷;第三服务器采用与漏洞扫描请求对应的漏洞检测任务标识、漏洞类型、漏洞存在位置、触发漏洞的参数以及触发漏洞待使用的有效载荷生成安全漏洞记录;第三服务器将安全漏洞记录存储于预设存储区域。

可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:第一服务器从预设存储区域内提取安全漏洞记录,生成漏洞检测报告。

可选地,在本实施例中,存储介质还被设置为存储用于执行以下步骤的程序代码:第一服务器获取漏洞检测任务,其中,漏洞检测任务中携带有第二服务器的标识信息;第一服务器根据漏洞检测任务向第二服务器发送漏洞扫描请求。

实施例6

本发明的实施例还提供了一种系统。该系统包括处理器和存储器。其中,存储器,与处理器连接,用于为处理器提供执行以下处理过程的指令:第二服务器接收第一服务器发送的漏洞扫描请求,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞;在漏洞扫描请求被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息;第二服务器发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测。

由上可知,通过第二服务器接收第一服务器发送的漏洞扫描请求,在漏洞扫描请求被触发时,第二服务器获取漏洞扫描请求被执行时对应的安全漏洞信息,并发起网络请求,将安全漏洞信息发送至第三服务器进行漏洞检测,其中,漏洞扫描请求用于在第二服务器被触发时,确定第二服务器本地存在与漏洞扫描请求对应的安全漏洞。

容易注意到的是,漏洞扫描请求中包含有漏洞检测命令,在第二服务器中存在漏洞的情况下,第二服务器执行漏洞扫描请求中的漏洞检测命令,而在第二服务器中不存在漏洞的情况下,第二服务器将不执行漏洞检测命令,即如果第二服务器执行了漏洞检测命令,并产生了执行结果,则确定第二服务器中存在漏洞,进而再获取第二服务器中的安全漏洞信息。由此,通过本申请的上述方案可以精确确定第二服务器中是否存在安全漏洞,从而有效减少了对安全漏洞的漏报。

通过本申请上述实施例6所提供的方案,可以达到精确判断漏洞是否存在,并对检测到的漏洞进行精确定位的目的,从而实现了对被扫描服务器漏洞进行自动化检测的技术效果,进而解决了在对漏洞扫描的过程中,无法精确地对漏洞进行自动化检测的技术问题。

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

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

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

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

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

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

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

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