漏洞检测方法、装置、计算机设备和存储介质与流程

文档序号:14879918发布日期:2018-07-07 09:29阅读:166来源:国知局

本申请涉及计算机技术领域,特别是涉及一种漏洞检测方法、装置、计算机设备和存储介质。



背景技术:

随着应用程序的普及,用户以及应用程序开发者越来越重视应用程序的安全,即应用程序对应的应用服务器的安全性。

然而,目前保护应用服务器安全一般是采用物理防火墙,但是物理防火墙不具备区分端口和应用的能力,因此只能防御传统的攻击,因此传统的防火墙不能保证应用服务器的安全。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高应用服务器安全性的漏洞检测方法、装置、计算机设备和存储介质。

一种漏洞检测方法,所述方法包括:

接收终端发送的应用数据访问请求,所述应用数据访问请求携带有应用标识;

通过位于基础结构层的第一虚拟防火墙对所述应用数据访问请求进行基础检测,并对检测出漏洞的所述应用数据访问请求进行标记;

从位于软件运营层的第二虚拟防火墙中选取与所述应用标识对应的第三虚拟防火墙;

通过所选择的第三虚拟防火墙对经过所述第一虚拟防火墙检测后的所述应用数据访问请求进行高级检测;

当所述第三虚拟防火墙检测到经过标记的所述应用数据访问请求存在漏洞时,则对经过标记的且经过所述第三虚拟防火墙检测为存在漏洞的所述应用数据访问请求进行拦截。

在其中一个实施例中,所述对存在漏洞的所述应用数据访问请求进行标记,包括:

获取所述应用数据访问请求中的预设位,并通过所述预设位对所述应用数据访问请求进行标记;

所述通过所选择的第三虚拟防火墙对经过所述第一虚拟防火墙检测后的所述应用数据访问请求进行高级检测之前,包括:

恢复经过标记的所述应用数据访问请求。

在其中一个实施例中,所述方法还包括:

获取所述第一虚拟防火墙和所述第二虚拟防火墙对应的配置信息和运行日志;

将所述第一虚拟防火墙对应的所述配置信息和所述运行日志存储至所述第一虚拟防火墙对应的第一物理防火墙;

将所述第二虚拟防火墙对应的所述配置信息和所述运行日志存储至所述第二虚拟防火墙对应的第二物理防火墙。

在其中一个实施例中,所述方法还包括:

获取所述第二物理防火墙中存储的运行日志,并将所述运行日志根据所述第二虚拟防火墙进行分类得到运行日志集合;

获取所述运行日志集合中的运行日志对应的高级检测规则,并统计相同的所述高级检测规则对应的运行日志的第一数量;

当所述第一数量大于第一预设值时,则获取第一数量大于第一预设值的所述运行日志对应的所述高级检测规则,并增加所述高级检测规则对应的第二数量;

当所述第二数量大于第二预设值时,则将所述高级检测规则添加至所述第一虚拟防火墙中。

在其中一个实施例中,所述方法还包括:

接收输入的与所述第二虚拟防火墙对应的规则配置指令;

从服务规则库中选取与所述规则配置指令对应的高级检测规则;

将所述高级检测规则添加至所述第二虚拟防火墙中。

在其中一个实施例中,所述方法还包括:

将未被拦截的所述应用数据访问请求发送至与所述应用标识对应的应用服务器,通过该所述应用服务器中的漏洞检测规则检测所述应用数据访问请求是否存在漏洞;

当所述应用数据访问请求不存在漏洞时,则获取所述应用服务器返回的与所述应用数据访问请求对应的响应数据,并将所述响应数据返回至所述终端。

在其中一个实施例中,所述方法还包括:

接收所述应用服务器发送的漏洞检测规则,并将所述漏洞检测规则存储至对应的第二虚拟防火墙和所述服务规则库中。

一种漏洞检测装置,所述装置包括:

第一接收模块,用于接收终端发送的应用数据访问请求,所述应用数据访问请求携带有应用标识;

标记模块,用于通过位于基础结构层的第一虚拟防火墙对所述应用数据访问请求进行基础检测,并对检测出漏洞的所述应用数据访问请求进行标记;

第一选取模块,用于从位于软件运营层的第二虚拟防火墙中选取与所述应用标识对应的第三虚拟防火墙;

检测模块,用于通过所选择的第三虚拟防火墙对经过所述第一虚拟防火墙检测后的所述应用数据访问请求进行高级检测;

