一种基于流量分析的网络攻击防护方法和装置与流程

文档序号:11156472阅读:379来源:国知局
一种基于流量分析的网络攻击防护方法和装置与制造工艺

本申请涉及网络技术领域,具体涉及一种基于流量分析的网络攻击防护方法,以及一种基于流量分析的网络攻击防护装置。



背景技术:

Web应用越来越丰富的同时,web服务器也逐渐成为了主要的攻击目标,SQL注入、网页篡改、网页挂马等安全事件也频繁发生。

通常采用WAF(Web Application Firewall,web应用防火墙)作为访问控制设备来加强web服务器的安全,通过解析web客户端发起的请求,对其中的内容进行检测,确保请求的合法性,阻断非法的请求,可以对web服务器进行有效防护。

早期的WAF通常是一种硬件设备,通过串联或者旁路方式接入到网络中,一般适用于IDC(Internet Data Center,互联网数据中心)机房或企业用户。在当前盛行的云计算网络中,提供给用户的WAF通常是云WAF,即所有的WAF功能都是通过云端提供,不需要在本地部署产品。其实现方式为通过修改用户终端的NS(Name Serve,域名服务器)记录或CNAME记录(别名记录)将网络流量导入的WAF服务器。

现有的WAF存在如下弊端:

1、因为硬件形式的WAF的防护规则是预定义的,在新的漏洞出现后防护规则更新困难。并且其部署方式的复杂性和较高的维护成本决定了其并不适用于云计算网络环境。

2、需要用户自己更改NS记录或CNAME记录才能实现安全防护,增加了用户的学习成本;并且,针对未接入WAF服务器的用户终端,无法对web服务器提供安全防护,在云计算网络中不能达到100%防护,降低了云计算网络整体的安全性。

3、现有的WAF的处理一般是先完成网络请求与所有规则的匹配后再决定该请求是拦截还是放过,增加了用户访问Web服务器的延时。

4、现有的WAF针对的是单一网站或单一Web服务的防护,对于针对整个网络的大规模漏洞扫描感知较差,对于同一个攻击者对云计算网络的大规模扫描未作很好的联动防护。



技术实现要素:

本申请实施例所要解决的技术问题是提供一种部分或全部解决上述问题的基于流量分析的网络攻击防护方法。

相应的,本申请实施例还提供了一种基于流量分析的网络攻击防护装置,用以保证上述方法的实现及应用。

为了解决上述问题,本申请公开了一种基于流量分析的网络攻击防护方法,包括:

采集经过网络服务器与网络路由设备之间的网络流量;

解析所述网络流量中的网络访问参数;

通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数;

根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接。

优选地,所述采集经过网络服务器与网络路由设备之间的网络流量包括:

采用连接在所述网络服务器与所述网络路由设备之间的网络分光器、网络交换机或集线器,复制所述网络供应商服务器发送给所述网络路由设备的网络流量。

优选地,所述采集经过网络服务器与网络路由设备之间的网络流量还包括:

通过网络分流器对属于同一次网络访问的所述网络流量进行划分。

优选地,所述网络流量为TCP报文,在所述解析所述网络流量中的网络访问参数之前,所述方法还包括:

确定所述TCP报文为记录一次完整的网络访问过程的Http数据。

优选地,在所述解析所述网络流量中的网络访问参数之前,所述方法还 包括:

若所述TCP报文并非记录一次完整的网络访问过程的Http数据,则根据所述TCP报文携带的编号,将属于同一次网络访问的多个TCP报文重组为记录经过七层网络传输结构的一次网络访问的Http数据。

优选地,所述网络访问参数包括统一资源标识符、访问源IP、访问目的IP、Host字段、访问链接来源、用户代理、cookie和访问请求参数中至少一种。

优选地,所述通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数包括:

针对对应同一次网络访问的网络流量,将所述网络访问参数与所述预置规则匹配,所述预置规则指示所述网络攻击源访问所述网络服务器时携带的至少一个特征数据,所述预置规则包括多条子规则;

若所述网络访问参数与至少一条所述子规则匹配,则确定对应的网络流量为所述网络攻击源访问所述网络服务器产生的网络流量,并将对应的网络访问参数作为目标网络访问参数。

优选地,所述根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接为,根据与所述目标网络访问参数属于同一次网络访问的其它至少一个网络访问参数,禁止所述网络攻击源与所述网络服务器建立连接。

优选地,所述目标网络访问参数包括所述网络攻击源的统一资源标识符;在所述根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接之前,所述方法还包括:

在与所述统一资源标识符对应同一次网络访问的网络流量中,提取所述网络攻击源的访问源IP。

优选地,所述根据与所述目标网络访问参数属于同一次网络访问的其它至少一个网络访问参数,禁止所述网络攻击源与所述网络服务器建立连接包括:

实时采集所述网络服务器发送至所述网络路由设备的网络流量;

若所述网络流量中记录的访问源IP与所述网络攻击源的访问源IP匹配,则通过向所述网络攻击源或所述网络服务器发送连接复位报文来中断所述网络攻击源与所述网络服务器之间的连接。

优选地,所述根据与所述目标网络访问参数属于同一次网络访问的其它至少一个网络访问参数,禁止所述网络攻击源与所述网络服务器建立连接包括:

将所述网络攻击源的访问源IP通知到所述网络服务器所处网络集群中包括的多个网络服务器,以由各个网络服务器在接收到所述网络攻击源的访问源IP的网络访问请求时,中断与所述网络攻击源之间的连接。

本申请还提供了一种基于流量分析的网络攻击防护装置,包括:

流量采集模块,用于采集经过网络服务器与网络路由设备之间的网络流量;

参数解析模块,用于解析所述网络流量中的网络访问参数;

参数查找模块,用于通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数;

连接禁止模块,用于根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接。

优选地,所述流量采集模块包括:

流量复制子模块,用于采用连接在所述网络服务器与所述网络路由设备之间的网络分光器、网络交换机或集线器,复制所述网络供应商服务器发送给所述网络路由设备的网络流量。

优选地,所述流量采集模块还包括:

流量划分子模块,用于通过网络分流器对属于同一次网络访问的所述网络流量进行划分。

优选地,所述网络流量为TCP报文,所述装置还包括:

流量判断模块,用于在所述解析所述网络流量中的网络访问参数之前,确定所述TCP报文为记录一次完整的网络访问过程的Http数据。

优选地,所述装置还包括:

流量重组模块,用于在所述解析所述网络流量中的网络访问参数之前,若所述TCP报文并非记录一次完整的网络访问过程的Http数据,则根据所述TCP报文携带的编号,将属于同一次网络访问的多个TCP报文重组为记录经过七层网络传输结构的一次网络访问的Http数据。

优选地,所述网络访问参数包括统一资源标识符、访问源IP、访问目的IP、Host字段、访问链接来源、用户代理、cookie和访问请求参数中至少一种。

优选地,所述参数查找模块包括:

规则匹配子模块,用于针对对应同一次网络访问的网络流量,将所述网络访问参数与所述预置规则匹配,所述预置规则指示所述网络攻击源访问所述网络服务器时携带的至少一个特征数据,所述预置规则包括多条子规则;

攻击流量确定子模块,用于若所述网络访问参数与至少一条所述子规则匹配,则确定对应的网络流量为所述网络攻击源访问所述网络服务器产生的网络流量,并将对应的网络访问参数作为目标网络访问参数。

优选地,所述连接禁止模块,具体用于根据与所述目标网络访问参数属于同一次网络访问的其它至少一个网络访问参数,禁止所述网络攻击源与所述网络服务器建立连接。

优选地,所述目标网络访问参数包括所述网络攻击源的统一资源标识符;所述装置还包括:

IP提取模块,用于在所述根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接之前,在与所述统一资源标识符对应同一次网络访问的网络流量中,提取所述网络攻击源的访问源IP。

优选地,所述连接禁止模块包括:

实时流量获取子模块,用于实时采集所述网络服务器发送至所述网络路由设备的网络流量;

第一连接中断子模块,用于若所述网络流量中记录的访问源IP与所述网络攻击源的访问源IP匹配,则通过向所述网络攻击源或所述网络服务器发送连接复位报文来中断所述网络攻击源与所述网络服务器之间的连接。

优选地,所述连接禁止模块包括:

第二连接中断子模块,用于将所述网络攻击源的访问源IP通知到所述网络服务器所处网络集群中包括的多个网络服务器,以由各个网络服务器在接收到所述网络攻击源的访问源IP的网络访问请求时,中断与所述网络攻击源之间的连接。

与现有技术相比,本申请实施例包括以下优点:

依据本申请实施例,采集经过网络服务器与网络路由设备之间的网络流量,并从中解析出相关的网络访问参数,进一步通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数,并以此为依据监控攻击源的网络攻击,禁止网络攻击源与所述网络服务器建立连接。采用本申请实施例的方案,无需对客户端或外部服务器进行任何设置操作,降低了用户的学习成本;相比于传统需要接入WAF服务器的方式,本申请实施例针对所有访问网络服务器的客户端或外部服务器,无需接入WAF服务器,都可以进行安全检测,为网络服务器提供100%的安全防护,提高了云计算网络整体的安全性。

并且,本申请实施例通过规则匹配挖掘出网络攻击源的目标网络访问参数,以此为依据对实时的网络流量进行监控,相比于传统的临时对网络请求进行规则匹配进行检测的方式,可以减少用户访问Web服务器的延时,缩短用户获取网络服务的等待时间。

本申请实施例对应的系统可以以软件形式部署于任意适用的服务器或硬件装置,相比于硬件形式的WAF采用预定义的防护规则的方式,新的漏洞出现后仅仅对防护规则进行更新即可,部署方便简单,大大降低了维护成本,可以更好地应用于云计算网络环境。

依据本申请实施例,还可以将挖掘的网络攻击源的目标网络访问参数通知至网络集群中所有网络服务器,从而可以针对同一个网络攻击源对云计算网络的大规模扫描进行联动防护。

并且,本申请还可以通过识别目标网络访问参数,关联同一次网络访问 中的至少一个网络访问参数,以关联的网络访问参数为依据进行攻击防护,从而可以对网络攻击源进行更全面的防护,避免规则匹配不完善导致防护不够全面的问题。

