服务器漏洞检测方法、装置、设备和存储介质与流程

文档序号:18822996发布日期:2019-10-09 01:05阅读:188来源:国知局
服务器漏洞检测方法、装置、设备和存储介质与流程

本申请涉及漏洞检测技术领域,尤其涉及一种服务器漏洞检测方法、装置、设备和存储介质。



背景技术:

很多网站应用都提供了从其他的服务器上获取数据的功能。使用用户指定的统一资源定位符,web应用可以获取图片,下载文件,读取文件内容等。对于这些服务器是否存在着漏洞。通常采用对回显信息进行分析的方式来判断度服务器是否存在着漏洞。

然而这种方式对于服务器不产生回显的命令时,无法对服务器是否存在漏洞进行判断,并且对于回显信息进行分析往往需要与回显内容匹配的检测技术方案才能有效的将服务器存在的漏洞检测出来。



技术实现要素:

基于此,有必要针对服务器不产生回显的命令时,无法对服务器是否存在漏洞进行判断的问题,提供一种服务器漏洞检测方法、装置、设备和存储介质。

一种服务器漏洞检测方法,包括:

接收服务器漏洞检测命令,发送所述服务器漏洞检测命令至数个待检测服务器;

获取所述待检测服务器的二级域名,从预设的域名服务器中,抽取所述二级域名对应的三级域名;

对所述三级域名采用预设的加密算法进行加密;

获取所述待检测服务器执行所述服务器漏洞检测命令后得到的响应数据,将所述响应数据和加密后的所述三级域名发送至漏洞检测服务器;

接收所述漏洞检测服务器的反馈信息,若所述反馈信息中含有所述三级域名,则提取所述反馈信息中的检测参数值,否则所述待检测服务器存在漏洞,若所述检测参数值大于预设阈值,则所述待检测服务器存在漏洞,否则不存在漏洞。

在一个可能的实施例中,所述接收服务器漏洞检测命令,发送所述服务器漏洞检测命令至数个待检测服务器,包括:

接收所述服务器漏洞检测命令,提取所述服务器漏洞检测命令中的待检测服务器的一级域名;

将待测网络中所有带有所述一级域名的服务器作为所述待检测服务器,发送所述服务器漏洞检测命令至各所述待检测服务器。

在一个可能的实施例中,所述获取所述待检测服务器的二级域名,从预设的域名服务器中,抽取所述二级域名对应的三级域名,包括:

获取所述待检测服务器的二级域名,从所述二级域名中提取与所述第一域名不同的字符段;

将所述字符段进行编码转换后得到编码字符串,抽取所述编码字符串的首三位字符;

遍历所述预设的域名服务器中的域名列表,抽取所述首三位字符对应的三级域名。

在一个可能的实施例中,所述获取所述待检测服务器执行所述服务器漏洞检测命令后得到的响应数据,将所述响应数据和加密后的所述三级域名发送至漏洞检测服务器的步骤之前,所述方法还包括:

获取所述待检测服务器的有效载荷,根据所述有效载荷,得到所述待检测服务器执行所述服务器漏洞检测命令后的响应时间;

若超过所述响应时间,没有收到所述待检测服务器的反馈信息,则发送心跳包获取命令至所述待检测服务器,所述心跳包获取命令用于确定所述待检测服务器的运行状态。

在一个可能的实施例中,所述接收所述服务器漏洞检测服务的反馈信息之后,包括:

获取所述漏洞检测服务器的密钥,根据所述漏洞检测服务器的密钥对所述反馈信息进行解密;

将解密结果与预设的三级域名格式进行比较后,得到符合所述三级域名规则的准域名字符段;

将所述准域名字符段与所述三级域名进行相似度计算,根据计算结果确定所述反馈信息中是否含有所述三级域名。

在一个可能的实施例中,所述接收所述漏洞检测服务器的反馈信息,若所述反馈信息中含有所述三级域名,则提取所述反馈信息中的检测参数值,否则所述待检测服务器存在漏洞,若所述检测参数值大于预设阈值,则所述待检测服务器存在漏洞,否则不存在漏洞之后,所述方法还包括:

对存在漏洞的服务器进行定位,具体包括:

向存在漏洞的服务器发送定位命令,获取所述存在漏洞的服务器对所述定位命令的响应信息;

发送所述响应信息至所述域名服务器进行解析后,得到所述存在漏洞的服务器的ip地址,根据所述ip地址得到所述存在漏洞的服务器的位置信息。

一种服务器漏洞检测装置,包括以下模块:

收发模块,设置为接收服务器漏洞检测命令,发送所述服务器漏洞检测命令至数个待检测服务器;获取所述待检测服务器的二级域名,从预设的域名服务器中,抽取所述二级域名对应的三级域名;

处理模块,设置为对所述三级域名采用预设的加密算法进行加密;

所述收发模块获取所述待检测服务器执行所述服务器漏洞检测命令后得到的响应数据,将所述响应数据和通过所述处理模块加密后得到的所述三级域名发送至漏洞检测服务器;

所述处理模块通过所述收发模块接收所述漏洞检测服务器的反馈信息,根据所述反馈信息,判断所述待检测服务器是否存在漏洞进行判断。

在一个可能的实施例中,所述收发模块还用于:

接收所述服务器漏洞检测命令,通过所述处理模块提取所述服务器漏洞检测命令中的待检测服务器的一级域名;将待测网络中所有带有所述一级域名的服务器作为所述待检测服务器,发送所述服务器漏洞检测命令至各所述待检测服务器。

一种计算机设备,所述设备包括:至少一个处理器、存储器和收发器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中存储的程序代码来执行上述服务器漏洞检测方法。

一种存储有计算机可读命令的存储介质,所述计算机可读命令被一个或多个处理器执行时,使得一个或多个处理器执行上述服务器漏洞检测方法的步骤。

与现有机制相比,本申请具有以下优点:

(1)通过漏洞检测服务器对从域名服务器中获得的需要进行漏洞检测的服务器三级域名的解析,从而可以在需要进行漏洞检测的服务器不产生回显信息的条件下对服务器漏洞进行有效检测;

(2)通过对需要进行漏洞检测的服务二级域名进行编码后得到带有编码的三级域名,可以需要进行漏洞检测的服务器进行漏洞检测的准确性。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。

图1为本申请在一个实施例中的一种服务器漏洞检测方法的整体流程图;

图2为本申请在一个实施例中的一种服务器漏洞检测方法中的待检测服务器确定过程示意图;

图3为本申请在一个实施例中的一种服务器漏洞检测方法中的三级域名获取过程示意图;

图4为本申请在一个实施例中的一种服务器漏洞检测装置的结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

图1为本申请在一个实施例中的一种服务器漏洞检测方法的整体流程图,如图1所示,一种服务器漏洞检测方法,包括以下步骤:

s1、接收服务器漏洞检测命令,发送所述服务器漏洞检测命令至数个待检测服务器;

具体的,在对服务器进行漏洞检测时,可以同时发送相同的漏洞检测执行命令至多个服务器,在判断哪些服务器是需要进行漏洞检测时,需要对服务器进行身份识别,主要是识别服务器做漏洞检测的时间,若服务器上次进行漏洞检测的时间小于预设的漏洞检测阈值,则不需要对该服务器进行漏洞检测,否则需要进行漏洞检测。在具体实施中,可以通过服务器ip地址的方式,即获取网络中各个服务器的ip地址,然后从漏洞检测列表中查询出该ip地址对应的漏洞检测时间,将漏洞检测时间与漏洞检测阈值再进行比较。

s2、获取所述待检测服务器的二级域名,从预设的域名服务器中,抽取所述二级域名对应的三级域名;