拦截模块,用于当所述第三虚拟防火墙检测到经过标记的所述应用数据访问请求存在漏洞时,则对经过标记的且经过所述第三虚拟防火墙检测为存在漏洞的所述应用数据访问请求进行拦截。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

上述漏洞检测方法、装置、计算机设备和存储介质,对应用数据访问请求进行分层判断,首先通过位于基础结构层的第一虚拟防火墙对应用数据访问请求进行基础检测,如果存在漏洞,则对该应用数据访问请求进行标记,并在位于软件运营层的第二虚拟防火墙中的第三虚拟防火墙进行高级检测,对经过标记的且经过第三虚拟防火墙检测为存在漏洞的应用数据访问请求进行拦截,通过双层判断实现了对应用数据访问请求的全面检测,提高了安全性。

附图说明

图1为一个实施例中漏洞检测方法的应用场景图;

图2为一个实施例中漏洞检测方法的流程示意图;

图3为一实施例中的高级检测规则添加步骤的流程图;

图4为一个实施例中漏洞检测装置的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

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

本申请提供的漏洞检测方法,可以应用于如图1所示的应用环境中。其中,云平台通过网络与终端和应用服务器进行通信,其中云平台可以通过物理防火墙进行配置,例如,将每一台物理防火墙设备基于虚拟资源进行划分得到多台虚拟防火墙设备,每个虚拟防火墙设备分别与不同的应用服务器相对应,以实现对应用服务器中的数据的安全保证。其中,可以将虚拟出来的虚拟防火墙分配至云平台不同的层中,例如,分配到云平台的iaas层(基础结构层)和saas层(软件运营层),位于iaas层的第一虚拟防火墙用于对终端发送的各种应用数据访问请求进行基础检测,位于saas层的第二虚拟防火墙用于对终端发送的各种应用数据访问请求进行高级检测,以多方位保证应用服务器的安全。

具体地,云平台在接收到终端发送的应用数据访问请求后,首先通过位于基础结构层的第一虚拟防火墙对应用数据访问请求进行基础检测,并对检测出漏洞的应用数据访问请求进行标记。其次云平台从位于软件运营层的第二虚拟防火墙中选取对应的第三虚拟防火墙,并通过所选择的第三虚拟防火墙对应用数据访问请求进行高级检测,且对经过标记的且经过第三虚拟防火墙检测为存在漏洞的应用数据访问请求进行拦截,从而存在漏洞的应用数据访问请求不会到达应用服务器,保证了应用服务器的安全。

其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,应用服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种漏洞检测方法,以该方法应用于图1中的云平台为例进行说明,包括以下步骤:

s202:接收终端发送的应用数据访问请求,应用数据访问请求携带有应用标识。

具体地,应用数据访问请求是终端发送的用于访问对应的应用服务器的请求,应用服务器基于该请求可以向终端返回对应的响应数据。应用标识是可以唯一确定应用服务器的标识,其可以是应用服务器的mac地址或者是预先分配给应用服务器的编号等。

云平台是终端与应用服务器进行通信的中转站,终端首先将应用数据访问请求发送给云平台,云平台通过云平台中的防火墙来检测该应用数据访问请求是否存在漏洞,只有在该应用数据访问请求不存在漏洞时,云平台才会将该应用数据访问请求发送到对应的应用服务器中。

s204:通过位于基础结构层的第一虚拟防火墙对应用数据访问请求进行基础检测,并对检测出漏洞的应用数据访问请求进行标记。

具体地,基础检测可以是通过位于第一虚拟防火墙中的基础漏洞特征库进行的,其中基础漏洞特征库是用于存储普通漏洞特征的库,其可以适用所有的应用服务器。该第一虚拟防火墙具有大吞吐量,其中在基础结构层的第一虚拟防火墙可以检测应用数据访问请求是否存在以下漏洞:sql注入、xss漏洞、csrf漏洞、恶意爬虫、扫描器、远程文件包含等漏洞。

其中,sql注入简称注入攻击,是web开发中最常见的一种安全漏洞,可以用它来从数据库获取敏感信息,或者利用数据库的特性执行添加用户,导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。

xss又称css,全称crosssitescript,跨站脚本攻击,是web程序中常见的漏洞,xss属于被动式且用于客户端的攻击方式,所以容易忽略其危害性,其原理是攻击者向有xss漏洞的网站中输入(传入)恶意的html代码,当其它用户浏览该网站时,这段html代码会自动执行,从而达到攻击的目的。如,盗取用户cookie、破坏页面结构、重定向到其它网站等。