进一步,传统防火墙工作在OSI(Open System Interconnect,开放式系统互联)七层模型的第三、四层,目前已无法满足web应用的七层防护需求。本申请实施例中可以重组记录经过七层网络传输结构的一次网络访问的Http数据,依据七层网络传输结构的Http数据的多种网络访问参数识别网络攻击源,以禁止其访问网络服务器,相比于仅仅工作在第三、四层的传统防火墙,本申请实施例的网络防护更为全面,更好地维护了网络服务器的安全。

上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。

附图说明

图1示出了根据本申请一种基于流量分析的网络攻击防护方法实施例1的步骤流程图;

图2示出了根据本申请一种基于流量分析的网络攻击防护方法实施例2的步骤流程图;

图3示出了本申请实施例的一个示例中硬件设备连接示意图;

图4示出了本申请实施例的一个示例中TCP报文重组的示意图;

图5示出了本申请实施例的一个示例中阻断攻击的示意图;

图6示出了根据本申请一种基于流量分析的网络攻击防护装置实施例1的结构框图;

图7示出了根据本申请一种基于流量分析的网络攻击防护装置实施例2的结构框图。

具体实施方式

为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。

参照图1,示出了本申请的一种基于流量分析的网络攻击防护方法实施例1的步骤流程图,具体可以包括如下步骤:

步骤101,采集经过网络服务器与网络路由设备之间的网络流量。

客户端或外部服务器访问网络供应商提供的互联网时,网络访问请求经网络路由设备传送到网络供应商提供的网络服务器,网络服务器根据网络访问请求反馈的信息进一步从网络服务器传送到网络路由设备,进一步传送到客户端或外部服务器。

本申请实施例中,在网络服务器与网络路由设备之间采集的网络流量,既包括从网络服务器发送至网络路由设备的网络流量,也包括从网络路由设备发送至网络服务器的网络流量,采集的网络流量中记录了多个客户端或外部服务器对网络服务器的多次访问过程,以及访问过程中网络服务器收到或发出的全部数据包。

步骤102,解析所述网络流量中的网络访问参数。

网络流量中记录了与本次访问互联网相关的参数,记为网络访问参数,解析出参数可以进一步用于分析攻击网络服务器的网络攻击源,网络攻击源可以是任意访问网络服务器的一端,例如客户端或是其他外部服务器,网络访问参数可以是网络流量中包括的各种数据,本申请对此并不作限制。

本申请的一种优选实施例中,从网络流量中解析得到的网络访问参数可以包括统一资源标识符URI、访问源IP、访问目的IP、Host字段、访问链接来源、用户代理(User Agent)、cookie和访问请求参数中至少一种。

其中,URI为网络访问请求对应访问的网页地址;访问源IP为发送网络访问请求的客户端的IP地址;访问目的IP为保存该网页的服务器的IP地址;Host字段标识请求访问的网页域名;访问链接来源(Refferer)表示链接到当前网页的来源,即当前访问网页的前一个网页,以图片为例,Refferer是指该图片所在的网页;用户代理(User-Agent)是一种特殊字符串头,使得服务器能够识别客户端使用的操作系统及版本、CPU类型、浏览 器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等;访问请求参数包括例如GET、POST对应的结构体数据。

具体而言,客户端访问网页时,向网络服务器发送网络访问请求,以Http(Hyper Text Transfer Protocol,超文本传输协议)格式的访问请求为例,访问请求由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。头域包括通用头、请求头、响应头和实体头四个部分,其中,请求头包含了客户端或外部服务器向网络服务器传递关于访问请求或者关于客户端所在终端或外部服务器的附加信息。

如下例所示Http网络访问请求:

GET http://download.microtool.de:80/somedata.exe

Host:download.microtool.de

