CN101640594B - 一种在网络设备上提取流量攻击报文特征的方法和单元 - Google Patents
一种在网络设备上提取流量攻击报文特征的方法和单元 Download PDFInfo
- Publication number
- CN101640594B CN101640594B CN 200810117499 CN200810117499A CN101640594B CN 101640594 B CN101640594 B CN 101640594B CN 200810117499 CN200810117499 CN 200810117499 CN 200810117499 A CN200810117499 A CN 200810117499A CN 101640594 B CN101640594 B CN 101640594B
- Authority
- CN
- China
- Prior art keywords
- message
- frequent item
- item sets
- type
- header
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种在网络设备上提取流量攻击报文特征的方法和单元;方法包括:选定需要提取报文特征的、作为攻击流量类型的网络报文类型;以选定类型报文的报头字段为项,在接收到的选定类型的网络报文中,找到所有满足最小支持度的频繁项目集;对所找到的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为选定类型报文的攻击报文特征。本发明克服了流量特征提取方法的片面性,并且能够精确过滤,避免误杀,保障合法网络流量的正常通过。
Description
技术领域
本发明涉及网络设备的安全保护,具体涉及一种在网络设备上提取流量攻击报文特征的方法和单元。
背景技术
网络系统中的网络设备,常见的如交换机、路由器等,它负责网络报文的转发,是网络系统中的关键网络设备。但这些设备经常遭受到流量攻击。拒绝服务攻击(Denial of Service,简称为DoS)和分布式拒绝服务攻击(Distributed Denial of Service,简称DDoS)为最常见的流量攻击技术。拒绝服务攻击是指攻击者使用合理的服务请求来占用被攻击方过多的服务资源,从而使合法用户无法得到服务的响应。分布式拒绝服务攻击是一种从多个攻击点同时对同一个目标进行DoS攻击的群体行为。当前,多数分布式拒绝服务攻击都是由僵尸网络发起,它们协同作战,采取多对一模式来攻击网络目标,以达到它们的经济利益目标。近年来,拒绝服务攻击特别是分布式拒绝服务攻击正呈现出愈演愈烈的趋势,对该类攻击流量进行控制具有非常重要的意义。但由于拒绝服务攻击和分布式拒绝服务攻击过程中所发送的报文都具有合法格式,并且具有多变性,无法通过传统入侵检测中预先提取的攻击特征来进行防御,一般需要在实时状态下动态提取。
中国专利“CN1282331C”中描述了一种应用于通信数据转发设备上的流量控制技术,它通过监视各接收端口的流量来发现异常流量,提取网络流量中最频繁出现的数据包包长和IP地址作为异常流量主要特征。该流量控制方法中所述的异常流量特征提取方法只能对定长短包类型异常流量进行特征提取,无法对那些变化多端特别是那些伪造了源IP地址的异常流量进行特征提取。中国专利“200510069473.8”公布了一种流量攻击网络设备的报文特征检测方法,该方法统计所处理的报文中各报头字段的固定取值出现频率,选取那些出现频率超过攻击阈值的报文字段值作为攻击报文特征。该流量攻击特征检测方法只依靠单个报文字段值来描述流量攻击报文特征,具有片面性,如果依此来执行流量控制,则可能导致误杀。软件学报2006年第17卷第2期期刊论文发表了一篇题为“基于特征聚类的路由器异常流量过滤算法”文章,该文章介绍了一种可用于路由器上的异常流量过滤算法,它通过检查输入端口是否超过预定阈值来检测异常流量,通过增量聚类算法从抽样的攻击报文中提取出现频率最高的单个报文字段值作为异常流量报文特征。该论文中所述的流量特征提取方法同样具有片面性。
发明内容
本发明要解决的技术问题是提供一种在网络设备上提取流量攻击报文特征的方法和单元,克服了流量特征提取方法的片面性,并且能够精确过滤,避免误杀,保障合法网络流量的正常通过。
为了解决上述问题,本发明提供了一种在网络设备上提取流量攻击报文特征的方法,包括:
选定需要提取报文特征的、作为攻击流量类型的网络报文类型;
以选定类型报文的报头字段为项,在接收到的选定类型的网络报文中,找到所有满足最小支持度的频繁项目集;
对所找到的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为选定类型报文的攻击报文特征。
进一步的,所述的方法具体包括以下步骤:
a、选定需要提取报文特征的、作为攻击流量类型的网络报文类型,并构建一个攻击报文抽样缓冲区;
b、在检测周期内对所述网络设备的特定接收端口接收的选定类型报文进行抽样,并存储到报文抽样缓冲区;
c、以选定网络报文类型的报头字段为项,对报文抽样缓冲区中的网络报文进行频繁项目集挖掘,找到所有满足最小支持度的频繁项目集;
d、对所找到的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足预先设定的报文过滤比例阈值的频繁项目集最小集为所选类型网络报文的报文攻击特征。
进一步的,所述步骤a中:
构建的报文抽样缓冲区为循环缓冲区,允许容纳的最大报文数量是固定的,当要存储的网络报文数量超过最大报文容量时,最先进入的网络报文将被覆盖。
进一步的,所述步骤b中:
仅将抽样的网络报文报头存储到报文抽样缓冲区。
进一步的,所述步骤a和步骤b之间具体还包括:
ab1、统计一个统计时间段内网络设备各接收端口的选定类型报文到达速率;
ab2、统计时间段结束后,判断是否存在某一接收端口的选定类型报文到达速率超过检测阈值,存在则启动检测周期的计时,执行步骤b;否则返回ab1;
步骤b中的特定接收端口是指:选定类型报文到达速率超过检测阈值的接收端口。
进一步的,步骤b中:
报文抽样频率为最后一个统计时间段内所述特定接收端口所接收到的选定类型报文数量,除以报文缓冲区最大报文容量所得到的商。
进一步的,所述步骤c具体包括:
c1、以选定类型的网络报文的各报头字段为项,针对各报头字段值分别提取出满足预设的最小支持度的、元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;
c2、从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;
c3、基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的频繁项目集,并设置当前频繁项目集为所求的所有元数增一的频繁项目集;
c4、重复步骤c2至c3,直至无法生成元数更多的频繁项目集。
进一步的,网络报文类型包括传输控制协议TCP类型、用户数据包协议UDP类型和网际控制消息协议ICMP类型;
其中,对于TCP类型流量攻击报文,其TCP/IP协议报头包括IP报头和TCP报头;对于UDP类型流量攻击报文,其TCP/IP协议报头包括IP报头和UDP报头;对于ICMP类型流量攻击报文,其TCP/IP协议报头包括IP报头和ICMP报头。
本发明还提供了一种在网络设备上提取流量攻击报文特征的单元,包括:
报文收集模块,用于选定需要提取报文特征的、作为攻击流量类型的网络报文类型,并收集接收到的选定类型的网络报文;
频繁项目集挖掘模块,用于以选定类型报文的报头字段为项,在接收到的选定类型的网络报文中,找到所有满足最小支持度的频繁项目集;
攻击报文特征提取模块,用于先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足预先设定的报文过滤比例阈值的频繁项目集最小集为所选类型网络报文的报文攻击特征。
进一步的,报文收集模块还包括攻击报文抽样缓冲区;
报文收集模块收集接收到的选定类型的网络报文是指:报文收集模块在检测周期内对所述网络设备的特定接收端口接收的选定类型报文进行抽样,并存储到报文抽样缓冲区。
进一步的,所述报文抽样缓冲区可以为循环缓冲区,允许容纳的最大报文数量是固定的,当要存储的网络报文数量超过最大报文容量时,最先进入的网络报文将被覆盖。
进一步的,报文收集模块仅将抽样的网络报文报头存储到报文抽样缓冲区。
进一步的,报文收集模块在检测周期内对所述网络设备的特定接收端口接收的选定类型报文抽样是指:
报文收集模块统计一个统计时间段内网络设备各接收端口的选定类型报文到达速率;统计时间段结束后,判断是否存在某一接收端口的选定类型报文到达速率超过检测阈值,存在则启动检测周期的计时,开始对上述接收端口接收的选定类型报文进行抽样,直到检测周期结束;否则继续统计下一个统计时间段内网络设备各接收端口的选定类型报文到达速率。
进一步的,报文收集模块确定报文抽样频率为最后一个统计时间段内所述特定接收端口所接收到的选定类型报文数量,除以报文缓冲区最大报文容量所得到的商。
进一步的,频繁项目集挖掘模块以选定类型报文的报头字段为项,在接收到的选定类型的网络报文中,找到所有满足最小支持度的频繁项目集是指:
频繁项目集挖掘模块以选定类型的网络报文的各报头字段为项,针对各报头字段值分别提取出满足预设的最小支持度的、元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;重复进行以下操作直至无法生成元数更多的频繁项目集:从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的频繁项目集,并设置当前频繁项目集为所求的所有元数增一的频繁项目集。
进一步的,网络报文类型包括传输控制协议TCP类型、用户数据包协议UDP类型和网际控制消息协议ICMP类型;
其中,对于TCP类型流量攻击报文,其TCP/IP协议报头包括IP报头和TCP报头;对于UDP类型流量攻击报文,其TCP/IP协议报头包括IP报头和UDP报头;对于ICMP类型流量攻击报文,其TCP/IP协议报头包括IP报头和ICMP报头。
本发明的技术方案采用频繁项目集挖掘方法从抽样的攻击报文流量中提取满足预定攻击阈值的频繁项目集来作为流量攻击报文特征,这种以报文字段组合来描述流量攻击报文特征的方法克服了现有仅利用单个报文字段来描述流量攻击报文主要特征的片面性;并且由于允许使用多个报文字段来描述攻击流量报文特征,使得网络设备能够据此实现对攻击流量的精确过滤,同时保障合法网络流量的正常通过。
附图说明
图1为本发明提取流量攻击报文特征的方法的具体实施流程图;
图2为标准TCP/IP协议中的IP报头结构;
图3为标准TCP/IP协议中的TCP报头结构;
图4为本发明应用实例中,循环报文缓冲区的逻辑结构示意图;
图5为本发明应用实例中频繁项目集挖掘方法流程示意图;
图6为应用实例中频繁项目挖掘方法示意图。
具体实施方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
本发明提供一种在网络设备上提取流量攻击报文特征的方法,包括:
选定需要提取报文特征的、作为攻击流量类型的网络报文类型;
以选定类型报文的报头字段为项,在接收到的选定类型的网络报文中,找到所有满足最小支持度的频繁项目集;
对所找到的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为选定类型报文的攻击报文特征。
其中,所述报文过滤比例阈值可以根据经验值预先设定,也可以动态计算;假设一个网络设备中,报文流量平稳时平均为每秒20M字节,在一个时间段突然增加到每秒100M字节,那么可以将所述报文过滤比例阈值定为80%,即准备将突增的报文过滤掉。
排序后,元数最多并且支持度最高的频繁项目集排在第一位,所述“依次选取”就是指从第一位开始,按序选取。
其中,该方法如图1所示,可以具体包括以下步骤:
a、选定需要提取报文特征的、作为攻击流量类型的网络报文类型,并构建一个攻击报文抽样缓冲区;
b、在预定定义时间段内对所述网络设备的特定接收端口接收的选定类型报文进行抽样,并存储到报文抽样缓冲区;
c、以选定网络报文类型的报头字段为项,对报文抽样缓冲区中的网络报文进行频繁项目集挖掘,找到所有满足最小支持度的频繁项目集;
d、对所找到的所有频繁项目集先按照元数降序排序,再按照支持度降序排序;在排列后的频繁项目集中,按序选取一组满足预先设定的报文过滤比例阈值的频繁项目集最小集为选定类型报文的攻击报文特征。
其中,所述步骤a中构建的报文抽样缓冲区可以为循环缓冲区,它允许容纳的最大报文数量是固定的,当要存储的网络报文数量超过最大报文容量时,最先进入的网络报文将被覆盖。
其中,步骤b中可以仅将抽样的网络报文报头存储到报文抽样缓冲区。
其中,所述步骤a和步骤b之间具体还可以包括:
ab1、统计一个统计时间段内网络设备各接收端口的选定类型报文到达速率;
ab2、统计时间段结束后,判断是否存在某一接收端口的选定类型报文到达速率超过检测阈值,存在则启动检测周期的计时,执行步骤b;否则返回ab1。
所述统计时间段和检测周期根据具体的网络设备和经验值设定,可以但不限于都设置为2秒;所述检测阈值可以根据具体的网络设备、报文类型和经验值预先设定——比如在路由器中,某类型报文按照经验,速率应该不超过X,则检测阈值为X,当然也可以实际计算,比如将流量平稳时的最高速率作为检测阈值。
步骤b中的特定接收端口可以是指:选定类型报文到达速率超过检测阈值的接收端口。
其中,步骤b中:报文抽样频率为最后一个预先定义的统计时间段内所述特定接收端口所接收到的选定类型报文数量除以报文缓冲区最大报文容量所得到的商。
可以当存在某一接收端口的选定类型报文到达速率超过检测阈值后,执行步骤b前确定所述报文抽样频率。
其中,所述步骤c进一步可以包括:
c1、以选定类型的网络报文的各报头字段为项,针对各报头字段值分别提取出满足预设的最小支持度的、元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;
c2、从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;
c3、基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的频繁项目集,并设置当前频繁项目集为所求的所有元数增一的频繁项目集;
c4、重复步骤c2至c3,直至无法生成元数更多的频繁项目集。
其中,网络报文类型可以包括TCP(传输控制协议)类型、UDP(用户数据包协议)类型和ICMP(网际控制消息协议)类型。
其中,对于TCP类型流量攻击报文,其TCP/IP协议报头包括IP报头和TCP报头;对于UDP类型流量攻击报文,其TCP/IP协议报头包括IP报头和UDP报头;对于ICMP类型流量攻击报文,其TCP/IP协议报头包括IP报头和ICMP报头。所述的标准TCP/IP协议报头在TCP/IP协议标准文档中都有具体的定义。
上述方法提取的流量攻击报文特征可以作为报警输出,或者以依此生成访问控制列表ACL,然后下发给所述设备的流量控制模块或者第三方流量控制设备进行流量控制。
本发明还提供了一种在网络设备上提取流量攻击报文特征的单元,包括:报文收集模块、频繁项目集挖掘模块、攻击报文特征提取模块;
报文收集模块用于选定需要提取报文特征的、作为攻击流量类型的网络报文类型,并收集接收到的选定类型的网络报文;
频繁项目集挖掘模块用于以选定类型报文的报头字段为项,在接收到的选定类型的网络报文中,找到所有满足最小支持度的频繁项目集;
攻击报文特征提取模块,用于先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足预先设定的报文过滤比例阈值的频繁项目集最小集为所选类型网络报文的报文攻击特征。
其中,报文收集模块还可以包括攻击报文抽样缓冲区;
报文收集模块收集接收到的选定类型的网络报文是指:报文收集模块在检测周期内对所述网络设备的特定接收端口接收的选定类型报文进行抽样,并存储到报文抽样缓冲区。
其中,所述报文抽样缓冲区可以为循环缓冲区,允许容纳的最大报文数量是固定的,当要存储的网络报文数量超过最大报文容量时,最先进入的网络报文将被覆盖。
其中,报文收集模块可以仅将抽样的网络报文报头存储到报文抽样缓冲区。
其中,所述报文收集模块在检测周期内对所述网络设备的特定接收端口接收的选定类型报文进行抽样可以是指:
报文收集模块统计一个统计时间段内网络设备各接收端口的选定类型报文到达速率;统计时间段结束后,判断是否存在某一接收端口的选定类型报文到达速率超过检测阈值,存在则启动检测周期的计时,开始对上述接收端口接收的选定类型报文进行抽样,直到检测周期结束;否则继续统计下一个统计时间段内网络设备各接收端口的选定类型报文到达速率。
其中,报文收集模块可以确定报文抽样频率为最后一个统计时间段内所述特定接收端口所接收到的选定类型报文数量,除以报文缓冲区最大报文容量所得到的商。
频繁项目集挖掘模块以选定类型报文的报头字段为项,在接收到的选定类型的网络报文中,找到所有满足最小支持度的频繁项目集可以是指:
频繁项目集挖掘模块以选定类型的网络报文的各报头字段为项,针对各报头字段值分别提取出满足预设的最小支持度的、元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;重复进行以下操作直至无法生成元数更多的频繁项目集:从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的频繁项目集,并设置当前频繁项目集为所求的所有元数增一的频繁项目集。
其中,网络报文类型可以包括TCP(传输控制协议)类型、UDP(用户数据包协议)类型和ICMP(网际控制消息协议)类型。
其中,对于TCP类型流量攻击报文,其TCP/IP协议报头包括IP报头和TCP报头;对于UDP类型流量攻击报文,其TCP/IP协议报头包括IP报头和UDP报头;对于ICMP类型流量攻击报文,其TCP/IP协议报头包括IP报头和ICMP报头。所述的标准TCP/IP协议报头在TCP/IP协议标准文档中都有具体的定义。
下面用本发明的一个应用实例进一步加以说明。
由于在开始提取流量攻击报文特征之前,需先从TCP/UDP/ICMP三种报文类型中选择某种报文类型作为本次流量攻击的报文类型。对这三类攻击流量的报文特征提取过程类似。为简化文档篇幅,这里仅举例TCP类型流量攻击报文的自动特征提取过程。
图2为标准TCP/IP协议中描述的IP报头格式,其中包括以下字段:
版本(Version)字段:占4比特,用来表明IP协议实现的版本号;
报头长度(Internet Header Length,IHL)字段:占4比特,是头部占32比特的数字,包括可选项;
服务类型(Type of Service,TOS)字段:占8比特,其中前3比特为优先权子字段;
总长度字段:占16比特,指明整个数据报的长度(以字节为单位);
标志字段(ID):占16比特,用来唯一地标识主机发送的每一份数据报;
标志位字段:占3比特,标志一份数据报是否要求分段;
段偏移字段:占13比特,如果一份数据报要求分段的话,此字段指明该段偏移距原始数据报开始位置;
生存期(TTL:Time to Live)字段:占8比特,用来设置数据报最多可以经过的路由器数;
协议字段:占8比特,指明IP层所封装的上层协议类型,如ICMP(1)、IGMP(2)、TCP(6)、UDP(17)等;
头部校验和字段:占16比特,内容是根据IP头部计算得到的校验和码;
源IP地址、目标IP地址字段:各占32比特,用来标明发送IP数据报文的源主机地址和接收IP报文的目标主机地址;
可选项字段:占32比特,用来定义一些任选项,如记录路径、时间戳等。
图3为TCP/IP协议中TCP报头格式,其中包括以下字段:
源、目标端口号字段:占16比特,TCP协议通过使用“端口”来标识源端和目标端的应用进程;
顺序号字段:占32比特,用来标识从TCP源端向TCP目标端发送的数据字节流;
确认号字段:占32比特,只有ACK标志为1时,确认号字段才有效,它包含目标端所期望收到源端的下一个数据字节;
头部长度字段:占4比特,给出头部占32比特的数目;
标志位字段(U、A、P、R、S、F):占6比特,各比特的含义如下:URG:紧急指针(urgent pointer)有效;ACK:确认序号有效;PSH:接收方应该尽快将这个报文段交给应用层;RST:重建连接;SYN:发起一个连接;FIN:释放一个连接;
窗口大小字段:占16比特,此字段用来进行流量控制;
TCP校验和字段:占16比特,对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证;
紧急指针字段:占16比特,它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号;
选项字段:占32比特,可能包括“窗口扩大因子”、“时间戳”等选项。
假设选定的攻击流量报文类型为TCP报文类型,在开始提取流量攻击报文特征前,首先构建攻击报文抽样缓冲区。图4为本发明所述的循环报文缓冲区逻辑结构。该循环报文缓冲区允许容纳的最大报文数量是固定的,即总的单元格个数;该循环报文缓冲区存在一个报文头指针start和一个报文尾指针end;报文缓冲区初始化时,报文头指针start和报文尾指针end同时指向报文缓冲区第一个单元格;然后,每向循环报文缓冲区插入一个网络报文,报文头指针start将顺时针向前移动一个单元格,当报文头指针start移动到报文缓冲区最后一个单元格时,如果持续有网络报文插入,则报文头指针start重新指向报文缓冲区第一个单元格,这样,最新插入的网络报文数量将覆盖最先插入的网络报文。下面伪C语言代码描述了本循环缓冲区所使用的数据结构。
typedef struct tag_PKTs_Cache{
unsigned int start;//头指针
unsigned int end;//尾指针
unsigned int counter;//插入的网络报文数
PKT PKTArray[MAX_PKTS_NUMBER];//网络报文存储单元格
}PKTS_CACHE;
每向循环报文缓冲区插入一个网络报文时,除了报文头指针顺时针向前移动一单元格外,还需要将网络报文计数器(counter)加一。当counter小于循环报文缓冲区总单元格数MAX_PKTS_NUMBER时,循环报文缓冲区中存储的有效报文数为counter,这些有效网络报文位于从报文尾指针end到报文头指针start所指的单元格范围内;当counter大于循环报文缓冲区总单元格数MAX_PKTS_NUMBER时,循环报文缓冲区中存储于的有效报文格数为循环报文缓冲区总单元格数MAX_PKTS_NUMBER,循环报文缓冲区中的每个单元格都存储了有效网络报文。
在从流量攻击报文抽样样本中提取报文特征时,只需要对网络报文报头进行统计分析,因此,循环报文缓冲区中的每个网络报文单元格并不需要存储一个完整的网络数据包,而只需要存储抽样的网络报文报头。并且,由于TCP/UDP/ICMP类型的网络报文报头长度并不相同,因此,不同类型循环报文缓冲区中设定的网络报文存储单元格大小不一样。具体实施时,对于TCP类型网络报文循环缓冲区,网络报文单元格大小可以设置为60个字节,这60个字节的单元格空间足以保存IP报头和TCP报头;对于UDP类型网络报文循环缓冲区,网络报文单元格的大小可以设置为48个字节,这48个字节的单元格空间足以保存IP报头和UDP报头;对于ICMP类型网络报文循环缓冲区,网络报文单元格的大小可以设置为32个字节,这32个字节的单元格空间足以保存IP报头和ICMP报头。
在开始对流量攻击报文进行抽样前,还需要完成两个事情:一个是确定流量攻击报文抽样开始时间;另一个是确定报文抽样的频率。
为了确定流量攻击报文抽样开始时间,先分别统计所述网络设备各接收端口的选定类型报文到达速率,即统计时间段间内各接收端口收到的选定类型网络报文数量;时间段结束,检查各接收端口的选定类型报文到达速率,如果发现某一接收端口的选定类型报文到达速率超过检测阈值,则启动报文抽样定时器,准备对该接收端口接收的网络报文进行抽样;所述报文抽样定时器中时间长度等于预定的检测周期。
由于固定大小循环报文缓冲区能够存储的有效网络报文数是固定的,而预定的检测周期内产生的流量攻击网络报文总体可能远大于循环报文缓冲区总容量,因此需要对攻击报文流量进行抽样存储。为了使得循环报文缓冲区中存储的流量攻击网络报文抽样样本能够尽可能的反映流量攻击网络报文总体的特征,这里需要确定一个合适的报文缓冲区抽样频率:可以将报文抽样频率确定为最后一个统计时间段内准备抽样的接收端口所收到的选定类型报文数量除以循环报文缓冲区最大报文容量。
在检测周期内,将按照确定的报文抽样频率对所述接收端口选定类型的网络报文进行抽样,并按照循环报文缓冲区单元格大小对抽样到的网络报文进行截取,然后插入到循环报文缓冲区中。检测周期结束,则开始流量攻击报文特征提取。
图5为本发明所述方法的频繁项目集挖掘方法的具体工作流程图,它包括以下步骤:
501、以选定网络报文类型的各报头字段为项,针对各报头字段值分别提取出满足预设的最小支持度的元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;
502、从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;
503、基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的频繁项目集,并设置当前频繁项目集为所求的所有元数增一的频繁项目集;
504、重复步骤502至503,直至无法生成元数更多的频繁项目集。
也就是以选定报文类型的各报头字段为项,依据频繁项目集性质对抽样的各网络报文进行频繁项目集挖掘。频繁项目集的性质为“频繁项目集的任一自己也一定是频繁的”。这里以TCP类型攻击流量类型为例来说明整个频繁项目集挖掘过程。
由图2和图3所描述的IP报头和TCP报头可知,TCP类型流量攻击报文的项包括:IP版本、IP报头长度、IP服务类型、IP总长度、IP标识、IP标志偏移、IP生存期、IP协议类型、IP校验和、IP源地址、IP目标地址、IP选项、TCP源端口号、TCP目标端口号、TCP顺序号、TCP确认号、TCP报头长度、TCP标志、TCP窗口大小、TCP校验和、TCP紧急指针、TCP选项等22项。
对于上面所述的TCP/IP协议报头每一项,首先求出满足最小支持度的项目值。这里采用传统哈希表方法找到所有满足最小支持度的项目值,具体步骤为:对于报文抽样缓冲区中每一个网络报文,取选定报头字段的值,然后查询哈希表,如果该报头字段值在哈希表中,则对应计数器加一、否则创建新的计数器值为一的项并插入到哈希表中;最后,遍历哈希表,找到所有计数值满足预定的最小支持度的项目。所求的所有满足最小支持度的字段值即为本项目的独元频繁项目。实际应用中也可以采用其它方法找到所有满足最小支持度的项目取值。
对于TCP类型流量攻击报文的这22个项目,使用上面所述方法分别求出各项目的独元频繁项目,所求的独元频繁项目的全集就是频繁项目挖掘方法步骤501所求的独元频繁项目集。
图6所示为本应用实例里,频繁项目挖掘方法步骤502和步骤503的工作过程。在本应用实例中,假设通过步骤501从TCP类型流量攻击报文中求得的所有独元频繁项目集如下:对于IP生存期项,求得的两个独元频繁项目集为TTL1和TTL2;对于IP标识项,求得的两个独元频繁项目集为ID1和ID2;对于TCP标识项,求得的两个独元频繁项目集为Flag1和Flag2;按照步骤502,首先基于这些独元频繁项目集生成候选二元项目集,总共可以生成 个候选频繁项目集,由于来自同一个项的两个独元频繁项目集组成的二元候选项目集没有意义需要裁减掉,因此,最后剩下12个二元候选项目集;步骤503则基于TCP类型报文抽样缓冲区中的报文统计这12个二元候选项目集的支持度,最后,依据最小支持度确定二元频繁项目集为图6中第二行所示的7个二元频繁项目集。由于所求的二元频繁项目集不为空,所以以所求的二元频繁项目集为当前频繁项目集,重复执行步骤502,并且由于来自同一个报头字段的两个项不能同时出现在三元候选项目中,因此可以得到8个候选三元项目集;再根据频繁项目集性质对其进行裁减,将这8个候选三元项目集减少为2个;最后执行步骤503,得到的三元频繁项目集为2个:{TTL1,ID1,Flag1},{TTL1,ID2,Flag2}。由于这里得到的三元频繁项目集不为空,因此,设置所求的三元频繁项目集为当前频繁项目集,重复执行步骤502,得到的候选四元项目集为空,整个频繁项目挖掘过程结束,所求的频繁项目集的最大元数为3。
最后,对所找到的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足预先设定的报文过滤比例阈值的频繁项目集最小集合为所选类型报文的攻击报文特征。假设预先设定的报文过滤比例阈值为η,具体步骤为:首先,取排序后的第1个频繁项目集,考察被选频繁项目集的集合过滤的报文抽样缓冲区的报文比例λ,如果λ大于预先设定的报文过滤比例阈值η,则输出按降序排序后的第1个频繁项目集为所求的攻击报文特征并结束;否则,取排序后的前2个频繁项目集,考察被选频繁项目集集合过滤的报文抽样缓冲区的报文比例λ,如果λ大于预先设定的报文过滤比例阈值η,则输出排序后的前2个频繁项目集为所求的攻击报文特征并结束;否则,取排序后的前3个频繁项目集,考察被选频繁项目集集合过滤的报文抽样缓冲区的报文比例λ,如果λ大于预先设定的报文过滤比例阈值η,则输出排序后的前3个频繁项目集为所求的攻击报文特征并结束;以此类推,直至所考察的排序后的前n个频繁项目集过滤的报文抽样缓冲区的报文比例λ大于预先设定的报文过滤比例阈值η,则输出排序后的前n个频繁项目集为所求的攻击报文特征并结束。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
Claims (14)
1.一种在网络设备上提取流量攻击报文特征的方法,包括:
选定需要提取报文特征的、作为攻击流量类型的网络报文类型;
以选定类型报文的报头字段为项,在接收到的选定类型报文中,找到所有满足最小支持度的频繁项目集;
对所找到的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足报文过滤比例阈值的频繁项目集的最小集合为选定类型报文的攻击报文特征;
其中所述找到所有满足最小支持度的频繁项目集,包括:
c1、以选定类型报文的各报头字段为项,针对各报头字段值分别提取出满足预设的最小支持度的、元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;
c2、从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;
c3、基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的频繁项目集,并设置当前频繁项目集为所求的所有元数增一的频繁项目集;
c4、重复步骤c2至c3,直至无法生成元数更多的频繁项目集。
2.如权利要求1所述的方法,其特征在于,具体包括以下步骤:
a、选定需要提取报文特征的、作为攻击流量类型的网络报文类型,并构建一个攻击报文抽样缓冲区;
b、在检测周期内对所述网络设备的特定接收端口接收的选定类型报文进行抽样,并存储到报文抽样缓冲区;
c、以选定类型报文的报头字段为项,对报文抽样缓冲区中的网络报文进行频繁项目集挖掘,找到所有满足最小支持度的频繁项目集,包括:
c1、以选定类型报文的各报头字段为项,针对各报头字段值分别提取出满足预设的最小支持度的、元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;
c2、从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;
c3、基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的频繁项目集,并设置当前频繁项目集为所求的所有元数增一的频繁项目集;
c4、重复步骤c2至c3,直至无法生成元数更多的频繁项目集;
d、对所找到的所有频繁项目集先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足预先设定的报文过滤比例阈值的频繁项目集最小集为所选类型网络报文的报文攻击特征。
3.如权利要求2所述的方法,其特征在于,所述步骤a中:
构建的报文抽样缓冲区为循环缓冲区,允许容纳的最大报文数量是固定的,当要存储的网络报文数量超过最大报文容量时,最先进入的网络报文将被覆盖。
4.如权利要求2所述的方法,其特征在于,所述步骤b中:
仅将抽样的网络报文报头存储到报文抽样缓冲区。
5.如权利要求2所述的方法,其特征在于,所述步骤a和步骤b之间具体还包括:
ab1、统计一个统计时间段内网络设备各接收端口的选定类型报文到达速率;
ab2、统计时间段结束后,判断是否存在某一接收端口的选定类型报文到达速率超过检测阈值,存在则启动检测周期的计时,执行步骤b;否则返回ab1;
步骤b中的特定接收端口是指:选定类型报文到达速率超过检测阈值的接收端口。
6.如权利要求5所述的方法,其特征在于,步骤b中:
报文抽样频率为最后一个统计时间段内所述特定接收端口所接收到的选定类型报文数量,除以报文缓冲区最大报文容量所得到的商。
7.如权利要求1到6中任一项所述的方法,其特征在于:
网络报文类型包括传输控制协议TCP类型、用户数据包协议UDP类型和网际控制消息协议ICMP类型;
其中,对于TCP类型流量攻击报文,其TCP/IP协议报头包括IP报头和TCP报头;对于UDP类型流量攻击报文,其TCP/IP协议报头包括IP报头和UDP报头;对于ICMP类型流量攻击报文,其TCP/IP协议报头包括IP报头和ICMP报头。
8.一种在网络设备上提取流量攻击报文特征的单元,其特征在于,包括:
报文收集模块,用于选定需要提取报文特征的、作为攻击流量类型的网络报文类型,并收集接收到的选定类型报文;
频繁项目集挖掘模块,用于以选定类型报文的报头字段为项,在接收到的选定类型报文中,找到所有满足最小支持度的频繁项目集;
攻击报文特征提取模块,用于先按照元数降序排序,再对元数相同的频繁项目集按照支持度降序排序;从排序后的频繁项目集里,依次选取一组满足预先设定的报文过滤比例阈值的频繁项目集最小集为所选类型网络报文的报文攻击特征;
其中,频繁项目集挖掘模块以选定类型报文的报头字段为项,在接收到的选定类型报文中,找到所有满足最小支持度的频繁项目集是指:
频繁项目集挖掘模块以选定类型报文的各报头字段为项,针对各报头字段值分别提取出满足预设的最小支持度的、元数为一的独元频繁项目集,将独元频繁项目集设置为当前频繁项目集;重复进行以下操作直至无法生成元数更多的频繁项目集:从当前频繁项目集出发,采用拼接和剪枝方法生成元数增一的候选频繁项目集;基于报文抽样缓冲区中的网络报文统计各候选频繁项目集的支持度,选择所有满足最小支持度的候选频繁项目集为所求的元数增一的频繁项目集,并设置当前频繁项目集为所求的所有元数增一的频繁项目集。
9.如权利要求8所述的单元,其特征在于:
报文收集模块还包括攻击报文抽样缓冲区;
报文收集模块收集接收到的选定类型报文是指:报文收集模块在检测周期内对所述网络设备的特定接收端口接收的选定类型报文进行抽样,并存储到报文抽样缓冲区。
10.如权利要求9所述的单元,其特征在于:
所述报文抽样缓冲区为循环缓冲区,允许容纳的最大报文数量是固定的,当要存储的网络报文数量超过最大报文容量时,最先进入的网络报文将被覆盖。
11.如权利要求9所述的单元,其特征在于:
报文收集模块仅将抽样的网络报文报头存储到报文抽样缓冲区。
12.如权利要求8所述的单元,其特征在于,报文收集模块在检测周期内对所述网络设备的特定接收端口接收的选定类型报文抽样是指:
报文收集模块统计一个统计时间段内网络设备各接收端口的选定类型报文到达速率;统计时间段结束后,判断是否存在某一接收端口的选定类型报文到达速率超过检测阈值,存在则启动检测周期的计时,开始对上述接收端口接收的选定类型报文进行抽样,直到检测周期结束;否则继续统计下一个统计时间段内网络设备各接收端口的选定类型报文到达速率。
13.如权利要求12所述的单元,其特征在于:
报文收集模块确定报文抽样频率为最后一个统计时间段内所述特定接收端口所接收到的选定类型报文数量,除以报文缓冲区最大报文容量所得到的商。
14.如权利要求8到13中任一项所述的单元,其特征在于:
网络报文类型包括传输控制协议TCP类型、用户数据包协议UDP类型和网际控制消息协议ICMP类型;
其中,对于TCP类型流量攻击报文,其TCP/IP协议报头包括IP报头和TCP报头;对于UDP类型流量攻击报文,其TCP/IP协议报头包括IP报头和UDP报头;对于ICMP类型流量攻击报文,其TCP/IP协议报头包括IP报头和ICMP报头。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810117499 CN101640594B (zh) | 2008-07-31 | 2008-07-31 | 一种在网络设备上提取流量攻击报文特征的方法和单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200810117499 CN101640594B (zh) | 2008-07-31 | 2008-07-31 | 一种在网络设备上提取流量攻击报文特征的方法和单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101640594A CN101640594A (zh) | 2010-02-03 |
CN101640594B true CN101640594B (zh) | 2013-01-23 |
Family
ID=41615403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200810117499 Expired - Fee Related CN101640594B (zh) | 2008-07-31 | 2008-07-31 | 一种在网络设备上提取流量攻击报文特征的方法和单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101640594B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834761B (zh) * | 2010-05-21 | 2012-02-22 | 华为技术有限公司 | 降质攻击检测及防御方法、检测设备及接入设备 |
CN101924771B (zh) * | 2010-08-26 | 2013-11-06 | 北京天融信科技有限公司 | 一种用于加速应用代理的核心级tcp连接粘合方法 |
CN102547714A (zh) * | 2011-12-28 | 2012-07-04 | 福建三元达通讯股份有限公司 | 一种无线局域网中防御洪泛攻击的方法 |
CN102868737B (zh) * | 2012-08-30 | 2015-09-02 | 浪潮(北京)电子信息产业有限公司 | 安全调度方法和系统 |
CN104933083B (zh) * | 2014-03-19 | 2018-02-09 | 国家电网公司 | 一种传感器数据动态伸缩的处理方法及装置 |
JP5947838B2 (ja) * | 2014-07-04 | 2016-07-06 | エヌ・ティ・ティ・コミュニケーションズ株式会社 | 攻撃検出装置、攻撃検出方法、および攻撃検出プログラム |
EP3338405B1 (en) * | 2015-03-18 | 2020-03-11 | HRL Laboratories LLC | System and method for detecting attacks on mobile ad hoc networks based on network flux |
CN107085757B (zh) * | 2016-02-16 | 2021-06-29 | 中国移动通信集团江苏有限公司 | 一种确定风险类用户的方法及装置 |
CN109756456B (zh) * | 2017-11-06 | 2021-12-03 | 中兴通讯股份有限公司 | 一种提高网络设备安全的方法、网络设备及可读存储介质 |
CN110209551B (zh) * | 2019-05-24 | 2023-12-08 | 北京奇艺世纪科技有限公司 | 一种异常设备的识别方法、装置、电子设备及存储介质 |
CN110287699B (zh) * | 2019-06-12 | 2021-02-26 | 杭州迪普科技股份有限公司 | 应用程序的特征提取方法和装置 |
CN112242973A (zh) * | 2019-07-16 | 2021-01-19 | 中国移动通信集团浙江有限公司 | DDoS攻击检测方法、装置、计算设备及计算机存储介质 |
CN112311494B (zh) * | 2019-07-23 | 2023-12-08 | 华为技术有限公司 | 一种报文传输方法、装置及系统 |
CN113746786A (zh) * | 2020-05-29 | 2021-12-03 | 华为技术有限公司 | 网络攻击的检测方法、装置、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141458A (zh) * | 2007-10-12 | 2008-03-12 | 网经科技(苏州)有限公司 | 网络数据流水线式分析处理的方法 |
-
2008
- 2008-07-31 CN CN 200810117499 patent/CN101640594B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101141458A (zh) * | 2007-10-12 | 2008-03-12 | 网经科技(苏州)有限公司 | 网络数据流水线式分析处理的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101640594A (zh) | 2010-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101640594B (zh) | 一种在网络设备上提取流量攻击报文特征的方法和单元 | |
CN101640666B (zh) | 一种面向目标网络的流量控制装置及方法 | |
EP2530874B1 (en) | Method and apparatus for detecting network attacks using a flow based technique | |
CN108282497B (zh) | 针对SDN控制平面的DDoS攻击检测方法 | |
US9848004B2 (en) | Methods and systems for internet protocol (IP) packet header collection and storage | |
US7903566B2 (en) | Methods and systems for anomaly detection using internet protocol (IP) traffic conversation data | |
US7995496B2 (en) | Methods and systems for internet protocol (IP) traffic conversation detection and storage | |
CN101729389B (zh) | 基于流量预测和可信网络地址学习的流量控制装置和方法 | |
US20070204060A1 (en) | Network control apparatus and network control method | |
US7602780B2 (en) | Scalably detecting and blocking signatures at high speeds | |
KR100997182B1 (ko) | 플로우 정보 제한장치 및 방법 | |
US8762515B2 (en) | Methods and systems for collection, tracking, and display of near real time multicast data | |
CN101827073A (zh) | 跟踪片段数据流 | |
CN103841096A (zh) | 自动调整匹配算法的入侵检测方法 | |
KR100994746B1 (ko) | 패턴 매칭부를 이용한 유해 트래픽 탐지 방법 및 시스템 | |
CN104333483A (zh) | 互联网应用流量识别方法、系统及识别装置 | |
CN110958245B (zh) | 一种攻击的检测方法、装置、设备和存储介质 | |
CN101030835B (zh) | 检测特征获取装置和方法 | |
CN104333461A (zh) | 互联网应用流量识别方法、系统及识别装置 | |
CN113765849B (zh) | 一种异常网络流量检测方法和装置 | |
CN101316268A (zh) | 一种异常流的检测方法及系统 | |
US7266088B1 (en) | Method of monitoring and formatting computer network data | |
JP4538370B2 (ja) | 異常通信探知装置 | |
Antichi et al. | Counting bloom filters for pattern matching and anti-evasion at the wire speed | |
CN114760126A (zh) | 一种工控网络流量实时入侵检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130123 Termination date: 20180731 |
|
CF01 | Termination of patent right due to non-payment of annual fee |