一种面向目标网络的流量控制装置及方法转让专利

申请号 : CN200810117628.4

文献号 : CN101640666B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶润国周涛胡振宇

申请人 : 北京启明星辰信息技术股份有限公司北京启明星辰信息安全技术有限公司

摘要 :

本发明公开了一种面向目标网络的流量控制装置及方法;方法包括:在转发网络数据包的同时统计进出各目标主机的网络流量;当检测到异常流量时,对送入具有异常流量的目标主机的网络数据包采样;根据所采样的网络数据包样本统计,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则;根据该异常流量过滤规则对该目标主机的网络数据包进行流量控制。本发明适合在网络安全边界网关上实施的流量控制方法,能够准确发现针对目标主机的异常流量,实现对异常流量的细粒度流量控制,保障目标主机的安全。

权利要求 :

1.一种面向目标网络的流量控制装置,包括:用于转发网络数据包的转发引擎;其特征在于:还包括流量分析单元;

所述转发引擎还用于统计进出各目标主机的网络流量;当检测到异常流量时,采样送入具有异常流量的目标主机的网络数据包并将样本发给流量分析单元,以及根据流量分析单元返回的异常流量过滤规则对发往该目标主机的网络数据包进行流量控制;

所述流量分析单元根据接收的网络数据包样本统计,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则,并发送给转发引擎。

2.如权利要求1所述的装置,其特征在于,所述转发引擎检测统计进出各目标主机的网络流量是指:转发引擎按传输控制协议TCP、用户数据包协议UDP和网际控制消息协议ICMP三种报文类型对进出目标主机的网络数据包分类进行统计;

所述转发引擎检测到异常流量是指:

转发引擎当检测到进入目标主机的某类型网络数据包流量超过了预定流量阈值,并且进、出该目标主机的该类型网络数据包流量比率值超过了预定比例阈值时,认为检测到了针对该目标主机的基于该类型网络数据包的异常流量攻击;

转发引擎采样送入具有异常流量的目标主机的网络数据包并将样本发给流量分析单元是指:转发引擎从发往具有异常流量的目标主机的网络数据包中,采样该类型的网络数据包;将采样到的网络数据包发送给流量分析单元,并指明该样本对应的目标主机和网络数据包类型;

流量分析单元发送异常流量过滤规则时,指明本规则对应的目标主机和网络数据包类型。

3.如权利要求2所述的装置,其特征在于,还包括:绩效评估单元;

所述转发引擎还用于在接收到异常流量过滤规则时发送启动指示给绩效评估单元,其中携带所发送的异常流量过滤规则所针对的目标主机的名称或标识,及网络数据包类型;

还用于在收到绩效评估单元的采样指示后采样相应的网络数据包并将样本发给流量分析单元;还用于在收到绩效评估单元的合并指示后将新收到的异常流量过滤规则和原先相应的异常流量过滤规则合并,并按合并后的异常流量过滤规则对发往相应目标主机的网络数据包进行流量控制;

所述绩效评估单元用于收到启动指示后,判断启动指示中携带的名称或标识及网络数据包类型判断是否已被记录;如果已被记录则发送合并指示给转发引擎,合并指示中携带目标主机名称或标识及网络数据包类型;如果未被记录则记录启动指示中携带的名称或标识及网络数据包类型,并按照启动指示中携带的名称或标识对进出相应目标主机的、过滤后的网络数据包进行监测,如果仍存在异常流量,则发送采样指示给转发引擎,采样指示中携带所述目标主机的名称或标识,及网络数据包类型。

4.如权利要求3所述的装置,其特征在于,还包括:

与目标主机一一对应的定时器;定时器的时长为一预设值;

所述转发引擎还用于当对一目标主机开始进行流量控制时,启动该目标主机对应的定时器;当定时器到时后,检测送入该目标主机的过滤前的网络流量,如果不异常则删除应用于该目标主机的异常流量过滤规则,并发送删除指示给绩效评估单元,其中携带所要删除的异常流量过滤规则对应的目标主机和网络数据包类型;否则继续对目标主机进行流量控制并重启定时器;

所述绩效评估单元根据删除指示删除相应记录。

5.如权利要求1到4中任一项所述的装置,其特征在于,所述流量分析单元以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则具体是指:流量分析单元以所接收网络数据包样本的类型对应的TCP/IP协议包头字段值为项,提取出满足预设的最小支持度的各TCP/IP协议报文字段值为元数为一的独元频繁项目集作为当前频繁项目集;重复进行以下操作直至无法生成元数更多的频繁项目集:从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;基于异常流量网络数据包样本统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的当前频繁项目集;对所选的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为该类型网络数据包的异常流量过滤规则;