Accept:*/*

Pragma:no-cache

Cache-Control:no-cache

Referer:http://download.microtool.de/

User-Agent:Mozilla/4.04[en](Win95;I;Nav)

Range:bytes=554554-

其中,URI为http://download.microtool.de:80/somedata.exe,Host为download.microtool.de,Referer为http://download.microtool.de/,User-Agent为Mozilla/4.04[en](Win95;I;Nav)。

步骤103,通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数。

预先对网络攻击源进行分析,统计网络攻击源访问互联网时在网络访问参数中携带的各种特征数据,进一步建立根据这些特征数据筛选网络攻击源对应的目标网络访问参数的规则。

例如,预置规则可以是,网络访问参数中包含或是不包含某个预设的特征数据(例如and),或是某个特征数据出现的次数超过或是小于一定阈值等各种情况。预置规则可以是一条规则,也可以由多条规则组成,可以设定满 足所有规则或是一定数量的规则,则该网络访问参数确定为目标网络访问参数。在具体实现中,还可以采用任意适用的规则,本申请对此并不做限制。

步骤104,根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接。

从网络流量中解析并分析出网络攻击源对应的目标网络访问参数后,在客户端或外部服务器与网络服务器之间的访问行为进行监控时,可以根据目标网络访问参数监控网络攻击源的行为,进而在发现网络攻击源访问网络服务器时,禁止与网络服务器建立连接。

具体可以通过监控网络流量,例如发现网络流量中携带该目标网络访问参数时,来防止网络攻击;或是,具体监控网络流量中的三次握手或是四次挥手,通过监控其中的特定网络访问参数,来防止网络攻击;还可以选用其他任意适用的方式,本申请对此并不做限制。

综上,依据本申请实施例,采集经过网络服务器与网络路由设备之间的网络流量,并从中解析出相关的网络访问参数,进一步通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数,并以此为依据监控攻击源的网络攻击,禁止网络攻击源与所述网络服务器建立连接。采用本申请实施例的方案,无需对客户端或外部服务器进行任何设置操作,降低了用户的学习成本;相比于传统需要接入WAF服务器的方式,本申请实施例针对所有访问网络服务器的客户端或外部服务器,无需接入WAF服务器,都可以进行安全检测,为网络服务器提供100%的安全防护,提高了云计算网络整体的安全性。

并且,本申请实施例通过规则匹配挖掘出网络攻击源的目标网络访问参数,以此为依据对实时的网络流量进行监控,相比于传统的临时对网络请求进行规则匹配进行检测的方式,可以减少用户访问Web服务器的延时,缩短用户获取网络服务的等待时间。

本申请实施例对应的系统可以以软件形式部署于任意适用的服务器或硬件装置,例如,可以部署在连接在网络服务器与网络路由设备之间网络流量的采集设备上,或是部署在网络服务器上,或是将步骤101-103部署在采 集设备上,步骤104部署在网络服务器的多个协议层中某一层,例如,针对采用OSI七层模型的网络服务器,可以将步骤104对应实施在IP层(三层网络层),或是TCP/UDP层(四层传输层)等,用于该层的防护。相比于硬件形式的WAF采用预定义的防护规则的方式,新的漏洞出现对规则进行更新即可,部署方便简单,大大降低了维护成本,可以更好地应用于云计算网络环境。

本申请实施例中,优选地,所述步骤101可以包括:

子步骤S1、采用连接在所述网络服务器与所述网络路由设备之间的网络分光器、网络交换机或集线器,复制所述网络供应商服务器发送给所述网络路由设备的网络流量。

可以通过在网络服务器与网络路由设备之间设置网络分光器来采集网络流量的镜像文件,网络分光器连接在光纤传输过程,用于对通过光纤传输的数据进行复制,即原来的流量正常通行,同时将监控的流量复制出来供分析使用。还可以在网络服务器和网络路由设备之间设置网络交换机、集线器或是其他任意适用的设备来采集网络流量的镜像文件,本申请对此并不做限制。其中,网络分光器连接在光纤传输过程,用于对通过光纤传输的数据进行复制,即原来的流量正常通行,同时将监控的流量复制出来供分析使用;网络交换机是扩大网络的硬件,可以为子网络提供更多的连接端口,从而扩展网络中接入的终端设备;集线器在网络传输中起到对接收到的信号进行再生整形放大以扩大网络的传输距离的作用。相比于网络交换机和集线器,通过分光器获取镜像流量可以避免对交换机或集线器CPU性能的影响。

本申请实施例中,优选地,还可以将连接在所述网络服务器与所述网络路由设备之间的网络分光器、网络交换机或采集器等设备与网络分流器连接,所述步骤101还可以包括:通过网络分流器对属于同一次网络访问的所述网络流量进行划分。

网络分流器将采集的链路数据分流进入采集接口,为互联网信息安全监控系统采集数据。通过对网络分流器输入数据,进行复制、汇聚、过滤、协议转换等步骤,输出时保证同一网络访问的所有网络流量从同一个接口输 出。具体可以根据网络流量中数据包携带的IP地址、访问时间、访问源IP、访问目的IP等)对不同次的网络流量进行划分,也可以按照其他预设标识进行划分。

本申请实施例中,优选地,所述步骤103可以包括:

子步骤S2、针对对应同一次网络访问的网络流量,将所述网络访问参数与所述预置规则匹配,所述预置规则指示所述网络攻击源访问所述网络服务器时携带的至少一个特征数据,所述预置规则包括多条子规则;

子步骤S3、若所述网络访问参数与至少一条所述子规则匹配,则确定对应的网络流量为所述网络攻击源访问所述网络服务器产生的网络流量,并将对应的网络访问参数作为目标网络访问参数。

预先设置符合网络攻击源的预置规则,与该预置规则匹配的网络流量则为网络攻击源访问网络服务器时产生的网络流量。预置规则可以根据实际需求设置,例如,可以根据网络攻击源对应网络流量中的特征数据设置预置规则。具体的规则匹配可以采用不同的方式,例如,预置规则为网络访问参数中包括具备某个特征数据,或是网络访问参数中该特征数据出现的次数超出了一定的阈值等,本申请对此并不做限制。

本申请实施例中,所述根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接为,根据与所述目标网络访问参数属于同一次网络访问的其它至少一个网络访问参数,禁止所述网络攻击源与所述网络服务器建立连接。

在具体实现中,可以将查找的目标网络访问参数添加到阻断名单,以该目标网络访问参数作为监控网络攻击源的标识,例如,识别URI包括“and”后,确定该URI为攻击源访问网络产生,可以根据该URI监控并禁止网络攻击源对网络服务器的连接;还可以根据该目标网络访问参数,查找与之属于同一次网络访问的其它至少一个网络访问参数,将查找的网络访问参数添加到阻断名单,以该网络访问参数作为监控网络攻击源的标识。例如,识别URI包括“and”后,确定该URI为攻击源访问网络产生,进一步查找本次访问中网络攻击源的IP后,可以根据需求进行设定,既可以采用URI,也 可以根据该IP监控并禁止网络攻击源对网络服务器的连接。

因此,通过识别目标网络访问参数,并关联同一次网络访问中的至少一个网络访问参数,以关联的网络访问参数为依据进行攻击防护,从而可以对网络攻击源进行更全面的防护,避免规则匹配不完善导致防护不够全面的问题。

可以理解的,为了实现更全面的防护,还可以对网络流量中尽可能多的网络访问参数进行关联,可以在提取网络访问参数之前,确定网络流量是否为完整的Http数据,若不是,则可以进行数据重组以获得完整的Http数据。

相应优选地,所述目标网络访问参数可以包括所述网络攻击源的统一资源标识符URI;在所述根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接之前,所述方法还可以包括:

在与所述统一资源标识符对应同一次网络访问的网络流量中,提取所述网络攻击源的访问源IP。

进一步,在本申请的一种优选实施例中,可以通过实时监控网络攻击源产生的网络流量来禁止网络攻击源与网络服务器建立连接,所述步骤104可以包括:

子步骤S5、实时采集所述网络服务器发送至所述网络路由设备的网络流量;

子步骤S6、若所述网络流量中记录的访问源IP与所述网络攻击源的访问源IP匹配,则通过向所述网络攻击源或所述网络服务器发送连接复位报文来中断所述网络攻击源与所述网络服务器之间的连接。

本申请通过实时采集网络流量,识别网络流量中是否包括网络攻击源的访问源IP,若包括,则确定为网络攻击源产生的网络流量。具体优选地,可以通过解析网络流量中三次握手信息来识别网络攻击源的访问源IP,当上述步骤104部署在采集设备时,可以通过解析网络流量中的三次握手信息进行识别,当上述步骤104部署在网络服务器的某一层时,可以在该层接收到三次握手信息时,识别网络攻击源的访问源IP。

三次握手协议是指在发送数据的准备阶段,提供服务器的目标服务器和 客户端或外部服务器之间需要进行三次交互:

第一次握手:客户端或外部服务器发送SYN包(SYN=j)到目标服务器,并进入SYN_SEND状态,等待目标务器确认。

第二次握手:目标服务器收到SYN包,必须确认SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN-ACK包,此时目标服务器进入SYN_RECV状态。

第三次握手:客户端或外部服务器收到目标服务器的SYN-ACK包,向目标服务器发送确认包ACK(ACK=k+1),此包发送完毕,客户端或外部服务器和目标服务器进入ESTABLISHED状态,完成三次握手。

连接建立后,客户端或外部服务器和目标服务器就可以开始进行数据传输了。

本申请实施例中,可以通过监控客户端或外部服务器发往目标服务器的SYN报文或是目标服务器发往客户端或外部服务器的SYN-ACK报文,通过解析报文,识别网络攻击源的访问源IP,进一步可以通过向目标服务器或客户端/外部服务器发送连接复位报文(RST报文)来中断网络攻击源与网络服务器之间的连接。

进一步,在本申请的另一种优选实施例中,可以设置网络服务器阻止网络攻击源访问网络服务器,所述步骤104可以包括:

子步骤S7、将所述网络攻击源的访问源IP通知到所述网络服务器所处网络集群中包括的多个网络服务器,以由各个网络服务器在接收到所述网络攻击源的访问源IP的网络访问请求时,中断与所述网络攻击源之间的连接。

识别某个网络攻击源访问某个网络服务器产生的网络流量后,可以提取该网络攻击源的访问源IP,进一步通过识别该访问源IP达到阻止网络访问源访问的目的,具体可以通知该访问源IP至其访问的网络服务器,阻止该网络攻击源访问该网络服务器,或是同时将访问源IP发送到其访问的网络服务器所处网络集群中的多个网络服务器,阻止该网络攻击源访问该网络集群中的所有网络服务器,从而可以针对同一个网络攻击源对云计算网络的大规模扫描进行联动防护。

参照图2,示出了本申请的一种基于流量分析的网络攻击防护方法实施例2的步骤流程图,具体可以包括如下步骤:

步骤201,采集经过网络服务器与网络路由设备之间的网络流量,所述网络流量为TCP报文。

客户端或外部服务器在网络传输层与网络服务器建立网络连接,进一步在应用层进行数据传输。根据网络传输层采用的传输协议的不同,网络流量可以是对应传输协议下的不同格式的数据。以网络传输层采用的传输协议为TCP协议(Transmission Control Protocol传输控制协议)为例,对应在应用层采用的传输协议为Http(HyperText Transfer Protocol,超文本传输协议),本申请对应监控的网络流量为TCP报文。

步骤202,确定所述TCP报文为记录一次完整的网络访问过程的Http数据。

网络访问过程中经过OSI模型七层网络传输结构进行数据传输,从低到高依次为应用层、表示层、会话层、传输层、网络层、数据链路层和物理层,因此,一次完整的网络访问过程记录了经过这七层网络传输结构的Http数据。

可理解的是,记录一次完整网络访问过程的网络流量,其中包括经过多层网络传输协议增加至网络流量中的多种参数,例如完整的http数据,对种类齐全的多种网络访问参数进行规则匹配,可以实现更全面的防护,若网络流量并不完整,可以进行重组,例如针对OSI模型传输的网络流量可以进行七层重组。

判断TCP报文是否为Http数据并记录了一次完整的网络访问过程时,可以首先通过判断TCP报文中是否包括HTTP、GET、PUT或POST字段可以确定TCP报文是否为Http请求,进一步判断该报文是否为完整的Http请求。优选可以通过确定HTTP请求头结束以确定为完整的Http请求,还可以通过关键词判断、报文长度判断等任意适用的判断方法。以判断请求头结束为例,针对HTTP GET请求,若检测到以\r\n\r\n结尾,则确定该请求头结束; 针对HTTP POST请求头,若检测到以\r\n\r\n结尾,并且数据部分的长度符合请求头中Content-Length字段指定的长度,则确定该请求头结束。

步骤203,若所述TCP报文并非记录一次完整的网络访问过程的Http数据,则根据所述TCP报文携带的编号,将属于同一次网络访问的多个TCP报文重组为记录经过七层网络传输结构的一次网络访问的Http数据。

若所述TCP报文为Http数据且记录一次完整的网络访问过程,则可以直接提取其中的网络访问参数,若未记录一次完整的网络访问过程,则需要对不完整的TCP报文进行重组。

属于同一次网络访问过程的TCP报文会携带关联的报文编号,因此,可以将具备相同报文编号的TCP报文组合,得到记录一次完整的网络访问过程的Http数据。优选的,属于同一次网络访问过程的TCP报文的报文编号会以字节为单位递增,后一个TCP报文的报文编号为前一个TCP报文的报文编号与该前一个TCP报文长度之和,因此,若检测到多个TCP报文符合该编号规则,则可以确定为属于同一次网络访问过程的多个TCP报文。

步骤204,解析所述网络流量中的网络访问参数。

步骤205,通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数。

重组后得到的Http数据中记录了多种网络访问参数,可以根据实际需求对应设置一种或多种规则进行匹配,从而可以根据多种网络访问参数进行识别,对监控网络攻击源的更为全面。

步骤206,根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接。

具体可以根据查找到的目标网络访问参数为依据进行网络攻击防护,也可以提取七层重组后记录一次完整的网络访问过程的Http数据中记录的多个网络访问参数,将查找到的目标网络访问参数与Http数据中记录的至少一个网络访问参数进行关联,以所有关联的网络访问参数为依据进行网络攻击防护,具体采用何种网络访问参数为依据可以根据实际需求设置,本申请对此并不做限制。

依据本申请实施例,采集经过网络服务器与网络路由设备之间的网络流量,并从中解析出相关的网络访问参数,进一步通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数,并以此为依据监控攻击源的网络攻击,禁止网络攻击源与所述网络服务器建立连接。采用本申请实施例的方案,无需对客户端或外部服务器进行任何设置操作,降低了用户的学习成本;相比于传统需要接入WAF服务器的方式,本申请实施例针对所有访问网络服务器的客户端或外部服务器,无需接入WAF服务器,都可以进行安全检测,为网络服务器提供100%的安全防护,提高了云计算网络整体的安全性。

并且,本申请实施例通过规则匹配挖掘出网络攻击源的目标网络访问参数,以此为依据对实时的网络流量进行监控,相比于传统的临时对网络请求进行规则匹配进行检测的方式,可以减少用户访问Web服务器的延时,缩短用户获取网络服务的等待时间。

本申请实施例对应的系统可以以软件形式部署于任意适用的服务器或硬件装置,相比于硬件形式的WAF采用预定义的防护规则的方式,新的漏洞出现对规则进行更新即可,部署方便简单,大大降低了维护成本,可以更好地应用于云计算网络环境。

依据本申请实施例,还可以将挖掘的网络攻击源的目标网络访问参数通知至网络集群中所有网络服务器,从而可以针对同一个网络攻击源对云计算网络的大规模扫描进行联动防护。

进一步,传统防火墙工作在OSI(Open System Interconnect,开放式系统互联)七层模型的第三、四层,目前已无法满足web应用的七层防护需求。本申请实施例中可以重组记录经过七层网络传输结构的一次网络访问的Http数据,依据七层网络传输结构的Http数据的多种网络访问参数识别网络攻击源,以禁止其访问网络服务器,相比于仅仅工作在第三、四层的传统传统防火墙,本申请实施例的网络防护更为全面,更好地维护了网络服务器的安全。

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

为使本领域技术人员更好的理解本申请,以下通过具体示例对本申请实施例的基于流量分析的网络攻击防护方案进行说明。

参考图3示出了本申请实施例的一个示例中硬件设备连接示意图。

在ISP(Internet Service Provider,互联网服务提供商)的服务器与核心路由器之间连接分光器和分流器,流量自运营商侧进行分光,然后通过分流器,到达采集器,分发至采集器1和采集器2。采集器是镜像流量的接收服务器,一般安装有适用于处理需求的网卡万兆网卡,运行着实现本申请实施例的旁路WAF系统,可以包括流量采集子系统、HTTP重组子系统、HTTP信息提取子系统、规则匹配子系统、旁路阻断子系统和日志子系统六部分。

本申请方案的实施过程如下:

采集器驱动收到数据流量后,选取发送至目的端口的数据流量并复制,进一步由HTTP重组子系统进行七层重组。

图4示出了本申请实施例的一个示例中TCP报文重组的示意图。

HTTP重组子系统将同一个流的TCP报文段进行重组,得到完整的HTTP请求,重组的过程包括:

对于驱动上传的目的端口(此处为端口80)的每一个TCP报文,根据HTTP、GET、PUT或者POST等关键词确定为HTTP请求,则进一步检查该报文是否是完整的HTTP请求,若是,则发送到HTTP信息提取子系统,否则缓存该报文;针对缓存中的HTTP请求进行重组时,缓存重组的依据是TCP序号,重组完成后,最终将所有完整的HTTP请求发送到HTTP信息提取子系统。

HTTP信息提取子系统将重组结束的HTTP信息进行处理,提取其中的 URI、源IP、目的IP、Host、Refferer、user agent、cookie、请求参数等信息用于规则匹配。

规则匹配子系统根据HTTP信息提取子系统提取的相关信息进行所有规则的匹配,只要其中一条规则匹配成功则认为是攻击事件,并将攻击者的IP添加到阻隔名单中,禁止该IP访问所有云计算集群内的Web服务器。WAF规则为多条子规则直接的与或关键的逻辑表达式。每条子规则为单一HTTP信息的特征说明,如URI中包含“and”为一子规则,URI是HTTP信息提取子系统提取出的一种HTTP信息。

对攻击者进行阻隔是由旁路阻断子系统实施的。旁路阻断原理为通过镜像流量实时监听恶意IP的TCP三次握手信息,通过发送TCP RST报文,使恶意IP无法与VM建立TCP连接,从而达到保护云计算集群内VM的目的。图5示出了本申请实施例的一个示例中阻断攻击的示意图,具体的流程包括:

1、规则匹配子系统将命中规则的攻击者IP通过调用旁路阻隔子系统API添加到阻隔列表。

2、外部服务器向云计算VM发送SYN报文,采集器实时监控由云计算集群内机器发往外部服务器的SYN-ACK报文,将报文中包括的目的IP与阻隔列表进行精确匹配。

3、如果目的IP在阻隔列表中,则其为攻击者IP,根据SYN-ACK的TCP序号,组织一个TCP RST报文发送给云计算VM内的服务器,该报文中目的IP为云计算集群内服务器IP,源IP为攻击IP。

4、通过发送TCP RST报文可以中断攻击者IP与云计算VM之间的连接,使得阻隔列表中的攻击者IP不能完成TCP三次握手,无法继续攻击云计算集群的服务器。

5、日志子系统记录Web攻击事件和阻断攻击的事件,记录内容有攻击者源IP、被攻击IP、攻击请求、攻击命中规则编号、阻隔事件源IP、源端口、目的IP、阻断时间等。

其中,需要说明的是,也可以在在SYN报文发出时进行拦截和匹配IP的操作,旁路阻断子系统也可以向通过攻击者发送RST来达到阻断三次握 手目的。

优选地,流量采集子系统中的驱动收包模块可以有DPDK、pf_ring、libpcap、ixgbe驱动修改等多种方法实现;实现本申请实施例所述方法的代码可以采用任意适用的语言编写,例如C语言;在具体实现中可以采用任意适用的处理器架构,优选可以采用X86(The X86architecture,微处理器执行的计算机语言指令集)架构。

参照图6,示出了本申请一种基于流量分析的网络攻击防护装置实施例1的结构框图,具体可以包括如下模块:

流量采集模块301,用于采集经过网络服务器与网络路由设备之间的网络流量。

参数解析模块302,用于解析所述网络流量中的网络访问参数。

参数查找模块303,用于通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数。

连接禁止模块304,用于根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接。

本申请实施例中,优选地,所述流量采集模块可以包括:

流量复制子模块,用于采用连接在所述网络服务器与所述网络路由设备之间的网络分光器、网络交换机或集线器,复制所述网络供应商服务器发送给所述网络路由设备的网络流量。

进一步优选地,所述流量采集模块还可以包括:

流量划分子模块,用于通过网络分流器对属于同一次网络访问的所述网络流量进行划分。

本申请实施例中,优选地,所述网络访问参数包括统一资源标识符、访问源IP、访问目的IP、Host字段、访问链接来源、用户代理、cookie和访问请求参数中至少一种。

本申请实施例中,优选地,所述参数查找模块包括:

规则匹配子模块,用于针对对应同一次网络访问的网络流量,将所述网 络访问参数与所述预置规则匹配,所述预置规则指示所述网络攻击源访问所述网络服务器时携带的至少一个特征数据,所述预置规则包括多条子规则;

攻击流量确定子模块,用于若所述网络访问参数与至少一条所述子规则匹配,则确定对应的网络流量为所述网络攻击源访问所述网络服务器产生的网络流量,并将对应的网络访问参数作为目标网络访问参数。

本申请实施例中,优选地,所述连接禁止模块,可以具体用于根据与所述目标网络访问参数属于同一次网络访问的其它至少一个网络访问参数,禁止所述网络攻击源与所述网络服务器建立连接。

本申请实施例中,优选地,所述目标网络访问参数可以包括所述网络攻击源的统一资源标识符;所述装置还可以包括:

IP提取模块,用于在所述根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接之前,在与所述统一资源标识符对应同一次网络访问的网络流量中,提取所述网络攻击源的访问源IP。

本申请实施例中,优选地,所述连接禁止模块包括:

实时流量获取子模块,用于实时采集所述网络服务器发送至所述网络路由设备的网络流量;

第一连接中断子模块,用于若所述网络流量中记录的访问源IP与所述网络攻击源的访问源IP匹配,则通过向所述网络攻击源或所述网络服务器发送连接复位报文来中断所述网络攻击源与所述网络服务器之间的连接。

本申请实施例中,优选地,所述连接禁止模块包括:

第二连接中断子模块,用于将所述网络攻击源的访问源IP通知到所述网络服务器所处网络集群中包括的多个网络服务器,以由各个网络服务器在接收到所述网络攻击源的访问源IP的网络访问请求时,中断与所述网络攻击源之间的连接。

依据本申请实施例,采集经过网络服务器与网络路由设备之间的网络流量,并从中解析出相关的网络访问参数,进一步通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数,并以此为依据监控攻击源的网络攻击,禁止网络攻击源与所述网络服务器建立 连接。采用本申请实施例的方案,无需对客户端或外部服务器进行任何设置操作,降低了用户的学习成本;相比于传统需要接入WAF服务器的方式,本申请实施例针对所有访问网络服务器的客户端或外部服务器,无需接入WAF服务器,都可以进行安全检测,为网络服务器提供100%的安全防护,提高了云计算网络整体的安全性。

并且,本申请实施例通过规则匹配挖掘出网络攻击源的目标网络访问参数,以此为依据对实时的网络流量进行监控,相比于传统的临时对网络请求进行规则匹配进行检测的方式,可以减少用户访问Web服务器的延时,缩短用户获取网络服务的等待时间。

本申请还可以通过识别目标网络访问参数,关联同一次网络访问中的至少一个网络访问参数,以关联的网络访问参数为依据进行攻击防护,从而可以对网络攻击源进行更全面的防护,避免规则匹配不完善导致防护不够全面的问题。

本申请实施例对应的系统可以以软件形式部署于任意适用的服务器或硬件装置,相比于硬件形式的WAF采用预定义的防护规则的方式,新的漏洞出现对规则进行更新即可,部署方便简单,大大降低了维护成本,可以更好地应用于云计算网络环境。

此外,依据本申请实施例,还可以将挖掘的网络攻击源的目标网络访问参数通知至网络集群中所有网络服务器,从而可以针对同一个网络攻击源对云计算网络的大规模扫描进行联动防护。

参照图7,示出了本申请一种基于流量分析的网络攻击防护装置实施例2的结构框图,具体可以包括如下模块:

流量采集模块401,用于采集经过网络服务器与网络路由设备之间的网络流量,所述网络流量为TCP报文。

流量判断模块402,用于确定所述TCP报文为记录一次完整的网络访问过程的Http数据。

流量重组模块403,用于若所述TCP报文并非记录一次完整的网络访问 过程的Http数据,则根据所述TCP报文携带的编号,将属于同一次网络访问的多个TCP报文重组为记录经过七层网络传输结构的一次网络访问的Http数据。

参数解析模块404,用于解析所述网络流量中的网络访问参数。

参数查找模块405,用于通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数。

连接禁止模块406,用于根据所述目标网络访问参数禁止所述网络攻击源与所述网络服务器建立连接。

依据本申请实施例,采集经过网络服务器与网络路由设备之间的网络流量,并从中解析出相关的网络访问参数,进一步通过与预置规则匹配,查找由网络攻击源访问网络服务器产生的网络流量对应的目标网络访问参数,并以此为依据监控攻击源的网络攻击,禁止网络攻击源与所述网络服务器建立连接。采用本申请实施例的方案,无需对客户端或外部服务器进行任何设置操作,降低了用户的学习成本;相比于传统需要接入WAF服务器的方式,本申请实施例针对所有访问网络服务器的客户端或外部服务器,无需接入WAF服务器,都可以进行安全检测,为网络服务器提供100%的安全防护,提高了云计算网络整体的安全性。

并且,本申请实施例通过规则匹配挖掘出网络攻击源的目标网络访问参数,以此为依据对实时的网络流量进行监控,相比于传统的临时对网络请求进行规则匹配进行检测的方式,可以减少用户访问Web服务器的延时,缩短用户获取网络服务的等待时间。

本申请实施例对应的系统可以以软件形式部署于任意适用的服务器或硬件装置,相比于硬件形式的WAF采用预定义的防护规则的方式,新的漏洞出现对规则进行更新即可,部署方便简单,大大降低了维护成本,可以更好地应用于云计算网络环境。

依据本申请实施例,还可以将挖掘的网络攻击源的目标网络访问参数通知至网络集群中所有网络服务器,从而可以针对同一个网络攻击源对云计算网络的大规模扫描进行联动防护。

进一步,传统防火墙工作在OSI(Open System Interconnect,开放式系统互联)七层模型的第三、四层,目前已无法满足web应用的七层防护需求。本申请实施例中可以重组记录经过七层网络传输结构的一次网络访问的Http数据,依据七层网络传输结构的Http数据的多种网络访问参数识别网络攻击源,以禁止其访问网络服务器,相比于仅仅工作在第三、四层的传统传统防火墙,本申请实施例的网络防护更为全面,更好地维护了网络服务器的安全。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

在一个典型的配置中,所述计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非持续性的电脑可读媒体(transitory media),如调制的数据信号和载波。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术 语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种基于流量分析的网络攻击防护方法和一种基于流量分析的网络攻击防护装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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