其中,二级域名的格式通常为xxx.com、xxx.org、xxx.edu等,即二级域名在一级域名.com、.org、.edu的分割符前加上字母或者数字后得到的。在域名服务器dns中,对于每一类二级域名均赋予了不同的前缀,生成三级域名,如aa.bbb.com,域名服务器的域名列表中查询出bbb.com所在行,在bbb.com同一行中的字符为三级域名的特征字符,在本例中为“aa”。

s3、对所述三级域名采用预设的加密算法进行加密;

具体的,在对三级域名进行加密时可以采用哈希加密算法、对称加密算法、base64加密算法等。比如三级域名为dns.test.com,对test用base64加密变为dgvzdcuymgrhdge,加密后的域名为dgvzdcuymgrhdge.dns.test.com。

s4、获取所述待检测服务器执行所述服务器漏洞检测命令后得到的响应数据,将所述响应数据和加密后的所述三级域名发送至漏洞检测服务器;

具体的,对待检测服务器是否执行所述服务器漏洞检测命令,可以采用对所述待检测服务器进行接口函数值变化的方法进行判断。获取所述待检测服务器的应用接口,提取该应用接口的接口函数和在没有执行所述漏洞检测命令时的接口函数数值。在执行服务器漏洞检测命令后,对所述接口函数的数值进行提取,若接口函数值没有发生变化则该接口没有执行漏洞检测命令,遍历各个应用接口,若所有的应用接口均没有发生函数值变化,则所述待检测服务器没有执行所述服务器漏洞检测命令。

s5、接收所述漏洞检测服务器的反馈信息,若所述反馈信息中含有所述三级域名,则提取所述反馈信息中的检测参数值,否则所述待检测服务器存在漏洞,若所述检测参数值大于预设阈值,则所述待检测服务器存在漏洞,否则不存在漏洞。

其中,检测参数是漏洞检测服务器端通过预置算法对反馈信息进行编码生成的,检测参数可以是多个参数,提取这些参数对应的参数值,将每一个参数值与该参数值对应的阈值进行逐一比较,若这些参数值中的任意一个参数值大于对应的预设阈值,则所述待检测服务器存在漏洞,否则不存在漏洞。

本实施例,通过漏洞检测服务器对从域名服务器中获得的需要进行漏洞检测的服务器三级域名的解析,从而可以在需要进行漏洞检测的服务器不产生回显信息的条件下对服务器漏洞进行有效检测。

图2为本申请在一个实施例中的一种服务器漏洞检测方法中的待检测服务器确定过程示意图,如图所示,所述s1、接收服务器漏洞检测命令,发送所述服务器漏洞检测命令至数个待检测服务器,包括:

s11、接收所述服务器漏洞检测命令,提取所述服务器漏洞检测命令中的待检测服务器的一级域名;

具体的,在漏洞检测执行命令中包含有一级域名,通过一级域名可以确定此次服务器漏洞检测是针对哪一类服务器进行检测,即是针对“教育网”、“商业网”还是“官方网”等,在对漏洞检测执行命令进行一级域名提取时,可以将所述漏洞检测执行命令划分成数个字符段,对每一个字符段进行特征字符查询,特征字符为“.com”、“.edu”等,将包含有所述特征字符的字符段进行全部提取。若在一个漏洞检测执行命令中包含有两个或者以上的特征字符,则将这些特征字符全部进行提取。在这种场景下,本次漏洞检测执行命令是针对两种或者以上的一级域名对应的服务器进行检测的。

s12、将待测网络中所有带有所述一级域名的服务器作为所述待检测服务器,发送所述服务器漏洞检测命令至各所述待检测服务器。

其中,在发送所述服务器漏洞检测命令至各所述待检测服务器时,可以根据待检测服务器的ip地址的首三位数值,依次进行发送,即a服务器的ip地址为201.22.125.214,b服务器的ip地址为202.22.124.214,则先将所述服务器漏洞检测命令至a服务器,再将所述服务器漏洞检测命令发送至b服务器。

本实施例,利用一级域名有效的获得了需要进行漏洞检测的服务器。