csrf的全称是“跨站请求伪造”,是伪造请求,冒充用户在站内的正常操作。伪造用户的正常操作,通过xss或链接欺骗等途径,让用户在本机(即拥有身份cookie的浏览器端)发起用户所不知道的请求。

网络爬虫(webcrawler)又称网络蜘蛛(webspider)或网络机器人(webrobot),是一种按照一定的规则自动抓取万维网资源的程序或者脚本,已被广泛应用于互联网领域。搜索引擎使用网络爬虫抓取web网页、文档甚至图片、音频、视频等资源,通过相应的索引技术组织这些信息,提供给搜索用户进行查询。随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。

扫描器是一类自动检测本地或远程主机安全弱点的程序,它能够快速的准确的发现扫描目标存在的漏洞并提供给使用者扫描结果。工作原理是扫描器向目标计算机发送数据包,然后根据对方反馈的信息来判断对方的操作系统类型、开发端口、提供的服务等敏感信息。扫描是攻击的前奏,通过扫描,搜集目标主机的相关信息,寻找主机的漏洞。常见的扫描工具有x-scan、superscan、流光、x-port等。

远程文件包含攻击(remotefileinclude)即服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严格,从而可以去包含一个恶意文件,攻击者就可以远程构造一个高级的恶意文件达到攻击目的。文件包含漏洞可能出现在jsp、php、asp等语言中。

云平台首先提取应用数据访问请求中的关键字,将该关键字与基础漏洞特征库中的关键字进行匹配,如果匹配成功,则表示该应用数据访问请求存在漏洞,云平台对该应用数据访问请求进行标记。如果匹配未成功,则初步判断该应用数据访问请求为正常数据,不需要进行标记。

s206:从位于软件运营层的第二虚拟防火墙中选取与应用标识对应的第三虚拟防火墙。

具体地,由于第二虚拟防火墙与应用服务器是相对应的,且应用数据访问请求携带有应用标识,该应用标识与应用服务器也是相对应的,因此应用标识与第二虚拟防火墙也是相对应的,从而云平台可以根据应用标识从第二虚拟防火墙中查询到对应的第三虚拟防火墙,以实现对应用数据访问请求进行精准的检测。

s208:通过所选择的第三虚拟防火墙对经过第一虚拟防火墙检测后的应用数据访问请求进行高级检测。

具体地,高级检测可以是通过位于软件运营层的第三虚拟防火墙中的高级漏洞特征库进行的,其中高级漏洞特征库是用于存储高级漏洞特征的库,其仅适用于特定的应用服务器,且该高级漏洞特征库可以是由用户进行配置。

云平台可以首先提取应用数据访问请求中的关键字,将该关键字与高级漏洞特征库中的关键字进行匹配,如果匹配成功,且该应用数据访问请求已经被标记,则表示该应用数据访问请求存在漏洞。如果匹配未成功,则说明该应用数据访问请求为正常数据。

在实际应用中,在软件运营层的具体判断可以是基于每一漏洞类型的特征预先设置的,例如在基础结构层获取到漏洞类型,并进行标记,在软件运营层根据该漏洞类型从高级漏洞特征库中选择对应的规则,然后进行比较以判断该应用数据访问请求是否具有漏洞,这样可以对标记的应用数据访问请求进行针对性的检测,提高检测效率。例如sql注入中常见的“真表达(1=1)”,通过“真表达(1=1)”就可以判断此时正在遭受sql注入攻击,即应用数据访问请求具有漏洞。

s210:当第三虚拟防火墙检测到经过标记的应用数据访问请求存在漏洞时,则对经过标记的且经过第三虚拟防火墙检测为存在漏洞的应用数据访问请求进行拦截。

具体地,云平台首先通过位于基础结构层的具有大吞吐量的第一虚拟防火墙对应用数据访问请求进行检测,如果存在漏洞,则首先进行标注,而不阻断和中断,即不进行拦截。云平台其次通过位于软件运营层的具有针对性的第三虚拟防火墙对具体的应用服务器的应用数据访问请求有针对性的进行检测和阻断。具体地,当云平台检测到某一应用数据访问请求在基础结构层已经被标记,且在软件运营层又被认定为存在漏洞,则云平台对该应用数据访问请求进行拦截阻断。这样一方面可以保证漏洞检测的效率,降低误阻断率,另一方面采用分层方式的异构,使得恶意漏洞难以绕过分层检测机制。