其中,对于TCP类型流量攻击,其TCP/IP协议包头包括IP包头和TCP包头;对于UDP类型流量攻击,其TCP/IP协议包头包括IP包头和UDP包头;对于ICMP类型流量攻击,其TCP/IP协议包头包括IP包头和ICMP包头,所述的TCP/IP协议包头在TCP/IP协议标准文档中都有具体的定义。

6.一种面向目标网络的实现流量控制的方法,包括:

在转发网络数据包的同时统计进出各目标主机的网络流量;当检测到异常流量时,对送入具有异常流量的目标主机的网络数据包采样;

根据所采样的网络数据包样本统计,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则;根据该异常流量过滤规则对该目标主机的网络数据包进行流量控制。

7.如权利要求6所述的方法,其特征在于,统计进出各目标主机的网络流量是指:

按传输控制协议TCP、用户数据包协议UDP和网际控制消息协议ICMP三种报文类型对进出目标主机的网络数据包分类进行统计;

所检测到异常流量是指:

当检测到进入目标主机的某类型网络数据包流量超过了预定流量阈值,并且进出该目标主机的该类型网络数据包流量比率值超过了预定比例阈值时,认为检测到了针对该目标主机的基于该类型网络数据包的异常流量攻击。

8.如权利要求6所述的方法,其特征在于,还包括:

对目标主机实行流量控制后,对进出该目标主机的、过滤后的网络流量进行监测,如果过滤后的网络流量中仍然存在异常流量,则采样实施了流量控制之后的网络数据包,生成新的异常流量过滤规则;将新的异常流量过滤规则与先前的异常流量过滤规则合并,按照合并后的异常流量过滤规则对该目标主机进行流量控制。

9.如权利要求6所述的方法,其特征在于,还包括:

当对一目标主机进行流量控制的时间到达预计控制时间后,检测送入该目标主机的过滤前的网络流量,如果不异常则删除应用于该目标主机的异常流量过滤规则;否则继续对目标主机进行流量控制并重新开始计时。

10.如权利要求6到9中任一项所述的方法,其特征在于,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则具体包括:a、以所接收网络数据包样本的类型对应的TCP/IP协议包头字段值为项,针对各包头字段值分别提取出满足预设的最小支持度的、元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;

其中,对于TCP类型流量攻击,其TCP/IP协议包头包括IP包头和TCP包头;对于UDP类型流量攻击,其TCP/IP协议包头包括IP包头和UDP包头;对于ICMP类型流量攻击,其TCP/IP协议包头包括IP包头和ICMP包头,所述的TCP/IP协议包头在TCP/IP协议标准文档中都有具体的定义;

b、从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;

c、基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的当前频繁项目集;

d、判断是否无法生成元数更多的频繁项目集,是则进行步骤e,否则返回步骤b;

e、对所选的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为该类型网络数据包的异常流量过滤规则。

说明书 :

一种面向目标网络的流量控制装置及方法

技术领域

[0001] 本发明涉及一种实现流量控制的装置及方法,具体涉及一种面向目标网络的流量控制装置及方法。

背景技术

