PatViewer专利搜索

远程命令执行漏洞的检测方法、装置、设备及存储介质

发明公布  在审
申请(专利)号:CN201811546404.5国省代码:广东 44
申请(专利权)人:深信服科技股份有限公司
温馨提示:Ctrl+D 请注意收藏,详细著录项请首页检索查看。 Please note the collection. For details, please search the home page.

摘要:
本发明公开了一种远程命令执行漏洞的检测方法,该方法包括:当云检测服务器接收到远程命令执行漏洞检测指令时,向待检测的WEB服务器注入基于预设域名的访问命令,以使WEB服务器将访问命令中的域名传递至预先搭建的云端NS服务器,其中,预设域名包括一用于唯一标识域名的随机值,且随机值预先保存在云端数据库中;当云检测服务器接收到云端NS服务器发送的随机值时,判断云端数据库中是否保存有与接收到随机值相同的随机值,若是,则判定WEB服务器存在远程命令执行漏洞。本发明还公开了一种远程命令执行漏洞的检测装置、设备和一种计算机可读存储介质。本发明能够实现对远程命令执行漏洞的准确检测。

主权项:
1.一种远程命令执行漏洞的检测方法,其特征在于,所述远程命令执行漏洞的检测方法包括如下步骤:当云检测服务器接收到远程命令执行漏洞检测指令时,向待检测的WEB服务器注入基于预设域名的访问命令,以使所述WEB服务器将所述访问命令中的预设域名传递至预先搭建的云端NS服务器,并经由所述云端NS服务器对所述预设域名进行解析得到所述预设域名中的随机值后,将所述随机值发送给所述云检测服务器,其中,所述预设域名包括一用于唯一标识所述域名的随机值,且所述随机值预先保存在云端数据库中;当所述云检测服务器接收到所述云端NS服务器发送的随机值时,判断所述云端数据库中是否保存有与接收到所述随机值相同的随机值,若是,则判定所述WEB服务器存在远程命令执行漏洞。


说明书

远程命令执行漏洞的检测方法、装置、设备及存储介质

技术领域

本发明涉及网络通信技术领域,尤其涉及远程命令执行漏洞的检测方法、装置、设
备及存储介质。

背景技术

远程命令执行漏洞是一种常见的高危害级别的漏洞,通过这个漏洞,能够让攻击
者在远程服务器上执行指定的命令。远程命令执行漏洞传统的验证方式是通过执行系统命
令,把命令的输出内容回显到页面上来验证命令是否存在,然而有些远程命令执行漏洞并
不在返回内容中包含命令的输出结果,这种情况下,传统的方法就无法验证了。

目前存在一种无回显的远程命令执行漏洞的验证方法,该方法通过特定命令制造
时间上的延时,根据对比不同请求的返回时间长短,来识别远程命令执行漏洞的存在,但是
这种方法会由于网络的延迟而产生误报,检测准确性较低。

发明内容

本发明的主要目的在于提出一种远程命令执行漏洞的检测方法、装置、设备及存
储介质,旨在实现对远程命令执行漏洞的准确检测。

为实现上述目的,本发明提供一种远程命令执行漏洞的检测方法,所述方法包括
如下步骤:

当云检测服务器接收到远程命令执行漏洞检测指令时,向待检测的WEB服务器注
入基于预设域名的访问命令,以使所述WEB服务器将所述访问命令中的预设域名传递至预
先搭建的云端NS服务器,并经由所述云端NS服务器对所述预设域名进行解析得到所述预设
域名中的随机值后,将所述随机值发送给所述云检测服务器,其中,所述预设域名包括一用
于唯一标识所述域名的随机值,且所述随机值预先保存在云端数据库中;

当所述云检测服务器接收到所述云端NS服务器发送的随机值时,判断所述云端数
据库中是否保存有与接收到所述随机值相同的随机值,若是,则判定所述WEB服务器存在远
程命令执行漏洞。

优选地,所述向待检测的WEB服务器注入基于预设域名的访问命令的步骤之前,还
包括:

调用预设插件生成一个随机值;

根据所述随机值以及原始域名生成所述预设域名。

优选地,所述调用预设插件生成一个随机值的步骤之后,还包括:

为生成的所述随机值设置一个初始标识位,并将设置的所述初始标识位和生成的
所述随机值关联保存至所述云端数据库中;

所述判断所述云端数据库中是否保存有与接收到所述随机值相同的随机值的步
骤之后,还包括:

当所述云端数据库中保存有与接收到所述随机值相同的随机值时,判断所述云端
数据库中保存的所述随机值的初始标识位是否发生过改变,若否,则更改所述云端数据库
中保存的所述随机值的初始标识位。

优选地,所述初始标识位和生成的所述随机值以键值对的形式保存在所述云端数
据库中。

优选地,所述判定所述WEB服务器存在远程命令执行漏洞的步骤之后,还包括:

在向所述WEB服务器注入基于预设域名的访问命令后的预设时长内,检测所述云
端数据库中保存的所述随机值的初始标识位是否发生改变,若是,则确定所述WEB服务器存
在远程命令执行漏洞的判定结果是准确的,否则发出基于所述判定结果的误判告警。

优选地,所述向待检测的WEB服务器注入基于预设域名的访问命令的步骤之前,还
包括:

向待检测的WEB服务器发送刷新缓存命令,以使所述WEB服务器刷新本地缓存。

此外,为实现上述目的,本发明还提供一种远程命令执行漏洞的检测装置,所述远
程命令执行漏洞的检测装置包括:

命令注入模块,用于当云检测服务器接收到远程命令执行漏洞检测指令时,向待
检测的WEB服务器注入基于预设域名的访问命令,以使所述WEB服务器将所述访问命令中的
域名传递至预先搭建的云端NS服务器,并经由所述云端NS服务器对所述预设域名进行解析
得到所述预设域名中的随机值后,将所述随机值发送给所述云检测服务器,其中,所述预设
域名包括一用于唯一标识所述域名的随机值,且所述随机值预先保存在云端数据库中;

判断模块,用于当云检测服务器接收到所述云端NS服务器发送的随机值时,判断
所述云端数据库中是否保存有与接收到所述随机值相同的随机值,若是,则判定所述WEB服
务器存在远程命令执行漏洞。

此外,为实现上述目的,本发明还提供一种远程命令执行漏洞的检测设备,所述远
程命令执行漏洞的检测设备包括:存储器、处理器及存储在所述存储器上并可在所述处理
器上运行的远程命令执行漏洞的检测程序,所述远程命令执行漏洞的检测程序被所述处理
器执行时实现如上所述的远程命令执行漏洞的检测方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读
存储介质上存储有远程命令执行漏洞的检测程序,所述远程命令执行漏洞的检测程序被处
理器执行时实现如上所述的远程命令执行漏洞的检测方法的步骤。

本发明提出的远程命令执行漏洞的检测方法,首先,当云检测服务器接收到远程
命令执行漏洞检测指令时,向待检测的WEB服务器注入基于预设域名的访问命令,由于当
WEB服务器存在远程命令执行漏洞时,该访问命令中的域名会被WEB服务器传递至预先搭建
的云端NS服务器,因此,当云检测服务器接收到云端NS服务器发送的用于唯一标识域名的
随机值,且判断云端数据库中保存有与该随机值相同的随机值时,说明访问命令中的域名
传递到了云端NS服务器,此时即可判定WEB服务器存在远程命令执行漏洞。通过这种方式,
实现了对远程命令执行漏洞的准确检测。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;

图2为本发明远程命令执行漏洞的检测方法第一实施例的流程示意图;

图3为本发明实施例中WEB服务器将访问命令中的域名传递至预先搭建的云端NS
服务器的场景示意图;

图4为本发明远程命令执行漏洞的检测装置一实施例的模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例的主要解决方案是:当云检测服务器接收到远程命令执行漏洞检测
指令时,向待检测的WEB服务器注入基于预设域名的访问命令,以使所述WEB服务器将所述
访问命令中的域名传递至预先搭建的云端NS服务器,并经由所述云端NS服务器对所述预设
域名进行解析得到所述预设域名中的随机值后,将所述随机值发送给所述云检测服务器,
其中,所述预设域名包括一用于唯一标识所述域名的随机值,且所述随机值预先保存在云
端数据库中;当云检测服务器接收到所述云端NS服务器发送的随机值时,判断所述云端数
据库中是否保存有与接收到所述随机值相同的随机值,若是,则判定所述WEB服务器存在远
程命令执行漏洞。

目前存在一种无回显的远程命令执行漏洞的验证方法,该方法通过特定命令制造
时间上的延时,根据对比不同请求的返回时间长短,来识别远程命令执行漏洞的存在,但是
这种方法会由于网络的延迟而产生误报,检测准确性较低。