上述漏洞检测方法,对应用数据访问请求进行分层判断,首先通过位于基础结构层的第一虚拟防火墙对应用数据访问请求进行基础检测,如果存在漏洞,则对该应用数据访问请求进行标记,并在位于软件运营层的第二虚拟防火墙中的第三虚拟防火墙进行高级检测,对经过标记的且经过第三虚拟防火墙检测为存在漏洞的应用数据访问请求进行拦截,通过双层判断实现了对应用数据访问请求的全面检测,提高了安全性。

在其中一个实施例中,上述步骤s204,即对存在漏洞的应用数据访问请求进行标记,可以包括:获取应用数据访问请求中的预设位,并通过预设位对应用数据访问请求进行标记。从而通过所选择的第三虚拟防火墙对经过第一虚拟防火墙检测后的应用数据访问请求进行高级检测之前,即步骤s208之前还可以包括:恢复经过标记的应用数据访问请求。

具体地,应用数据访问请求可以是基于标准tcp协议的应用数据访问请求,可以通过tcp协议中的预设位来对应用数据访问请求进行标记,即通过应用数据访问请求中的预设位来对漏洞进行标记,如果存在漏洞,则修改该预设位上的内容以表示应用数据访问请求存在漏洞。

为了保证在软件运营层的第三虚拟防火墙是针对原始的应用数据访问请求进行检测,云平台在通过该第三虚拟防火墙对经过第一虚拟防火墙检测后的应用数据访问请求进行高级检测之前,恢复该标记的应用数据访问请求,从而可以提高云平台通过该第三虚拟防火墙对经过第一虚拟防火墙检测后的应用数据访问请求进行高级检测的准确性。

具体地,云平台可以将标记的应用数据访问请求进行复制,并修改其中一个标记的应用数据访问请求与原始应用数据访问请求相同,云平台通过第三虚拟防火墙对该修改后的应用数据访问请求进行高级检测,这样可以保证检测结果的准确性,且由于保存了原来标记的应用数据访问请求,从而后续可以保存云平台通过第一虚拟防火墙所做出的判断。例如,云平台可以根据标记的应用数据访问请求的漏洞类型获取到高级漏洞特征库中对应的高级检测规则,然后通过该高级检测规则对该应用数据访问请求进行检测,这样可以提高检测效率,如果该应用数据访问请求为被标记,则直接通过高级漏洞特征库中的高级检测规则进行检测即可。

上述实施例中,通过应用数据访问请求中的预设位来实现对漏洞的标识,不需要增加其他的内容,操作简单,且在通过第三虚拟防火墙对应用数据访问请求前首先恢复标记的应用数据访问请求,保证了与原始应用数据访问请求相同,提高了检测的准确率。

在其中一个实施例中,上述漏洞检测方法还可以包括:获取第一虚拟防火墙和第二虚拟防火墙对应的配置信息和运行日志;将第一虚拟防火墙对应的配置信息和运行日志存储至第一虚拟防火墙对应的第一物理防火墙;将第二虚拟防火墙对应的配置信息和运行日志存储至第二虚拟防火墙对应的第二物理防火墙。

具体地,在生成虚拟防火墙时,即将物理防火墙设备基于虚拟资源进行划分时,可以将划分的结果和资源的容量等配置信息存储到对应的配置文件中,为了存储方便以及信息的查看,可以将配置文件存储至虚拟防火墙对应的物理防火墙中。

运行日志是指虚拟防火墙在运行过程中所生成的关于运行结果的日志,例如在基础结构层的第一虚拟防火墙在判断应用数据访问请求是否具有漏洞时,则对该应用数据访问请求进行标记,并将标记结果、检测时间、所采用的基础检测规则存储到运行日志中。在软件运营层的第二虚拟防火墙在判断应用数据访问请求是否具有漏洞时,则对该应用数据访问请求进行拦截,并将检测时间、所采用的高级检测规则存储到运行日志中,以便于后续进行查看,且为了方便该运行日志直接存储在对应的物理防火墙设备中。

上述实施例中,虚拟防火墙的配置信息和运行日志可以存储在对应的物理防火墙设备中,从而可以方便信息的查看,例如当在基础结构层判断出该应用数据访问请求具有漏洞特征,即包含漏洞时,则进行标记,并进行日志存储,且在软件运营层通过第二虚拟防火墙判断应用数据访问请求是否具有漏洞时,也可以进行日志存储,以便于用户进行查看漏洞等。

在其中一个实施例中,参见图3,图3为一实施例中的高级检测规则添加步骤的流程图,该高级检测规则添加步骤可以包括:

s302:获取所述第二物理防火墙中存储的运行日志,并将所述运行日志根据所述第二虚拟防火墙进行分类得到运行日志集合。

