一种网络数据包有效性判定方法及系统的制作方法

文档序号:7621065阅读:222来源:国知局
专利名称:一种网络数据包有效性判定方法及系统的制作方法
技术领域
本发明涉及一种网络数据包检测分析的方法及系统,利用网络正常工作时的流量和数据,逐步完善,建立数学模型,不断生成新的、更准确的数据流量统计状况,用以在超大流量的拒绝服务攻击发生时.有效的保障正常的网络服务。
背景技术
众所周知,拒绝服务攻击是一种危害极为严重的网络攻击方式,其实施方法简单,却很难防范,通常是以消耗服务器端资源为目标,通过伪造超过服务器处理能力的请求数据造成服务器响应阻塞,从而使正常的用户请求得不到应答,实现攻击目的。
而作为拒绝服务攻击的主要手段SYN Flood攻击效果尤为显著,通常SYN Flood的防范方式为应用SYN Cookie机制.它的原理是在TCP服务器收到TCP SYN包时,不分配一个专门的数据区,而是根据这个SYN包计算出一个cookie值,并加载在所回应的SYN/ACK包中,在收到TCP ACK包时,TCP服务器在根据那个cookie值检查这个TCP ACK包的合法性。如果合法,再分配专门的数据区进行处理未来的TCP连接。SYN Cookie Firewall,一个网关模式的syn防火墙,它不仅要保护本机免受各种网络攻击,还要保护它后面的所有对外有开放TCP端口的主机免受这些攻击。比如一个局域网中有个服务器开放了FTP服务给外界,这个服务器主机就有可能遭受到来自互联网上的SYNFlood攻击。而这时的防火墙会将所有的攻击SYN包转发给受害主机。一种杜绝这种情况的方法是SYN Cookie Firewall。它是SYN Cookie的一种扩展形式。总的来说,它是利用原来SYN Cookie的原理在内网和外网之间实现TCP三次握手过程的代理(proxy)的机制。
为了方便描述,我们假定一个外在的TCP客户机C希望通过防火墙F连接到局域网中的一个TCP服务器S。在防火墙收到来自外网的SYN包时,它并不直接进行转发,而是缓存在本地,再按照原来SYNCookie的机制制作好一个针对这个SYN包的SYN+ACK包,注意,这个SYN+ACK包中的ack顺序号为特制的cookie值c,更重要的是这个包的的源地址被伪造成了S的地址(为了描述方便,我们这里暂时不考虑NAT等其他因素)。这样C会接收到这个SYN+ACK包,并认为是从S反馈回来的。于是C再响应一个ACK包,并认为与S的TCP连接已经建立起来。这时防火墙F收到这个ACK包,按照前面的描述的SYN Cookie原理来检查这个ACK中的ack顺序号。如果认为合法,F将本地缓存的来自C的SYN包发送给S,这时S会响应一个SYN+ACK包到C,其中也携带一个seq号,我们设为c`。当然这个包不会到达C,而是由防火墙F截取,F根据这个包中的序列号等信息,造一个ACK包响应到S。这时的情况是C认为自己已经与S建立了TCP连接;S认为自己与C建立了TCP连接。以后的TCP数据内容可以直接穿过防火墙F,在S和C之间交互。
SYN Cookie Firewall的工作原理,它相当于在TCP Server与TCP Client之间实现了对三次握手协议的代理。第一次″三次握手″在TCP Client与防火墙之间进行,第二次″三次握手″在防火墙与TCPServer之间。在第一次″三次握手″时使用前面介绍的SYN Cookie流程。有一个问题在进行两次″三次握手″时出现了如图所示,进行第一次″三次握手″后,TCP Client认为后续数据包的seq值从c+1开始,而进行第二次″三次握手″后,TCP Server认为后续发来的数据包的seq值从c`+1开始,c是cookie,c`是TCP Server随机产生的。c和c`几乎不可能相等,也就是说在完成上面的两个″三次握手″后,如果不进行其他操作,后续从TCP Client到TCP Server的数据包都将被认为顺序号不对而被丢掉。一种补救方法就是在防火墙本地保存一个值,利用这个差值,在每个数据包经过防火墙时,将其seq值修改一下,这样,后续的数据流量可以完美地在TCP Server和TCP Client之间传输了。
SYN Cookie可以在一定程度上缓解SYN Flood攻击的危害,但其自身的机制也存在问题主要表现在如下两方面1.超大规模的SYN Flood攻击可导致防护系统过分忙碌,从而使SYNCookie失效,进而导致防护功能失效。
2.应用SYN Cookie以后,需要对每个TCP SYN数据包回应SYN/ACK数据包,过多的回应包可导致路由器负担过重,从而引发更大规模的拒绝服务。