图3为本申请在一个实施例中的一种服务器漏洞检测方法中的三级域名获取过程示意图,如图所示,所述s2、获取所述待检测服务器的二级域名,从预设的域名服务器中,抽取所述二级域名对应的三级域名,包括:

s21、获取所述待检测服务器的二级域名,从所述二级域名中提取与所述第一域名不同的字符段;

具体的,二级域名为haha.com,则二级域名与一级域名不同的字符段为haha。

s22、将所述字符段进行编码转换后得到编码字符串,抽取所述编码字符串的首三位字符;

其中,将字符段进行编码可以采用base64加密算法加密后的域名长度为例,原域名为test.com,经过base64加密算法加密后得到的域名为zdcuymgrhdgeom。

s23、遍历所述预设的域名服务器中的域名列表,抽取所述首三位字符对应的三级域名。

本实施例,通过对需要进行漏洞检测的服务二级域名进行编码后得到带有编码的三级域名,可以需要进行漏洞检测的服务器进行漏洞检测的准确性。

在其中一个实施例中,所述s4、获取所述待检测服务器执行所述服务器漏洞检测命令后得到的响应数据,将所述响应数据和加密后的所述三级域名发送至漏洞检测服务器的步骤之前,所述方法还包括:

获取所述待检测服务器的有效载荷,根据所述有效载荷,得到所述待检测服务器执行所述服务器漏洞检测命令后的响应时间;

其中,记载着信息的那部分数据。通常在传输数据时,为了使数据传输更可靠,要把原始数据分批传输,并且在每一批数据的头或者尾加上一定的辅助信息,比如这一批数据量的大小,校验位等,这样就相当于给已经分批原始数据加一些外套,这些外套起到标示作用,使得原始数据不易丢失。一批数据加上它的“外套”,就形成了传输通道中基本的传输单元,叫做数据帧或者数据包这些数据帧中的记录信息的原始数据就是有效载荷数据。一个服务器对命令执行的响应时间与有效载荷数据的数据量有着极强的粘性,有效载荷的数据量大,则响应时间短,否则响应时间长。

若超过所述响应时间,没有收到所述待检测服务器的反馈信息,则发送心跳包获取命令至所述待检测服务器,所述心跳包获取命令用于确定所述待检测服务器的运行状态。

其中,心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。心跳包用于用来判断对方(设备,进程或其它网元)是否正常运行。

在一个实施例中,在所述接收所述服务器漏洞检测服务的反馈信息之后,包括:

获取所述漏洞检测服务器的密钥,根据所述漏洞检测服务器的密钥对所述反馈信息进行解密;

其中,漏洞检测服务器的密钥会根据网络中的服务器所述使用的密钥进行更新,即当网络中任一服务器密钥发生改变,都会将新的密钥发送至漏洞检测服务器,以便于漏洞检测服务器对网络中的服务器进行漏洞检测。

将解密结果与预设的三级域名格式进行比较后,得到符合所述三级域名规则的准域名字符段;

将所述准域名字符段与所述三级域名进行相似度计算,根据计算结果确定所述反馈信息中是否含有所述三级域名。

其中,相似度计算方法可以采用欧氏距离法、汉明距离法和余弦算法等所有常用相似度计算方法,当所述准域名字符段与所述三级域名的相似度大于预设的相似度阈值时,则所述反馈信息中有三级域名,否则没有三级域名。

在一个实施例中,所述s5、接收所述漏洞检测服务器的反馈信息,若所述反馈信息中含有所述三级域名,则提取所述反馈信息中的检测参数值,否则所述待检测服务器存在漏洞,若所述检测参数值大于预设阈值,则所述待检测服务器存在漏洞,否则不存在漏洞之后,所述方法还包括:

对存在漏洞的服务器进行定位,具体包括:

向存在漏洞的服务器发送定位命令,获取所述存在漏洞的服务器对所述定位命令的响应信息;

发送所述响应信息至所述域名服务器进行解析后,得到所述存在漏洞的服务器的ip地址,根据所述ip地址得到所述存在漏洞的服务器的位置信息。