具体地,为了实现对第一虚拟防火墙中的基础漏洞特征库的扩充,可以通过自动判断将位于第二物理防火墙中的高级检测规则添加至第一虚拟防火墙中,以随着时间的变化,将一些常见的漏洞的检测规则添加至第一虚拟防火墙中。

具体地,云平台可以首先获取到位于第二物理防火墙中的运行日志,并根据第二虚拟防火墙对运行日志进行分类,即通过应用服务器对运行日志进行分类。例如,当存在三个第二虚拟防火墙时,则对应存在三个应用服务器,将运行日志按照应用服务器进行分类,例如第一应用服务器对应第一运行日志集合,第二应用服务器对应第二运行日志集合,第三应用服务器对应第三运行日志集合。

s304:获取所述运行日志集合中的运行日志对应的高级检测规则,并统计相同的所述高级检测规则对应的运行日志的第一数量。

具体地,云平台将运行日志进行分类后,获取到每一集合中的运行日志,并获取运行日志对应的高级检测规则。例如上述将运行日志分为三个运行日志集合,然后获取每一集合中每一运行日志对应的高级检测规则,例如分别获取到第一运行日志集合、第二运行日志集合和第三运行日志集合中每一运行日志对应的高级检测规则。然后云平台获取到相同的高级检测规则对应的运行日志的第一数量。其中以第一运行日志集合为例进行说明,假设第一运行日志集合中存在五个运行日志,且第一运行日志、第三运行日志以及第五运行日志对应第一高级检测规则,第二运行日志和第四运行日志对应第二高级检测规则,因此第一高级检测规则对应的第一数量为3,第二高级检测规则对应的第一数量为2。

s306:当所述第一数量大于第一预设值时,则获取第一数量大于第一预设值的所述运行日志对应的所述高级检测规则,并增加所述高级检测规则对应的第二数量。

具体地,第一预设值是根据第二虚拟防火墙中拦截的应用数据访问请求对应的高级检测规则的数量来确定的,例如某一时期内第二虚拟防火墙所拦截的应用数据访问请求均对应于同一个高级检测规则,则说明该高级检测规则对应的漏洞较为普遍,则可以将该高级检测规则推荐添加至第一虚拟防火墙中。

但是由于第一虚拟防火墙中对应的基础检测规则需要对所有应用服务器的应用数据访问请求进行检测,因此,为了保证高级检测规则的基础性,云平台可以获取到第二虚拟防火墙对应的第一数量大于第一预设值的高级检测规则,并为每一高级检测规则配置对应的计数器,当存在一个第二虚拟防火墙对应的第一数量大于第一预设值的高级检测规则时,则与该高级检测规则对应的计数器递增,例如加1,即对应地增加第二数量。

s308:当所述第二数量大于第二预设值时,则将所述高级检测规则添加至所述第一虚拟防火墙中。

具体地,第二数量是用于衡量第一数量大于第一预设值的高级检测规则对应的第二虚拟防火墙的数量。第二预设值则是为了衡量某一高级检测规则是否具有基础性,即是否可以适用于大部分的应用服务器,该第二预设值可以是由用户进行设置,当云平台判断出该第二数量大于第二预设值时,则将该高级检测规则添加至基础结构层对应的基础漏洞特征库中,以实现云平台中基础漏洞特征库的动态变动。

上述实施例中,通过双层标准,即一个应用服务器对应的相同高级检测规则所对应的运行日志的数量以及同一高级检测规则对应的第二虚拟防火墙的数量,来判断是否可以将某一高级检测规则添加至第一虚拟防火墙中,即可以扩充第一虚拟防火墙中的基础检测规则,又提高了扩充的准确性。

在其中一个实施例中,上述漏洞检测方法还包括:接收输入的与第二虚拟防火墙对应的规则配置指令;从服务规则库中选取与规则配置指令对应的高级检测规则;将高级检测规则添加至第二虚拟防火墙中。

具体地,规则配置指令是用于配置第二虚拟防火墙中的高级检测规则的指令,该指令可以是由租用第二虚拟防火墙的用户发出的。服务规则库则是设置在云平台上的,用于存储云平台中的高级检测规则,当用户需要配置第二虚拟防火墙中的高级检测规则时,云平台可以从服务规则库中向用户推荐。

其中,上述第二虚拟防火墙中的高级漏洞特征库中的高级检测规则可以是由应用服务器的用户进行设置的。例如云平台可以提供一个服务规则库,服务规则库中存储大量的检测规则,用户可以通过云平台提供的人机交互界面从服务规则库中选取高级检测规则,并将所选取的高级检测规则存储至第二虚拟防火墙中。