本发明提出的远程命令执行漏洞的检测方法,首先,当云检测服务器接收到远程
命令执行漏洞检测指令时,向待检测的WEB服务器注入基于预设域名的访问命令,由于当
WEB服务器存在远程命令执行漏洞时,该访问命令中的域名会被WEB服务器传递至预先搭建
的云端NS服务器,因此,当云检测服务器接收到云端NS服务器发送的用于唯一标识域名的
随机值,且判断云端数据库中保存有与该随机值相同的随机值时,说明访问命令中的域名
传递到了云端NS服务器,此时即可判定WEB服务器存在远程命令执行漏洞。通过这种方式,
实现了对远程命令执行漏洞的准确检测。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。

本发明实施例远程命令执行漏洞的检测设备为云检测服务器。

如图1所示,该远程命令执行漏洞的检测设备可以包括:处理器1001,例如CPU,网
络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些
组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘
(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选
的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,
也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可
以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包
括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通
信模块、用户接口模块以及远程命令执行漏洞的检测程序。

在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行
数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器
1001可以用于调用存储器1005中存储的远程命令执行漏洞的检测程序,并执行以下远程命
令执行漏洞的检测方法实施例中的操作。

基于上述硬件结构,提出本发明远程命令执行漏洞的检测方法实施例。

参照图2,图2为本发明远程命令执行漏洞的检测方法第一实施例的流程示意图,
所述方法包括:

步骤S10,当云检测服务器接收到远程命令执行漏洞检测指令时,向待检测的WEB
服务器注入基于预设域名的访问命令,以使所述WEB服务器将所述访问命令中的预设域名
传递至预先搭建的云端NS服务器,并经由所述云端NS服务器对所述预设域名进行解析得到
所述预设域名中的随机值后,将所述随机值发送给所述云检测服务器,其中,所述预设域名
包括一用于唯一标识所述域名的随机值,且所述随机值预先保存在云端数据库中;

本实施例远程命令执行漏洞的检测方法应用于云检测服务器,该云检测服务器具
备远程命令执行漏洞检测功能,为保证本发明正常实施,云端还预先搭建有一恶意的NS
(Name Server)服务器,即域名服务器记录。

首先,当云检测服务器接收到远程命令执行漏洞检测指令时,可以通过预设插件
向待检测的WEB服务器注入基于预设域名的访问命令。其中,预设域名中包括一用于唯一标
识该域名的随机值,该随机值可以是随机数据通过哈希算法计算得到的哈希值(如MD5值),
也可以是随机数据本身,本实施例对随机值的生成方式及位数不作限定;另外,域名的随机
值还被预先保存在云端数据库中,用于后续比对。

访问命令可以以ping(一种计算机命令)的形式注入WEB服务器,在WEB服务器接收
到访问命令后,正常情况下,如果WEB服务器不存在远程命令执行漏洞,将不会执行该命令,
而当WEB服务器存在远程命令执行漏洞时,该命令就会生效,此时WEB服务器会最终将该访
问命令中的域名传递至预先搭建的云端NS服务器。

具体地,作为一种实施方式,参照图3,图3为本发明实施例中WEB服务器将访问命
令中的域名传递至预先搭建的云端NS服务器的场景示意图。以域名xxx.text.com为例(其
中xxx表示随机值),首先,当WEB服务器接收到云检测服务器注入基于域名xxx.text.com的
访问命令时,如果WEB服务器存在远程命令执行漏洞,则该访问命令能够被正常执行,此时
WEB服务器对该访问命令进行解析以获取到其中携带的域名xxx.text.com,然后,WEB服务
器向本地DNS服务器查询域名xxx.text.com,本地DNS(Domain Name Server)服务器查询到
该域名由云端DNS服务器解析,将该域名传递至云端DNS服务器,云端DNS服务器根据用户自
定义向本地DNS服务器返回NS服务器地址ns.text.com,本地DNS服务器在接收到云端DNS服
务器返回的NS服务器地址后,即将域名xxx.text.com发送给对应的云端NS服务器。

云端NS服务器通过记录并解析DNS日志,可以获取到域名中的随机值,之后再将该
随机值发送给云检测服务器,以使云检测服务器验证远程命令执行漏洞是否存在。

步骤S20,当所述云检测服务器接收到所述云端NS服务器发送的随机值时,判断所
述云端数据库中是否保存有与接收到所述随机值相同的随机值,若是,则判定所述WEB服务
器存在远程命令执行漏洞。

当云检测服务器接收到云端NS服务器发送的随机值时,从云端数据库中进行查
找,判断云端数据库中是否保存有与该随机值相同的随机值。由于随机值是域名的唯一标
识,因此当云端数据库中保存有与该随机值相同的随机值时,说明云检测服务器向WEB服务
器注入的访问命令中的域名传递到了云端NS服务器,此时即可判定WEB服务器存在远程命
令执行漏洞;当云端数据库中没有与该随机值相同的随机值时,则不作判定处理。

本实施例提出的远程命令执行漏洞的检测方法,首先,当云检测服务器接收到远
程命令执行漏洞检测指令时,向待检测的WEB服务器注入基于预设域名的访问命令,由于当
WEB服务器存在远程命令执行漏洞时,该访问命令中的域名会被WEB服务器传递至预先搭建
的云端NS服务器,因此,当云检测服务器接收到云端NS服务器发送的用于唯一标识域名的
随机值,且判断云端数据库中保存有与该随机值相同的随机值时,说明访问命令中的域名
传递到了云端NS服务器,此时即可判定WEB服务器存在远程命令执行漏洞。通过这种方式,
实现了对远程命令执行漏洞的准确检测。

进一步地,基于本发明远程命令执行漏洞的检测方法第一实施例,提出本发明远
程命令执行漏洞的检测方法第二实施例。

在本实施例中,所述向待检测的WEB服务器注入基于预设域名的访问命令的步骤
可以包括:调用预设插件生成一个随机值;根据所述随机值以及原始域名生成所述预设域
名。

具体地,可以根据随机值生成原始域名的下一级子域名,将该下一级子域名作为
预设域名。以原始域名为一级域名,子域名为二级域名为例,不妨设生成的随机值为
123456,预设原始域名为一级域名text.com,此时可以根据随机值生成一个一级域名的子
域名123456.text.com,其中,随机值123456即作为域名123456.text.com的唯一标识;之
后,再向待检测的WEB服务器注入基于123456.text.com的访问命令。当然,原始域名还可以
是二级域名,此时对应的子域名为三级域名,具体实施时可灵活设置。

进一步地,上述调用预设插件生成一个随机值的步骤之后,还可以包括:为生成的
所述随机值设置一个初始标识位,并将设置的所述初始标识位和生成的所述随机值关联保
存至所述云端数据库中;此时,判断所述云端数据库中是否保存有与接收到所述随机值相
同的随机值的步骤之后,还可以包括:当所述云端数据库中保存有与接收到所述随机值相
同的随机值时,判断所述云端数据库中保存的所述随机值的初始标识位是否发生过改变,
若否,则更改所述云端数据库中保存的所述随机值的初始标识位。

在生成随机值后,云检测服务器可以为生成的随机值设置一个初始标识位,并将
设置的初始标识位和随机值关联保存至所述云端数据库中。优选地,初始标识位和随机值
可以以键值对的形式保存在云端数据库中,以便于结构化存储数据,其中初始标识位可灵
活设置,比如可以设置为“False”。当后续检测到云端数据库中保存有与接收到云端NS服务
器发送的随机值相同的随机值时,首先判断云端数据库中保存的所述随机值的初始标识位
是否发生过改变,即已经由“False”变为了“True”,若未发生过改变,则更改云端数据库中
保存的随机值的初始标识位,即:将“False”更改为“True”,以表示存在远程命令执行漏洞。
通过这种方式,实现了对远程命令执行漏洞的检测结果进行数据化标识记录。

相反,若云端数据库中保存的随机值的初始标识位已经发生过改变,说明在本次
接收到随机值之前,云检测服务器已经接收过一个相同的随机值,并基于该相同的随机值
作出了WEB服务器存在远程命令执行漏洞的判定。产生这种现象的原因在于:根据现有的随
机值生成工具,仍存在极低的概率生成两个一模一样的随机值,当这两个一模一样的随机
值先后均被云检测服务器接收到时,对于后接收到的随机值,云检测服务器中必然保存有
一个与其相同的随机值,此时会导致WEB服务器存在远程命令执行漏洞的误判。因此,若云
端数据库中保存的所述随机值的初始标识发生过改变,需考虑误判的可能。

进一步地,所述判定所述WEB服务器存在远程命令执行漏洞的步骤之后,还包括:

在向所述WEB服务器注入基于预设域名的访问命令后的预设时长内,检测所述云
端数据库中保存的所述随机值的初始标识位是否发生改变,若是,则确定所述WEB服务器存
在远程命令执行漏洞的判定结果是准确的,否则发出基于所述判定结果的误判告警。

具体地,当云检测服务器向待检测的WEB服务器注入基于预设域名的访问命令后,
可以在预设时长内检测云端数据库中保存的随机值的初始标识位是否发生改变,该检测可
以是实时检测,也可以是按预设周期检测,其中预设时长可以根据实际情况(如网络延时)
进行灵活设置;当检测到云端数据库中保存的随机值的初始标识位发生改变(由“False”变
为了“True”)时,可以确定所述WEB服务器存在远程命令执行漏洞的判定结果是准确的;反
之,若在预设时长内未检测到云端数据库中保存的随机值的初始标识位发生改变,即一直
都是“True”,则可以发出基于WEB服务器存在远程命令执行漏洞的判定结果的误判告警,也
即,此时并非是WEB服务器存在远程命令执行漏洞,而是由于两个一模一样的随机值先后均
被云检测服务器接收到而产生了误判。

上述通过初始标识位的方式能够有效识别出远程命令执行漏洞误判的情况,便于
管理人员及时采取相应措施以消除误判。

进一步地,所述向待检测的WEB服务器注入基于预设域名的访问命令的步骤之前,
还可以包括:向待检测的WEB服务器发送刷新缓存命令,以使所述WEB服务器刷新本地缓存。

在云检测服务器向待检测的WEB服务器注入基于预设域名的访问命令之前,可以
先向该WEB服务器发送刷新缓存命令,以使WEB服务器刷新本地缓存。刷新缓存可以避免由
于WEB服务器通过缓存执行云检测服务器当前注入的访问命令而导致的误执行情况,比如
WEB服务器的远程命令执行漏洞被修复,但通过缓存还是可以正常执行访问命令,如此导致
远程命令执行漏洞的误检测,而刷新缓存能够减少误报的情况发生,进一步提高了命令执
行漏洞检测的准确性。

本发明还提供一种远程命令执行漏洞的检测装置,参照图4,图4为本发明远程命
令执行漏洞的检测装置一实施例的模块示意图,本实施例中,所述远程命令执行漏洞的检
测装置包括:

命令注入模块10,用于当云检测服务器接收到远程命令执行漏洞检测指令时,向
待检测的WEB服务器注入基于预设域名的访问命令,以使所述WEB服务器将所述访问命令中
的域名传递至预先搭建的云端NS服务器,并经由所述云端NS服务器对所述预设域名进行解
析得到所述预设域名中的随机值后,将所述随机值发送给所述云检测服务器,其中,所述预
设域名包括一用于唯一标识所述域名的随机值,且所述随机值预先保存在云端数据库中;

判断模块20,用于当云检测服务器接收到所述云端NS服务器发送的随机值时,判
断所述云端数据库中是否保存有与接收到所述随机值相同的随机值,若是,则判定所述WEB
服务器存在远程命令执行漏洞。

上述各功能模块实现的方法可参照本发明远程命令执行漏洞的检测方法实施例,
此处不再赘述。

本实施例提出的远程命令执行漏洞的检测装置,当命令注入模块10接收到远程命
令执行漏洞检测指令时,向待检测的WEB服务器注入基于预设域名的访问命令,由于当WEB
服务器存在远程命令执行漏洞时,该访问命令中的域名会被WEB服务器传递至预先搭建的
云端NS服务器,因此,当云检测服务器接收到云端NS服务器发送的用于唯一标识域名的随
机值,且判断模块20判断云端数据库中保存有与该随机值相同的随机值时,说明访问命令
中的域名传递到了云端NS服务器,此时即可判定WEB服务器存在远程命令执行漏洞。通过这
种方式,实现了对远程命令执行漏洞的准确检测。

本发明还提供一种计算机可读存储介质。

本发明计算机可读存储介质上存储有远程命令执行漏洞的检测程序,所述远程命
令执行漏洞的检测程序被处理器执行时实现如上所述的远程命令执行漏洞的检测方法的
步骤。

其中,在所述处理器上运行的远程命令执行漏洞的检测程序被执行时所实现的方
法可参照本发明远程命令执行漏洞的检测方法各个实施例,此处不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排
他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而
且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有
的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该
要素的过程、方法、物品或者系统中还存在另外的相同要素。

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

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

=>>详细说明书全文请进入首页检索查看

图1
©2018 IPPH.cn   PatViewer·专利搜索
主办单位:知识产权出版社有限责任公司  咨询热线:01082000860-8588
浏览器:IE9及以上、火狐等  京ICP备09007110号 京公网安备 11010802026659号