发明内容
本发明的目的是利用网络正常工作时的流量和数据,逐步完善,建立数学模型,不断生成新的、更准确的数据流量统计状况,用以在超大流量的拒绝服务攻击发生时,有效的保障正常的网络服务的一种网络数据包检测分析的方法及系统。
该方法包含如下步骤a、捕获网络中的TCP连接请求数据包;b、对该原始报文数据进行解析;c、记录连接的结果的成功或失败,以确认数据包的有效性;d、如果此次连接请求成功,将全部连接信息存入知识库,并建立索引;e、当网络流量超过预定阀值时,使用知识库索引进行快速匹配,如发现知识库中存在类似连接信息,则予以放行;f如果没有发现知识库之中有类似信息,则计算通行概率,概率高于事先约定好的固定数值时,予以放行,否则进行丢弃。
上述a步骤为拒绝服务攻击防范系统的基本数据来源,即在网络中捕获原始数据。
上述b步骤为将a步骤所获的数据按网络协议进行解析处理,因为SYN Flood攻击针对的是运输层协议TCP,所以我们并不需要解析到网络的应用层,而所述的进行协议解析更进一步包括如果协议为IP协议,则对解析中的协议数据进行重组后,再进一步继续协议解析,以便获得网络数据的真实特征,否则的话,有可能丢掉故意对数据进行分片以隐藏攻击特征的恶意攻击行为;如果协议为TCP协议,则对TCP的报文流进行重组后,再进一步继续协议解析,以便获得TCP的连接状态和流重组以后的数据。
上述c步骤为将步骤b所得到的解析后的数据进行处理,根据预先设定的规则,对网络数据包中的连接请求进行校验,这个过程包含了对于TCP会话的全程监控,需要建立TCP有限状态机,对连接状态的变化和数据的传送进行记录,需要对如下状态进行记录和分析ClosedListenSYN ReceivedSYN SentEstablishedTime waitClose wait上述d步骤记录成功连接的信息,包括发起连接的一方和接收连接的一方的IP地址,连接的次数,单位时间内连接的频率,如果长时间内没有连接发生,则连接次数不断衰减,直至减为0,则知识库会自动删除这条连接信息,这样,总是保证知识库中记录的是发生频率最高的连接,另外对于ip地址采用B-树的方法编写多级索引,以便于快算查找。
上述e步骤为网络流量超过阀值时,每个网络连接请求数据包必须通过知识库的检索确认其有效性,如果知识库中存在相同的连接信息,则予以放行否则进入步骤f上述f步骤为根据前一阶段的数据流量统计得出当前网络数据包的有效性概率,在根据此概率决定该数据包放行还是丢弃。
该系统包含有数据捕获模块用于捕获网络中的原始报文数据包;协议解析模块用于对该原始报文数据包进行协议解析;网络连接状态监视模块监视所有网络连接的数据传输状况;网络连接有效性判定模块判定网络连接是否为正常有效;知识库管理模块用于存储和查找正常网络连接的相关信息,并建立快速查找索引;网络数据流量监视模块监视当前网络流量是否超过预定阀值.
动态数据流量分析和控制模块用以根据前一阶段网络流量状况推算当前网络数据包的有效性概率,将网络流量始终控制在某一范围之内。
本发明具有以下优点1、在超大流量下可以有效的减少SYN Cookie机制的回包数量,减少系统负荷,大大提高系统的负载能力。
2、减少回包数量还可以减少边缘方路由器的负担,避免路由器因为负荷太重而无法正常工作。
3、最大限度的利用了系统资源,按照最大概率的原则,尽可能的保障了超大流量攻击下用户的访问.