在实际应用中,当用户需要配置与应用服务器对应的第二虚拟防火墙时,则用户首先登录云平台中注册的账户,云平台提供人机交互界面以便于用户配置高级检测规则,用户可以在人机交互界面上操作以从服务规则库中选取所需要的高级检测规则,云平台接收到用户选取的高级检测规则后,将该高级检测规则添加至相应的第二虚拟防火墙中,即添加至第二虚拟防火墙对应的高级漏洞特征库中,从而当位于软件运营层的第二虚拟防火墙对应用数据访问请求进行判断时,可以根据用户配置的高级检测规则进行判断,提高了针对性。可选地,在用户配置与第二虚拟防火墙对应的高级检测规则时,云平台可以根据应用服务器的功能向用户推荐可用的服务规则,以提高用户的配置效率。例如可以获取应用服务器的功能,云平台通过所获取的功能的名称匹配服务规则库中的高级检测规则,并将匹配成功的高级检测规则显示到人机交互界面上,从而用户可以从云平台推荐的高级检测规则中选取到应用服务器需要的高级检测规则,从而云平台可以将用户选取的高级检测规则添加到对应的第二虚拟防火墙中。

上述实施例中,位于软件运营层的第二虚拟防火墙中的高级检测规则可以由应用服务器的用户来进行配置,从而使得第二虚拟防火墙中的高级检测规则更加具有针对性,与用户的需求相适应。

在其中一个实施例中,上述漏洞检测方法还可以包括:将未被拦截的应用数据访问请求发送至与应用标识对应的应用服务器,通过该应用服务器中的漏洞检测规则检测应用数据访问请求是否存在漏洞;当应用数据访问请求不存在漏洞时,则获取应用服务器返回的与应用数据访问请求对应的响应数据,并将响应数据返回至终端。

具体地,在云平台检测到应用数据访问请求不存在漏洞时,则不会拦截该应用数据访问请求,即云平台将该未被拦截的应用数据访问请求转发至对应的应用服务器,在应用服务器接收到该应用数据访问请求后,可以基于应用服务器自身的漏洞检测规则再次对应用数据访问请求进行检测,该自身的漏洞检测规则可以是由于保密原因设置到本地的漏洞检测规则,应用服务器通过该漏洞检测规则对应用数据访问请求进行检测,当应用数据访问请求不存在漏洞时,则获取到与应用数据访问请求对应的响应数据,并将响应数据返回至对应的终端,从而实现整个访问过程。

当应用服务器检测到该应用数据访问请求存在漏洞时,应用服务器则拒绝该应用数据访问请求,即应用服务器可以向对应的终端返回非法访问的提示,并拒绝数据访问。

上述实施例中,在经过云平台的双层漏洞检测后,该应用数据访问请求被云平台发送至应用服务器,应用服务器再对该应用数据访问请求进行漏洞检测,只有应用服务器确认该应用数据访问请求不存在漏洞时,才会向应用数据访问请求对应的终端返回响应数据,进一步提高了应用服务器的安全。

在其中一个实施例中,上述漏洞检测方法还可以包括:接收应用服务器发送的漏洞检测规则,并将漏洞检测规则存储至对应的第二虚拟防火墙和服务规则库中。

具体地,为了实现第二虚拟防火墙对应的高级漏洞特征库的扩充,云平台可以接收应用服务器发送的漏洞检测规则,从而实现高级漏洞特征库的扩充。

具体地,在实际应用中,由于云平台中的服务规则库中的高级检测规则的数量有限,存在应用服务器对应的用户所需要的高级检测规则不存在云平台的服务规则库中,为了实现在云平台中通过该高级检测规则对应用数据访问请求进行检测,用户可以选择高级检测规则,并指示应用服务器将该高级检测规则提交至云平台,云平台从而将该高级检测规则存储至第二虚拟防火墙对应的高级漏洞特征库中,且可选地,云平台在接收到应用服务器发送的高级检测规则时,可以进行安全检测,例如可以采用加密的方式传输该高级检测规则,通过解密是否成功来进行安全检测,或者通过动态码的方式来判断操作应用服务器的用户是否具有安全权限等。

在实际应用中,云平台还可以将应用服务器发送的高级检测规则添加至云平台的服务规则库中,以实现对服务规则库的扩充,从而当其他应用服务器对应的用户在配置应用服务器对应的高级漏洞特征库时,可以选取到该高级检测规则,实现了云平台中的服务规则库的扩充。可选地,云平台可以首先判断应用服务器发送的高级检测规则是否允许其他用户使用,如果允许使用,则可以将应用服务器发送的高级检测规则添加至云平台的服务规则库中,否则,云平台不执行任何操作,这样可以保证用户的高级检测规则的安全性。