[0002] 常见的网络安全边界网关包括防火墙、VPN(Virtual Private Network,虚拟专用网络)网关和入侵防御系统(Intrusion Protection System,简称为IPS)。网络安全边界网关通常部署在被保护网络的入口处,它对进出被保护网络的网络数据包进行检查,一旦发现网络入侵,则通过报文过滤等方式阻止网络入侵企图的发生,以将网络攻击损失减至最小。
[0003] 可以将目前常见的针对被保护网络中目标主机的网络攻击分为两类:一类为基于少量恶意构造报文的漏洞攻击;另一类为基于大量合法报文的流量攻击。前者包括各种远程缓冲区溢出攻击、泪滴攻击、SQL注入攻击等,该类攻击可以通过传统入侵检测系统的攻击特征匹配方法检测;后者通常指那些通过向受害者发送大量的合法网络数据包以消耗被攻击对象有限资源的攻击,它能够使被攻击对象失去正常的工作能力,从而无法为合法用户提供服务,这就是我们通常所说的拒绝服务攻击。由于拒绝服务攻击中所发送的报文都具有合法格式,因此很难通过传统入侵检测系统攻击特征匹配方法来进行检测和防御,需要采取新的检测和防御方法。在网络安全边界网关上进行对拒绝服务攻击之类的异常流量的检测和控制,对保证目标网络中目标主机的安全性具有重要的意义。
[0004] 现有一些可用于网络安全边界网关的流量控制技术。发明专利“CN1282331C”中描述了一种可应用于通信数据转发设备上的流量控制技术,它通过监视各接收端口的流量来发现异常流量,提取网络流量中最频繁出现的网络数据包包长和IP地址来作为异常流量的主要特征,并据此来对相关接收端口的流量进行控制;该流量控制方法主要用来控制定长短包等异常流量,它存在以下问题:1)现实环境中很难仅通过预设接收端口流量阈值来检测异常流量,阈值设置得过高导致漏报,过低则导致误报;2)该方法只能对定长短包类型异常流量进行控制,无法对那些变化多端特别是那些伪造了源IP地址的异常流量进行有效控制;3)缺乏一种衡量流量控制效果的评估机制,无法有效抵御分布式拒绝服务攻击。发明专利“200510069473.8”公布了一种流量攻击网络设备的报文特征检测方法,该方法统计所处理的报文中各报头字段的固定取值出现频率,选取那些出现频率超过攻击阈值的报文字段值作为攻击报文特征,该攻击特征检测方法存在以下问题:1)只依靠单个报文字段值描述攻击报文特征具有片面性;2)用来筛选攻击报文特征的检测阈值难于确定,设得太高则得到的攻击特征太少,设得太低则选取的攻击特征太多;3)无法直接依据基于单个字段值的攻击报文特征来进行攻击流量控制,否则会导致误杀。软件学报2006年第17卷第2期期刊论文发表了一篇标题为“基于特征聚类的路由器异常流量过滤算法”文章,该文章介绍了一种可用于路由器上的异常流量过滤算法,它通过检查输入端口是否超过预定阈值来检测异常流量,通过增量聚类算法从抽样的攻击报文中提取出现频率最高的单个报文字段值作为异常流量报文特征,并据此来实现对异常流量的控制;该异常流量过滤算法与发明专利“200510069473.8”中描述的方法存在类似的问题,不适合应用在网络安全边界网关上。
[0005] 当前,拒绝服务攻击等异常流量攻击事件都具有较强的目的性,一般都是针对某个具体的目标主机实施攻击。现有在网络中间转发设备实现的流量控制方法一般都以接收端口为检测和控制对象,并不适合直接在网络安全边界网关上使用。此外,网络中间转发设备一般无法获知被保护网络的具体信息,比如被保护目标主机的IP地址、所需要保护的网络服务等,因此,无法对转发的网络流量做细粒度划分、统计分析和细粒度流量控制,如果将网络中间转发设备的流量控制方法直接移植到网络安全边界网关上则无法对被保护网络实施最佳保护。
[0006] 发明内容
[0007] 本发明要解决的技术问题是提供一种面向目标网络的实现流量控制的装置及方法,适合在网络安全边界网关上实施的流量控制方法,能够准确发现针对目标主机的异常流量,实现对异常流量的细粒度流量控制,保障目标主机的安全。
[0008] 为了解决上述问题,本发明提供了一种面向目标网络的流量控制装置,包括:用于转发网络数据包的转发引擎及流量分析单元;
[0009] 所述转发引擎还用于统计进出各目标主机的网络流量;当检测到异常流量时,采样送入具有异常流量的目标主机的网络数据包并将样本发给流量分析单元,以及根据流量分析单元返回的异常流量过滤规则对发往该目标主机的网络数据包进行流量控制;
[0010] 所述流量分析单元根据接收的网络数据包样本统计,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则,并发送给转发引擎。
[0011] 进一步的,所述转发引擎检测统计进出各目标主机的网络流量是指:
[0012] 转发引擎按传输控制协议TCP、用户数据包协议UDP和网际控制消息协议ICMP三种报文类型对进出目标主机的网络数据包分类进行统计;
[0013] 所述转发引擎检测到异常流量是指:
[0014] 转发引擎当检测到进入目标主机的某类型网络数据包流量超过了预定流量阈值,并且进、出该目标主机的该类型网络数据包流量比率值超过了预定比例阈值时,认为检测到了针对该目标主机的基于该类型网络数据包的异常流量攻击;
[0015] 转发引擎采样送入具有异常流量的目标主机的网络数据包并将样本发给流量分析单元是指:
[0016] 转发引擎从发往具有异常流量的目标主机的网络数据包中,采样该类型的网络数据包;将采样到的网络数据包发送给流量分析单元,并指明该样本对应的目标主机和网络数据包类型;
[0017] 流量分析单元发送异常流量过滤规则时,指明本规则对应的目标主机和网络数据包类型。
[0018] 进一步的,所述的装置还包括:绩效评估单元;
[0019] 所述转发引擎还用于在接收到异常流量过滤规则时发送启动指示给绩效评估单元,其中携带所发送的异常流量过滤规则所针对的目标主机的名称或标识,及网络数据包类型;还用于在收到绩效评估单元的采样指示后采样相应的网络数据包并将样本发给流量分析单元;还用于在收到绩效评估单元的合并指示后将新收到的异常流量过滤规则和原先相应的异常流量过滤规则合并,并按合并后的异常流量过滤规则对发往相应目标主机的网络数据包进行流量控制;
[0020] 所述绩效评估单元用于收到启动指示后,判断启动指示中携带的名称或标识及网络数据包类型判断是否已被记录;如果已被记录则发送合并指示给转发引擎,合并指示中携带;如果未被记录则记录启动指示中携带的名称或标识及网络数据包类型,并按照启动指示中携带的名称或标识对进出相应目标主机的、过滤后的网络数据包进行监测,如果仍存在异常流量,则发送采样指示给转发引擎,采样指示中携带所述目标主机的名称或标识,及网络数据包类型。
[0021] 进一步的,所述的装置还包括:
[0022] 与目标主机一一对应的定时器;定时器的时长为一预设值;
[0023] 所述转发引擎还用于当对一目标主机开始进行流量控制时,启动该目标主机对应的定时器;当定时器到时后,检测送入该目标主机的过滤前的网络流量,如果不异常则删除应用于该目标主机的异常流量过滤规则,并发送删除指示给绩效评估单元,其中携带所要删除的异常流量过滤规则对应的目标主机和网络数据包类型;否则继续对目标主机进行流量控制并重启定时器;
[0024] 所述绩效评估单元根据删除指示删除相应记录。
[0025] 进一步的,所述流量分析单元以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则具体是指:
[0026] 流量分析单元以所接收网络数据包样本的类型对应的TCP/IP协议包头字段值为项,提取出满足预设的最小支持度的各TCP/IP协议报文字段值为元数为一的独元频繁项目集作为当前频繁项目集;重复进行以下操作直至无法生成元数更多的频繁项目集:从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;基于异常流量网络数据包样本统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的当前频繁项目集;对所选的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为该类型网络数据包的异常流量过滤规则;
[0027] 其中,对于TCP类型流量攻击,其TCP/IP协议包头包括IP包头和TCP包头;对于UDP类型流量攻击,其TCP/IP协议包头包括IP包头和UDP包头;对于ICMP类型流量攻击,其TCP/IP协议包头包括IP包头和ICMP包头。所述的标准TCP/IP协议包头在TCP/IP协议标准文档中都有具体的定义。
[0028] 本发明还提供了一种面向目标网络的实现流量控制的方法,包括:
[0029] 在转发网络数据包的同时统计进出各目标主机的网络流量;当检测到异常流量时,对送入具有异常流量的目标主机的网络数据包采样;
[0030] 根据所采样的网络数据包样本统计,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则;根据该异常流量过滤规则对该目标主机的网络数据包进行流量控制。
[0031] 进一步的,统计进出各目标主机的网络流量是指:
[0032] 按传输控制协议TCP、用户数据包协议UDP和网际控制消息协议ICMP三种报文类型对进出目标主机的网络数据包分类进行统计;
[0033] 所检测到异常流量是指:
[0034] 当检测到进入目标主机的某类型网络数据包流量超过了预定流量阈值,并且进出该目标主机的该类型网络数据包流量比率值超过了预定比例阈值时,认为检测到了针对该目标主机的基于该类型网络数据包的异常流量攻击。
[0035] 进一步的,所述的方法还包括:
[0036] 对目标主机实行流量控制后,对进出该目标主机的、过滤后的网络流量进行监测,如果过滤后的网络流量中仍然存在异常流量,则采样实施了流量控制之后的网络数据包,生成新的异常流量过滤规则;将新的异常流量过滤规则与先前的异常流量过滤规则合并,按照合并后的异常流量过滤规则对该目标主机进行流量控制。
[0037] 进一步的,所述的方法还包括:
[0038] 当对一目标主机进行流量控制的时间到达预计控制时间后,检测送入该目标主机的过滤前的网络流量,如果不异常则删除应用于该目标主机的异常流量过滤规则;否则继续对目标主机进行流量控制并重新开始计时。
[0039] 进一步的,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则具体包括:
[0040] a、以所接收网络数据包样本的类型对应的TCP/IP协议包头字段值为项,针对各包头字段值分别提取出满足预设的最小支持度的、元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;
[0041] 其中,对于TCP类型流量攻击,其TCP/IP协议包头包括IP包头和TCP包头;对于UDP类型流量攻击,其TCP/IP协议包头包括IP包头和UDP包头;对于ICMP类型流量攻击,其TCP/IP协议包头包括IP包头和ICMP包头。所述的标准TCP/IP协议包头在TCP/IP协议标准文档中都有具体的定义;
[0042] b、从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;
[0043] c、基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的当前频繁项目集;
[0044] d、判断是否无法生成元数更多的频繁项目集,是则进行步骤e,否则返回步骤b;
[0045] e、对所选的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为该类型网络数据包的异常流量过滤规则。
[0046] 本发明提供的技术方案充分利用了网络安全边界网关可以获知被保护网络具体信息的优势,可以方便的对进出被保护网络中目标主机的网络流量进行实时分析,准确发现针对目标主机的异常流量,采用频繁项目集挖掘算法准确提取异常流量特征,从而实现对异常流量的细粒度控制,保障目标主机的安全。本发明所述方法非常适合应用于网络安全边界网关安全产品中。