图1是网络数据包有效性判定系统流程图。
具体实现方式系统工作的环境本系统工作在百兆或千兆网络的以太网络环境,通过本系统的百兆或千兆网卡能够获取网络中的以太报文数据包。
系统工作的方法(见图1)将系统获取的网络数据按标准的以太数据结构、IP数据结构、TCP/UDP数据结构,并进行TCP的会话查找,每条会话相对应的源和目的MAC地址、源和目的IP地址、源和目的端口地址、连接次数等。
将上述所获的网络连接信息放入网络连接知识库中,该缓冲区按照索引标识、源和目的地址进行合并存放,即相同的源和目的地址将该连接的发生次数进行累计计算。
当某一连接被释放,主动要求释放连接的一端发送TCP FIN数据包,监视整个连接的释放过程,如释放正常完成,在知识库中找到相对应的TCP会话,将连接发生的次数减1.这样可以始终保证知识库中存放的是发生频率最高的连接。
该算法会以1秒钟为单位时间,进行流量的统计,如果上1秒钟的流量大于事先约定的阀值,那么立即进入流量识别模式,如果连接请求可以在知识库搜索到,则直接放行,并记录放行的数据包数,否则以上1秒钟的流量作为样本,计算放行的概率。
具体算法如下假设预定阀值为M,上1秒钟包数统计为N,那么每个网络数据包的通过概率为M/N,对当前的每个网络数据包进行编号(1-∞),假设当前网络数据包的个数为A,则放行的包数应该为A*M/N,用这个数字减去已经放行的数据包数减去这个值,所得大于1,则放过当前数据包,如果小于1,则当前数据包丢弃。
权利要求
1.一种网络数据包有效性判定方法,其特征在于该方法包含如下步骤a、捕获网络中的TCP连接请求原始数据包;b、对捕获网络中的TCP连接请求原始数据包进行解析;c、根据预先设定的规则,对网络数据包中的连接请求进行校验,这个过程包含了对于TCP会话的全程监控,需要建立TCP有限状态机,记录连接的结果(成功或失败)以确认数据包的有效性;d、如果此次连接请求成功,将全部连接信息存入知识库,并建立索引;e、当网络流量超过预定阀值时,使用知识库索引进行快速匹配,如发现知识库中存在类似连接信息,则予以放行;f 如果没有发现知识库之中有类似信息,则计算通行概率,概率高于事先约定好的固定数值时,予以放行,否则进行丢弃。
2.根据权利要求1所述的网络数据包有效性判定方法,其特征在于对原始报文数据进行解析包括如果协议为IP协议,则对解析中的协议数据进行重组后,再进一步继续协议解析,获得网络数据的真实特征;如果协议为TCP协议,则对TCP的报文流进行重组后,再进一步继续协议解析,获得TCP的连接状态和流重组以后的数据。
3.根据权利要求1所述的网络数据包有效性判定方法,其特征在于对连接状态的变化和数据的传送进行记录和分析包括ClosedListenSYN ReceivedSYN SentEstablishedTime waitClose wait。
4.根据权利要求1所述的网络数据包有效性判定方法,其特征在于存入知识库的信息包括发起连接的一方和接收连接的一方的IP地址,连接的次数,单位时间内连接的频率,如果长时间内没有连接发生,则连接次数不断衰减,直至减为0,则知识库会自动删除这条连接信息,保证知识库中记录的是发生频率最高的连接,ip地址采用B-树的方法编写多级索引。
5.根据权利要求1所述的网络数据包有效性判定方法,其特征在于计算通行概率的方是假设预定阀值为M,上1秒钟数据包数统计为N,那么每个网络数据包的通过概率为M/N,对当前的每个网络数据包进行编号(1-∞),假设当前网络数据包的个数为A,则放行的包数应该为A*M/N,用这个数字减去已经放行的数据包数减去这个值,所得大于1,则放过当前数据包,如果小于1,则当前数据包丢弃。
6.一种网络数据包有效性判定系统,该系统包括一计算机主机,一网络服务器,包括有显示单元的多个终端服务器,数据储存装置,以及输入装置,打印输出装置,其特征在于该系统还包含有数据捕获单元用于捕获网络中的原始报文数据包;协议解析单元用于对该原始报文数据包进行协议解析;网络连接状态监视单元监视所有网络连接的数据传输状况;网络连接有效性判定单元判定网络连接是否为正常有效知识库管理单元用于存储和查找正常网络连接的相关信息,并建立快速查找索引;网络数据流量监视单元监视当前网络流量是否超过预定阀值;动态数据流量分析和控制单元用以根据前一阶段网络流量状况推算当前网络数据包的有效性概率,将网络流量始终控制在某一范围之内。
全文摘要
本发明涉及一种网络数据包检测分析的方法及系统,特点是捕获网络中的TCP连接请求数据包;对该原始报文数据进行解析;记录连接的结果以确认数据包的有效性;如果此次连接请求成功,将全部连接信息存入知识库,并建立索引;当网络流量超过预定阀值时,使用知识库索引进行快速匹配,如发现知识库中存在类似连接信息,则予以放行;如果没有发现知识库之中有类似信息,则计算通行概率,概率高于事先约定好的固定数值时,予以放行,否则进行丢弃,在超大流量下可以有效的减少回包数量,减少系统负荷,提高系统的负载能力,减少边缘方路由器的负担,避免路由器因为负荷太重而无法正常工作,最大限度的利用了系统资源,按照最大概率的原则,尽可能的保障了超大流量攻击下用户的访问。
文档编号H04L29/06GK1741473SQ20051008635
公开日2006年3月1日 申请日期2005年9月5日 优先权日2005年9月5日
发明者刘明岩, 许世强 申请人:北京启明星辰信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1