上述实施例中,云平台可以将应用服务器发送的高级检测规则添加至云平台的服务规则库和第二虚拟防火墙中,使得云平台中的服务规则库和第二虚拟防火墙中的高级漏洞特征库更加完善。

应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种漏洞检测装置,包括:第一接收模块100、标记模块200、选取模块300、检测模块400和拦截模块500,其中:

第一接收模块100,用于接收终端发送的应用数据访问请求,应用数据访问请求携带有应用标识。

标记模块200,用于通过位于基础结构层的第一虚拟防火墙对应用数据访问请求进行基础检测,并对检测出漏洞的应用数据访问请求进行标记。

第一选取模块300,用于从位于软件运营层的第二虚拟防火墙中选取与应用标识对应的第三虚拟防火墙。

检测模块400,用于通过所选择的第三虚拟防火墙对经过第一虚拟防火墙检测后的应用数据访问请求进行高级检测。

拦截模块500,用于当第三虚拟防火墙检测到经过标记的应用数据访问请求存在漏洞时,则对经过标记的且经过第三虚拟防火墙检测为存在漏洞的应用数据访问请求进行拦截。

在其中一个实施例中,标记模块200还可以用于获取应用数据访问请求中的预设位,并通过预设位对应用数据访问请求进行标记。

所述装置还可以包括:恢复模块,用于在通过所选择的第三虚拟防火墙对经过第一虚拟防火墙检测后的应用数据访问请求进行高级检测之前,恢复经过标记的应用数据访问请求。

在其中一个实施例中,该装置还可以包括:

第一获取模块,用于获取第一虚拟防火墙和第二虚拟防火墙对应的配置信息和运行日志。

第一存储模块,用于将第一虚拟防火墙对应的配置信息和运行日志存储至第一虚拟防火墙对应的第一物理防火墙;将第二虚拟防火墙对应的配置信息和运行日志存储至第二虚拟防火墙对应的第二物理防火墙。

在其中一个实施例中,该装置还可以包括:

分类模块,用于获取所述第二物理防火墙中存储的运行日志,并将所述运行日志根据所述第二虚拟防火墙进行分类得到运行日志集合;

统计模块,用于获取所述运行日志集合中的运行日志对应的高级检测规则,并统计相同的所述高级检测规则对应的运行日志的第一数量;

计数模块,用于当所述第一数量大于第一预设值时,则获取第一数量大于第一预设值的所述运行日志对应的所述高级检测规则,并增加所述高级检测规则对应的第二数量;

第一添加模块,用于当所述第二数量大于第二预设值时,则将所述高级检测规则添加至所述第一虚拟防火墙中。

在其中一个实施例中,该装置还可以包括:

第二接收模块,用于接收输入的与第二虚拟防火墙对应的规则配置指令。

第二选取模块,用于从服务规则库中选取与规则配置指令对应的高级检测规则。

第二添加模块,用于将高级检测规则添加至第二虚拟防火墙中。

在其中一个实施例中,该装置还可以包括:

本地检测模块400,用于将未被拦截的应用数据访问请求发送至与应用标识对应的应用服务器,通过该应用服务器中的漏洞检测规则检测应用数据访问请求是否存在漏洞。

响应模块,用于当应用数据访问请求不存在漏洞时,则获取应用服务器返回的与应用数据访问请求对应的响应数据,并将响应数据返回至终端。

在其中一个实施例中,该装置还可以包括:

第二存储模块,用于接收应用服务器发送的漏洞检测规则,并将漏洞检测规则存储至对应的第二虚拟防火墙和服务规则库中。

关于漏洞检测装置的具体限定可以参见上文中对于漏洞检测方法的限定,在此不再赘述。上述漏洞检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储配置信息和运行日志。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种漏洞检测方法。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收终端发送的应用数据访问请求,应用数据访问请求携带有应用标识;通过位于基础结构层的第一虚拟防火墙对应用数据访问请求进行基础检测,并对检测出漏洞的应用数据访问请求进行标记;从位于软件运营层的第二虚拟防火墙中选取与应用标识对应的第三虚拟防火墙;通过所选择的第三虚拟防火墙对经过第一虚拟防火墙检测后的应用数据访问请求进行高级检测;当第三虚拟防火墙检测到经过标记的应用数据访问请求存在漏洞时,则对经过标记的且经过第三虚拟防火墙检测为存在漏洞的应用数据访问请求进行拦截。