附图说明

[0047] 图1为本发明面向目标网络的流量控制装置的功能模块组成示意图;
[0048] 图2为本发明应用实例中转发引擎的处理流程图;
[0049] 图3为本发明应用实例中流量分析单元的处理流程图;
[0050] 图4为本发明应用实例中绩效评估单元的处理流程图;
[0051] 图5为本发明应用实例中针对TCP类型异常流量频繁项目挖掘方法示意图。

具体实施方式

[0052] 下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
[0053] 本文中所述的目标主机为流量控制装置进行异常流量检测和流量控制的对象;本发明方法支持同时对多个目标主机进行流量控制。
[0054] 本发明提供了一种面向目标网络的流量控制装置,如图1所示,包括:转发引擎和流量分析单元;
[0055] 所述转发引擎用于转发网络数据包,以及统计进出各目标主机的网络流量;当检测到异常流量时,采样送入具有异常流量的目标主机的网络数据包并将样本发给流量分析单元,以及根据流量分析单元返回的异常流量过滤规则对发往该目标主机的网络数据包进行流量控制;
[0056] 所述流量分析单元根据接收的网络数据包样本统计,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则,并发送给转发引擎。
[0057] 其中,转发引擎保存目标主机IP地址。
[0058] 其中,所述转发引擎检测统计进出各目标主机的网络流量可以是指:
[0059] 转发引擎按传输控制协议TCP、用户数据包协议UDP和网际控制消息协议ICMP三种报文类型对进出目标主机的网络数据包分类进行统计;
[0060] 所述转发引擎检测到异常流量可以是指:
[0061] 转发引擎当检测到进入目标主机的某类型网络数据包流量超过了预定流量阈值,并且进、出该目标主机的该类型网络数据包流量比率值超过了预定比例阈值时,认为检测到了针对该目标主机的基于该类型网络数据包的异常流量攻击;
[0062] 相应的,转发引擎采样送入具有异常流量的目标主机的网络数据包并将样本发给流量分析单元是指:转发引擎从发往具有异常流量的目标主机的网络数据包中,采样该类型的网络数据包;将采样到的网络数据包发送给流量分析单元,并指明该样本对应的目标主机和网络数据包类型;
[0063] 流量分析单元发送异常流量过滤规则时,指明本规则对应的目标主机和网络数据包类型。
[0064] 其中,转发引擎发送给流量分析单元的样本可以仅为包头部分。
[0065] 其中,所述流量控制装置还可以包括绩效评估单元;
[0066] 所述转发引擎还用于在接收到异常流量过滤规则时发送启动指示给绩效评估单元,其中携带所发送的异常流量过滤规则所针对的目标主机的名称或标识,及网络数据包类型;还用于在收到绩效评估单元的采样指示后采样相应的网络数据包并将样本发给流量分析单元;还用于在收到绩效评估单元的合并指示后将新收到的异常流量过滤规则和原先相应的异常流量过滤规则合并,并按合并后的异常流量过滤规则对发往相应目标主机的网络数据包进行流量控制;
[0067] 所述绩效评估单元用于收到启动指示后,判断启动指示中携带的名称或标识及网络数据包类型判断是否已被记录;如果已被记录则发送合并指示给转发引擎,合并指示中携带目标主机名称或标识及网络数据包类型;如果未被记录则记录启动指示中携带的名称或标识及网络数据包类型,并按照启动指示中携带的名称或标识对进出相应目标主机的、过滤后的网络数据包进行监测,如果仍存在异常流量,则发送采样指示给转发引擎,采样指示中携带所述目标主机的名称或标识,及网络数据包类型。
[0068] 其中,所述流量控制装置还可以包括与目标主机一一对应的定时器;定时器的时长为一预设值,根据实际需要决定;
[0069] 所述转发引擎还用于当对一目标主机开始进行流量控制时,启动该目标主机对应的定时器;以及当定时器到时后,检测送入该目标主机的过滤前的网络流量,如果不异常则删除应用于该目标主机的异常流量过滤规则,并发送删除指示给绩效评估单元,其中携带所要删除的异常流量过滤规则对应的目标主机和网络数据包类型;否则继续对目标主机进行流量控制并重启定时器;
[0070] 所述绩效评估单元根据删除指示删除相应记录。
[0071] 其中,所述流量分析单元以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则具体可以是指:
[0072] 流量分析单元以所接收网络数据包样本的类型对应的TCP/IP协议包头字段值为项,提取出满足预设的最小支持度的各TCP/IP协议报文字段值为元数为一的独元频繁项目集作为当前频繁项目集;重复进行以下操作直至无法生成元数更多的频繁项目集:从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;基于异常流量网络数据包样本统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的当前频繁项目集;对所选的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为该类型网络数据包的异常流量过滤规则。
[0073] 其中,所述报文过滤比例阈值可以根据经验值预先设定,也可以动态计算;假设一个网络设备中,报文流量平稳时平均为每秒20M字节,在一个时间段突然增加到每秒100M字节,那么可以将所述报文过滤比例阈值定为80%,即准备将突增的报文过滤掉。排序后,元数最多并且支持度最高的频繁项目集排在第一位,所述“依次选取”就是指从第一位开始,按序选取。
[0074] 其中,对于TCP类型流量攻击,其TCP/IP协议包头包括IP包头和TCP包头;对于UDP类型流量攻击,其TCP/IP协议包头包括IP包头和UDP包头;对于ICMP类型流量攻击,其TCP/IP协议包头包括IP包头和ICMP包头。所述的标准TCP/IP协议包头在TCP/IP协议标准文档中都有具体的定义。
[0075] 本发明还提供了一种面向目标网络的实现流量控制的方法,包括:
[0076] 在转发网络数据包的同时统计进出各目标主机的网络流量;当检测到异常流量时,对送入具有异常流量的目标主机的网络数据包采样;
[0077] 根据所采样的网络数据包样本统计,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则;根据该异常流量过滤规则对所述目标主机的网络数据包进行流量控制。
[0078] 其中,该方法还包括:预先配置目标主机IP地址。
[0079] 其中,统计进出各目标主机的网络流量可以是指:
[0080] 按传输控制协议TCP、用户数据包协议UDP和网际控制消息协议ICMP三种报文类型对进出目标主机的网络数据包分类进行统计;
[0081] 所检测到异常流量可以是指:
[0082] 当检测到进入目标主机的某类型网络数据包流量超过了预定流量阈值,并且进出该目标主机的该类型网络数据包流量比率值超过了预定比例阈值时,认为检测到了针对该目标主机的基于该类型网络数据包的异常流量攻击;
[0083] 相应的,对送入具有异常流量的目标主机的网络数据包采样是指:从发往具有异常流量的目标主机的网络数据包中,采样该类型的网络数据包。
[0084] 本发明所述的异常流量检测方法充分考虑了针对目标主机的异常流量攻击特征,即当异常流量攻击目标主机时,从统计上看存在两个特点:1)与正常工作状态相比,发往目标主机的网络流量非常大;2)与正常工作状态相比,涌向目标主机的网络流量比由目标主机发出的网络流量大很多。本发明所述异常流量检测方法与传统仅基于输入网络流量阈值的检测方法相比,能够有效抑制误报。
[0085] 其中,该方法还可以包括:
[0086] 对目标主机实行流量控制后,对进出该目标主机的、过滤后的网络流量进行监测,如果过滤后的网络流量中仍然存在异常流量,则采样过滤后的网络数据包,生成新的异常流量过滤规则;将新的异常流量过滤规则与先前的异常流量过滤规则合并,按照合并后的异常流量过滤规则对该目标主机进行流量控制。
[0087] 其中,该方法还可以包括:
[0088] 当对一目标主机进行流量控制的时间到达预设时间后,检测送入该目标主机的过滤前的网络流量,如果不异常则删除应用于该目标主机的异常流量过滤规则;否则继续对目标主机进行流量控制并重新开始计时。所述预设时间根据实际需要决定;
[0089] 其中,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集作为应用于该目标主机的异常流量过滤规则具体可以包括:
[0090] a、以所接收网络数据包样本的类型对应的TCP/IP协议包头字段值为项,针对各包头字段值分别提取出满足预设的最小支持度的、元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;
[0091] b、从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;
[0092] c、基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的当前频繁项目集;
[0093] d、重复步骤b至c,直至无法生成元数更多的频繁项目集。
[0094] e、对所选的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为该类型网络数据包的异常流量过滤规则。
[0095] 其中,对于TCP类型流量攻击,其TCP/IP协议包头包括IP包头和TCP包头;对于UDP类型流量攻击,其TCP/IP协议包头包括IP包头和UDP包头;对于ICMP类型流量攻击,其TCP/IP协议包头包括IP包头和ICMP包头。所述的标准TCP/IP协议包头在TCP/IP协议标准文档中都有具体的定义。
[0096] 下面用本发明的一个应用实例进一步加以说明。
[0097] 本应用实例中,面向目标网络的流量控制装置包括:转发引擎和流量分析单元。
[0098] 首先,在转发引擎中配置目标主机IP地址,在具体实施时,可以通过配置文件方式来定义需要保护的目标主机的IP地址。
[0099] 转发引擎的处理流程如图2所示,包括:
[0100] 201、转发引擎监视进出目标主机的网络数据包,当发现发往目标主机的某类型网络数据包流量超过了预定阈值并且进出该目标主机的该类型网络数据包流量比率值超过了预定阈值时,就开始实施流量控制措施;
[0101] 202、在接下来的预定时间段内,在进行正常的网络数据包处理的同时,采样所处理的网络数据包,将样本转发给流量分析单元;
[0102] 203、时间段结束后,指示流量分析单元开始异常流量过滤规则提取;之后,在进行正常的网络数据包处理的同时,等待来自流量分析单元的异常流量过滤规则;
[0103] 204、当接收到流量分析单元发送来的异常流量过滤规则后,安装异常流量过滤规则,并启动绩效评估单元监控流量控制效果;
[0104] 205、根据异常流量过滤规则对发往目标主机的网络数据包进行过滤;
[0105] 206、在对发往目标主机的网络数据包进行流量控制的同时,定期对发往目标主机的在实施流量控制之前的网络流量进行检查,如果发现网络流量正常,表示异常流量攻击已退,进行步骤207;不正常则进行205,即继续依据异常流量过滤规则对发往目标主机的网络数据包进行流量控制;
[0106] 207、此时删除针对目标主机的异常流量过滤规则;结束流量控制。
[0107] 在具体实施本发明时,转发引擎可按如下方式判定一个网络数据包是否为发往目标主机的网络数据包,还是由目标主机发出的网络数据包:当转发引擎从外网口接收到一个网络数据包时,取其目的IP地址,如果目的IP地址等于某目标主机IP地址,则判定该网络数据包为发往该目标主机的网络数据包;当转发引擎从内网口接收到一个网络数据包时,取其源IP地址,如果源IP地址正好等于某目标主机的IP地址,则判定该网络数据包为由该目标主机发出的网络数据包。
[0108] 转发引擎在监视进出目标主机的网络流量时,是按TCP、UDP和ICMP三种报文类型来进行分类统计的。具体方法为:首先设定一个统计时间段,在该时间段内,计数发往目标主机的三类网络数据包数量以及由目标主机发出的三类网络数据包数量;时间段结束,对于每一类网络报文统计结果,检查发往目标主机的该类型网络数据包流量是否超过了预定阈值,同时检查发往目标主机的该类型网络数据包流量与由目标主机发出的该类型网络数据包流量的比率值是否超过了预定阈值,如果两个条件同时满足,则检测到了针对该目标主机的该网络数据包类型的异常流量攻击。
[0109] 当检测到异常流量时,转发引擎将采样发往目标主机的网络数据包样本并转发给流量分析单元进行分析。转发引擎采样的只是某段时间内的发往目标主机的网络数据包,而不是所有的网络数据包;并且,由于流量分析单元只是对网络数据包的TCP/IP协议包头进行分析,因此这里并不需要转发一个完整的网络数据包,而可以只是一个网络数据包包头。由于TCP/UDP/ICMP类型的网络数据包包头长度不同,因此,采样时截取的包头长度也可以不一样。具体实施时,对于TCP类型网络数据包,可以只截取前60个字节的包头(不包括MAC帧头),对于UDP类型网络数据包,可以只截取前48个字节的包头(不包括MAC帧头),对于ICMP类型网络数据包,可以只截取前32个字节的包头(不包括MAC帧头)。
[0110] 流量分析单元采用频繁项目集挖掘算法来抽取网络数据包样本的共同特征,该算法类似于数据挖掘算法中的经典Apriori算法,以各TCP/IP协议包头字段值为项,提取满足预设最小支持度的频繁项目集为应用于该目标主机的异常流量过滤规则。流量分析单元的处理流程如图3所示,包括:
[0111] 301、以各TCP/IP协议包头字段值为项,提取出满足预设的最小支持度的各TCP/IP协议报文字段值为元数为一的独元频繁项目集作为当前频繁项目集;
[0112] 302、从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;
[0113] 303、基于异常流量网络数据包样本统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的当前频繁项目集;
[0114] 304、重复步骤302和步骤303,直至无法生成元数更多的当前频繁项目集,然后进行步骤305;
[0115] 305、对所选的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为该类型网络数据包的异常流量过滤规则。
[0116] 实施频繁项目集挖掘算法需要对数据进行多次扫描,因此在具体实施流量分析单元模块时,需要缓存由转发引擎发送来的网络数据包。可以采用循环缓存区来存储网络数据包样本,并且可以为TCP/UDP/ICMP三类报文构建单独的循环缓冲区。
[0117] 步骤301的具体步骤可以为:对于报文抽样缓冲区中每一个网络数据包,取选定包头字段的值,然后查询哈希表,如果该包头字段值在哈希表中,则对应计数器加一、否则创建新的计数器值为一的项并插入到哈希表中;最后,遍历哈希表,找到所有计数值满足预定的最小支持度的项目。所求的所有满足最小支持度的字段值即为本项目的独元频繁项目。实际应用中也可以采用其它方法找到所有满足最小支持度的项目取值。
[0118] 以TCP类型网络数据包为例,图5说明了步骤302和步骤303的工作过程。在该实施例中,假设通过步骤301从TCP类型流量攻击报文中求得的所有独元频繁项目集如下:对于IP生存期项,求得的两个独元频繁项目集为TTL1和TTL2;对于IP标识项,求得的两个独元频繁项目集为ID1和ID2;对于TCP标识项,求得的两个独元频繁项目集为Flag1和Flag2;按照步骤302,首先基于这些独元频繁项目集生成候选二元项目集,总共可以生成个候选频繁项目集,由于来自同一个项的两个独元频繁项目集组成的二元候选项目集在本发明中没有意义需要裁减掉,因此,最后剩下12个二元候选项目集;步骤303则基于TCP类型报文抽样缓冲区中的报文统计这12个二元候选项目集的支持度,最后,依据最小支持度确定二元频繁项目集为图5中第二行所示的7个二元频繁项目集。由于所求的二元频繁项目集不为空,所以以所求的二元频繁项目集为当前频繁项目集,重复执行步骤302,并且由于来自同一个包头字段的两个项不能同时出现在三元候选项目中,因此可以得到8个候选三元项目集;再根据频繁项目集性质对其进行裁减,将这8个候选三元项目集减少为2个;最后执行步骤3.3,得到的三元频繁项目集为2个:{TTL1,ID1,Flag1},{TTL1,ID2,Flag2}。由于这里得到的三元频繁项目集不为空,因此,设置所求的三元频繁项目集为当前频繁项目集,重复执行步骤302,得到的候选四元项目集为空,整个频繁项目挖掘过程结束,所求的频繁项目集的最大元数为3。
[0119] 步骤305最后还需要对所找到的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为该类型网络数据包的异常流量过滤规则。假设预先设定的报文过滤比例阈值为η,具体步骤为:首先,取排序后的第1个频繁项目集,考察被选频繁项目集的集合过滤的报文抽样缓冲区的报文比例λ,如果λ大于预先设定的报文过滤比例阈值η,则输出按降序排序后的第1个频繁项目集为所求的攻击报文特征并结束;否则,取排序后的前2个频繁项目集,考察被选频繁项目集集合过滤的报文抽样缓冲区的报文比例λ,如果λ大于预先设定的报文过滤比例阈值η,则输出排序后的前2个频繁项目集为所求的攻击报文特征并结束;否则,取排序后的前3个频繁项目集,考察被选频繁项目集集合过滤的报文抽样缓冲区的报文比例λ,如果λ大于预先设定的报文过滤比例阈值η,则输出排序后的前3个频繁项目集为所求的攻击报文特征并结束;以此类推,直至所考察的排序后的前n个频繁项目集过滤的报文抽样缓冲区的报文比例λ大于预先设定的报文过滤比例阈值η,则输出排序后的前n个频繁项目集为所求的攻击报文特征并结束。
[0120] 绩效评估单元的处理流程如图4所示,包括:
[0121] 401、绩效评估单元在流量控制阶段监视发往目标主机的在实施了流量控制之后的网络流量;
[0122] 402、判断过滤后的网络流量中是否仍然存在异常流量,是则进行步骤403;否则结束监视;
[0123] 403、指示转发引擎采样过滤后的网络数据包供流量分析单元分析;
[0124] 404、指示流量分析单元对过滤后的网络数据包样本进行异常流量过滤规则提取;
[0125] 405、指示转发引擎将所提取的新的异常流量过滤规则与先前的异常流量过滤规则合并,以实现对发往目标主机的异常流量实施更为严格的流量控制;结束本次的监视。
[0126] 接下来可以再从步骤401开始监视按照合并后的异常流量过滤规则进行流量控制后的情况。
[0127] 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。