具体的,对存在漏洞的各机器服务器重新生成二级域名;根据执行命令的分类对所述存在漏洞的服务器重新生成新的二级域名,比如执行机器名指令时,生成的二级域名为dns.hostname.com,执行机器网卡信息指令时,生成的二级域名为dns.ifconfig.com;调用所述域名服务器向存在漏洞的各机器服务器发送定位命令,并获取所述存在漏洞的服务器在执行所述定位命令后所反馈的对应的响应信息,对所述响应信息进行解析后获取所述存在漏洞的服务器的ip地址,根据所述ip地址定位所述漏洞的服务器的位置。

在一个实施例中,提出了一种服务器漏洞检测装置,如图4所示,包括如下模块:

收发模块,设置为接收服务器漏洞检测命令,发送所述服务器漏洞检测命令至数个待检测服务器;获取所述待检测服务器的二级域名,从预设的域名服务器中,抽取所述二级域名对应的三级域名;

处理模块,设置为对所述三级域名采用预设的加密算法进行加密;

所述收发模块获取所述待检测服务器执行所述服务器漏洞检测命令后得到的响应数据,将所述响应数据和通过所述处理模块加密后得到的所述三级域名发送至漏洞检测服务器;

所述处理模块通过所述收发模块接收所述漏洞检测服务器的反馈信息,根据所述反馈信息,判断所述待检测服务器是否存在漏洞进行判断。

在其中一个实施例中,所述收发模块还用于:

接收所述服务器漏洞检测命令,通过所述处理模块提取所述服务器漏洞检测命令中的待检测服务器的一级域名;将待测网络中所有带有所述一级域名的服务器作为所述待检测服务器,发送所述服务器漏洞检测命令至各所述待检测服务器。

在一个实施例中,所述处理模块还用于:

获取所述待检测服务器的二级域名,从所述二级域名中提取与所述第一域名不同的字符段;将所述字符段进行编码转换后得到编码字符串,抽取所述编码字符串的首三位字符;遍历所述预设的域名服务器中的域名列表,抽取所述首三位字符对应的三级域名。

本实施例中,处理模块在通过对二级域名中与一级域名不同的字符段的提取时,可以从二级字符段的首字符端进行查询看,也可以从二级域名的尾字符端进行查询,查询时可以逐个字符查询,也可以多个字符作为一个子段进行查询提取。

利用处理模块对二级域名的分析从而准确得到待检测服务器所对应的三级域名,从而便于确定需要进行漏洞检测的服务器位置,从而提升服务器漏洞检测的针对性。

在一个实施例中,所述处理模块还用于:

获取所述漏洞检测服务器的密钥,根据所述漏洞检测服务器的密钥对所述反馈信息进行解密;将解密结果与预设的三级域名格式进行比较后,得到符合所述三级域名规则的准域名字符段;将所述准域名字符段与所述三级域名进行相似度计算,根据计算结果确定所述反馈信息中是否含有所述三级域名。

本实施例中,应用处理模块对准域名字符段,所有包含所述准域名字符段和三级域名格式进行比较,可以在处理模块中应用常用的文本比较算法进行计算,如余弦算法,处理模块在接收到进行两个字段余弦值比较的指令后,进行余弦值的计算得出余弦值,在将余弦值与存储在硬盘中的余弦阈值进行比较,余弦值小于阈值则发出包含有三级域名的信号。

通过利用处理模块计算相似度,可以简单有效的获得反馈信息中书否包含有三级域名,从而实现了在没有回显时对服务器漏洞的检测。

在一个实施例中,提出了一种计算机设备,至少一个处理器、存储器和收发器;

其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中存储的程序代码来执行上述各实施例中的所述服务器漏洞检测方法的步骤。

在一个实施例中,提出了一种存储有计算机可读命令的存储介质,该计算机可读命令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例中的所述服务器漏洞检测方法的步骤。其中,所述存储介质可以为非易失性存储介质。

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

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请一些示例性实施例,其中描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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