在一个实施例中,计算机程序被处理器执行时所实现的对存在漏洞的应用数据访问请求进行标记,可以包括:获取应用数据访问请求中的预设位,并通过预设位对应用数据访问请求进行标记;计算机程序被处理器执行时所实现的通过所选择的第三虚拟防火墙对经过第一虚拟防火墙检测后的应用数据访问请求进行高级检测之前,可以包括:恢复经过标记的应用数据访问请求。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取第一虚拟防火墙和第二虚拟防火墙对应的配置信息和运行日志;将第一虚拟防火墙对应的配置信息和运行日志存储至第一虚拟防火墙对应的第一物理防火墙;将第二虚拟防火墙对应的配置信息和运行日志存储至第二虚拟防火墙对应的第二物理防火墙。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取第二物理防火墙中存储的运行日志,并将运行日志根据第二虚拟防火墙进行分类得到运行日志集合;获取运行日志集合中的运行日志对应的高级检测规则,并统计相同的高级检测规则对应的运行日志的第一数量;当第一数量大于第一预设值时,则获取第一数量大于第一预设值的运行日志对应的高级检测规则,并增加高级检测规则对应的第二数量;当第二数量大于第二预设值时,则将高级检测规则添加至第一虚拟防火墙中。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收输入的与第二虚拟防火墙对应的规则配置指令;从服务规则库中选取与规则配置指令对应的高级检测规则;将高级检测规则添加至第二虚拟防火墙中。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:将未被拦截的应用数据访问请求发送至与应用标识对应的应用服务器,通过该应用服务器中的漏洞检测规则检测应用数据访问请求是否存在漏洞;当应用数据访问请求不存在漏洞时,则获取应用服务器返回的与应用数据访问请求对应的响应数据,并将响应数据返回至终端。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收应用服务器发送的漏洞检测规则,并将漏洞检测规则存储至对应的第二虚拟防火墙和服务规则库中。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收终端发送的应用数据访问请求,应用数据访问请求携带有应用标识;通过位于基础结构层的第一虚拟防火墙对应用数据访问请求进行基础检测,并对检测出漏洞的应用数据访问请求进行标记;从位于软件运营层的第二虚拟防火墙中选取与应用标识对应的第三虚拟防火墙;通过所选择的第三虚拟防火墙对经过第一虚拟防火墙检测后的应用数据访问请求进行高级检测;当第三虚拟防火墙检测到经过标记的应用数据访问请求存在漏洞时,则对经过标记的且经过第三虚拟防火墙检测为存在漏洞的应用数据访问请求进行拦截。

在一个实施例中,计算机程序被处理器执行时所实现的对存在漏洞的应用数据访问请求进行标记,可以包括:获取应用数据访问请求中的预设位,并通过预设位对应用数据访问请求进行标记;计算机程序被处理器执行时通过所选择的第三虚拟防火墙对经过第一虚拟防火墙检测后的应用数据访问请求进行高级检测之前,可以包括:恢复经过标记的应用数据访问请求。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取第一虚拟防火墙和第二虚拟防火墙对应的配置信息和运行日志;将第一虚拟防火墙对应的配置信息和运行日志存储至第一虚拟防火墙对应的第一物理防火墙;将第二虚拟防火墙对应的配置信息和运行日志存储至第二虚拟防火墙对应的第二物理防火墙。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取第二物理防火墙中存储的运行日志,并将运行日志根据第二虚拟防火墙进行分类得到运行日志集合;获取运行日志集合中的运行日志对应的高级检测规则,并统计相同的高级检测规则对应的运行日志的第一数量;当第一数量大于第一预设值时,则获取第一数量大于第一预设值的运行日志对应的高级检测规则,并增加高级检测规则对应的第二数量;当第二数量大于第二预设值时,则将高级检测规则添加至第一虚拟防火墙中。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收输入的与第二虚拟防火墙对应的规则配置指令;从服务规则库中选取与规则配置指令对应的高级检测规则;将高级检测规则添加至第二虚拟防火墙中。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将未被拦截的应用数据访问请求发送至与应用标识对应的应用服务器,通过该应用服务器中的漏洞检测规则检测应用数据访问请求是否存在漏洞;当应用数据访问请求不存在漏洞时,则获取应用服务器返回的与应用数据访问请求对应的响应数据,并将响应数据返回至终端。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收应用服务器发送的漏洞检测规则,并将漏洞检测规则存储至对应的第二虚拟防火墙和服务规则库中。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

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

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

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