CN102469084B - 一种防止tcp插入式拒绝服务攻击的方法和装置 - Google Patents

一种防止tcp插入式拒绝服务攻击的方法和装置 Download PDF

Info

Publication number
CN102469084B
CN102469084B CN201010541593.4A CN201010541593A CN102469084B CN 102469084 B CN102469084 B CN 102469084B CN 201010541593 A CN201010541593 A CN 201010541593A CN 102469084 B CN102469084 B CN 102469084B
Authority
CN
China
Prior art keywords
packet
rst
queue
tcp
tuple
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.)
Active
Application number
CN201010541593.4A
Other languages
English (en)
Other versions
CN102469084A (zh
Inventor
张永光
吴鸿伟
赵庸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Meiya Pico Information Co Ltd
Original Assignee
Xiamen Meiya Pico Information Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Meiya Pico Information Co Ltd filed Critical Xiamen Meiya Pico Information Co Ltd
Priority to CN201010541593.4A priority Critical patent/CN102469084B/zh
Publication of CN102469084A publication Critical patent/CN102469084A/zh
Application granted granted Critical
Publication of CN102469084B publication Critical patent/CN102469084B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种防止TCP插入式拒绝服务攻击的方法,包括:接收网卡驱动发送过来的TCP数据包;判断所述TCP数据包是否为RST数据包;如果为RST数据包,将所述数据包和其四元组放到RST数据包队列,所述四元组包括所述RST数据包的源IP地址、目的IP地址、源端口和目的端口;定期检查所述RST数据包队列,如果队列中的RST数据包存在时间超过预定门限,则放行RST数据包。通过本发明公开的方法,有效防止TCP插入式拒绝服务攻击。

Description

一种防止TCP插入式拒绝服务攻击的方法和装置
技术领域
本发明涉及互联网传输技术领域,特别是涉及一种防止TCP插入式拒绝服务攻击的方法和装置。
背景技术
随着互联网的高速发展,各种网络攻击,特别是DoS(拒绝服务攻击,DenialofService)已经成为互联网目前面临的最严峻的威胁之一。由于TCP/IP协议设计之初没有考虑到会得到如此大规模的应用及由此产生的形形色色的攻击方法,一般针对协议原理的攻击是TCP/IP本身无能为力的。
发明内容
本发明的发明人在对现有技术进行深入研究以后,提出一种防止TCP插入式拒绝服务攻击的方法和装置。
本发明公开的一种防止TCP插入式拒绝服务攻击的装置,主要包括接收单元、数据包判断单元、队列存储单元、发送单元、定时检查单元、队列遍历单元;
所述接收单元,用于接收网卡驱动送过来的所有TCP数据包;
所述数据包判断单元,与所述接收单元相连,用于所述对接收单元接收到的TCP数据包的Flags标志进行判断,判断数据包是否为RST数据包;
如果判断为RST数据包,所述数据包判断单元还用于把所述RST数据包的四元组及该RST数据包本身发送给所述队列存储单元;
所述队列存储单元,与所述数据包判断单元相连,用于创建RST数据包队列,并把从所述数据包判断单元接收到的RST数据包四元组及RST数据包本身存放到所述RST数据包队列中;
所述队列遍历单元,与所述数据包判断单元和所述队列存储单元相连,用于在所述数据包判断单元判断TCP数据包为非RST数据包时,根据所述非RST数据包的四元组遍历所述队列存储单元中的RST数据包队列,查找与该非RST数据包的四元组相匹配的RST数据包,并在找到时删除队列中相应的RST数据包;
所述发送单元,与所述数据包判断单元和所述定时检查单元相连,用于根据所述数据包判断单元判断结果或所述定时检查单元的检查结果,放行TCP数据包;
所述定时检查单元,与所述队列存储单元和所述发送单元相连,用于每隔一定间隔时间,检查所述队列存储单元中RST数据包队列的每个表项是否存在超时,如果超时,则由发送单元把所述表项内的RST数据包放行。
本发明公开的一种防止TCP插入式拒绝服务攻击的方法,主要包括:
接收网卡驱动发送过来的TCP数据包;
判断所述TCP数据包是否为RST数据包;
如果为RST数据包,将所述数据包和其四元组放到RST数据包队列,所述四元组包括所述RST数据包的源IP地址、目的IP地址、源端口和目的端口;
定期检查所述RST数据包队列,如果队列中的RST数据包存在时间超过预定门限,则放行RST数据包。
优选地,所述判断所述TCP数据包是否为RST数据包,具体为:判断所述TCP数据包中的Flags标志中是否包含RST标志,如果有,则为RST包。
优选地,如果所述TCP数据包不是RST数据包,则根据所述TCP数据包的四元组遍历查找所述RST数据包队列;如果在所述队列中有找到四元组相匹配的RST数据包,删除所述找到的RST数据包,并放行当前的TCP数据包。
优选地,对于在RST数据包队列中遍历不到相匹配的四元组的非RST数据包,则放行所述非RST数据包。
优选地,对于RST数据包,将所述数据包和其四元组放到RST数据包队列时,记录其表项的创建时间;所述定期检查所述RST数据包队列,如果队列中的RST数据包存在时间超过预定门限,则放行RST数据包具体为:在每隔一定间隔时间内定时检查RST数据包队列中每个表项的创建时间,如果表项的存在时间大于预定门限,则放行所述RST包应给上层应用程序。
优选地,对于RST数据包,将所述数据包和其四元组放到RST数据包队列时,记录其放入时间;所述定期检查所述RST数据包队列,如果队列中的RST数据包存在时间超过预定门限,则放行RST数据包中,所述定期检查的周期为1秒或可调节的时间,所述预定门限为2秒或可调节的时间。
综上所示,本发明所公开的方法和装置可以保障TCP连接的可靠性,避免因为受到旁路阻断TCP连接而导致的DoS攻击。本方案采用中间层驱动对TCP数据包进行拦截分析,当碰到TCP通告结束包(RST数据包)进行判断处理,当判断出是攻击包时丢弃以避免这个伪造结束包传递给TCP上层应用而导致TCP连接意外中止而拒绝服务。
附图说明
图1为插入式攻击示意图;
图2为正常TCP通信过程图;
图3为TCP插入式拒绝服务攻击的通信过程图;
图4为本发明的一种防止TCP插入式拒绝服务攻击的装置结构图;
图5为本发明的一种防止TCP插入式拒绝服务攻击的方法示意图。
具体实施方式
目前TCP插入式拒绝服务攻击需要满足三个条件:1)攻击者必须能够监听到客户机与服务器之间所有的TCP通讯数据包;2)攻击者能将自己伪造的数据包写入到网络被客户机收到;3)根据TCP协议的要求,一条TCP连接如果收到对方发来的RST结束包时这条连接必须关闭。
如图1所示,我们对TCP插入式拒绝服务攻击进行分析,先来看下正常由客户机发起的结束连接过程,客户机在强制退出时会发送RST(Reset,重置)包告诉服务器,此时服务器应该直接关闭这条TCP连接而不需发送任何通告。
如图2是一个正常通信包的TCP通讯过程,图中No7的数据包即为客户机发起的RST包(TCP数据包标志为AR),这个数据包发出后这条TCP连接也就直接关闭了。
我们再来看看受到TCP插入式拒绝服务攻击的通讯过程,如图3所示。图中No6的数据包即为攻击者发起的伪造RST包(TCP数据包标志为AR),客户机收到这个数据包后认为服务器已经关闭这条连接,所以对服务器真正返回的数据包(No7)及后继的数据包直接丢弃并再次发送RST包告诉服务器这条连接已经关闭不应该再继续发送数据包,服务器收到RST包后也把这条连接关闭而拒绝服务,从而让攻击者达到攻击的目的。
这种TCP插入式拒绝服务攻击由于攻击者伪造的数据包跟真实服务器发出的数据包几乎没有任何区别,因此现有的判断伪造包的几种技术如判断TTL是否在可信范围,判断SEQ/ACK是否合法等对这种方式均无能为力。本方案通过分析对比这些过程的差异,提出在客户机安装个拦截驱动程序,对RST包进行拦截,延迟一段时间后数据没有收到这个连接的后继数据包则将这个RST提交给TCP上层应用程序以通知关闭这个连接,否则直接丢弃,这样就防止了TCP插入式拒绝服务攻击。
网络驱动接口规范(NetworkDriverInterfaceSpecification,NDIS)是微软和一些网卡厂商共同制定的,它为网络接口卡(NetworkInterfaceCards,NIC)的局域网驱动程序提供一种标准的应用程序接口,即是一组定义好的函数接口的集合。它横跨传输层、网络差以及数据链路层,定义了网卡驱动程序与上层协议驱动程序之间的通信接口规范,屏蔽了底层物理硬件设备的不同,是上层的协议驱动程序可以和底层任何型号的网卡通信。NDIS支持三种类型的网络驱动程序,微端口驱动程序、中间层驱动程序、协议驱动程序。本方案采用NDIS中间层驱动程序,位于NDIS协议驱动和NDIS微端口驱动之间,可以嗅探进入网卡的所有网络封包并进行拦截过滤。
基于如上分析,本发明公开如下两个实施例。
本发明第一个实施例提供了一种防止TCP插入式拒绝服务攻击的装置,如图4所示,主要包括接收单元401、数据包判断单元402、队列存储单元403、发送单元404、定时检查单元405、队列遍历单元406。其中:
接收单元401,启动后会接收网卡驱动送过来的所有TCP数据包。这里,网卡驱动所发送的数据包都经由接收单元401。
数据包判断单元402,与接收单元401相连,用于对接收单元401接收到的TCP数据包的Flags标志进行判断,判断数据包是否为RST数据包。
对于判断为RST的数据包,数据包判断单元402还用于把RST数据包的四元组(源IP,目的IP,源端口,目的端口)及该RST数据包本身发送给队列存储单元403。
队列存储单元403,与所述数据包判断单元402相连,用于创建RST数据包队列,并把从数据包判断单元402接收到的RST数据包四元组及RST数据包本身存放到RST数据包队列中。
队列遍历单元406,与数据包判断单元402和队列存储单元403相连,用于在数据包判断单元402判断TCP数据包为非RST数据包时,根据该非RST数据包的四元组遍历队列存储单元403中的RST数据包队列,查找与该非RST数据包的四元组相匹配的RST数据包,并在找到时删除队列中相应的RST数据包。
发送单元404,与所述数据包判断单元402和所述定时检查单元405相连,用于根据所述数据包判断单元判断结果或所述定时检查单元的检查结果,放行TCP数据包。根据本实施例的思想,发送模块放行的数据包主要包括如下几种情况:
1)定时检查单元405判断为在队列中存在时间超时的RST数据包;
2)当数据包判断单元402判断TCP数据包为非RST数据包时,队列遍历单元406根据该非RST数据包的四元组遍历队列存储单元403中的RST数据包队列,查找到与该非RST数据包的四元组相匹配的RST数据包时,放行当前非RST数据包。因为可以据此判断队列中的RST数据包为伪造包;
3)当数据包判断单元402判断TCP数据包为非RST数据包时,队列遍历单元406根据该非RST数据包的四元组遍历队列存储单元403中的RST数据包队列,没有查找到与该非RST数据包的四元组相匹配的RST数据包时,放行当前非RST数据包。
定时检查单元405,与队列存储单元403和发送单元404相连,用于每隔一定间隔时间(默认为1秒,可以根据环境及网络状态自动调节)内定时检查队列存储单元403中RST数据包队列的每个表项(包含了RST数据包四元组合RST数据包本身)是否存在超时,如果超时,则由发送单元404把所述表项内的RST数据包放行。
该装置可以作为一个独立装置进行使用,也可作为一个模块应用于现有网络产品中,如网络层防火墙、路由器、各种计算机或服务器上的防火墙软件等。
本发明第二个实施例提供了一种防止TCP插入式拒绝服务攻击的方法,如图5所示,主要包括如下步骤:
步骤1,接收网卡驱动发送过来的TCP数据包。
本步骤中,网卡驱动发送过来的所有TCP数据包都将被接收。
步骤2,判断TCP数据包是否为RST数据包。
本步骤中,根据TCP数据包中的Flags标志中是否包含RST标志,如果有,则为RST包。
步骤3,如果为RST数据包,将该数据包和其四元组放到RST数据包队列,并记录创建时间。
本步骤中,RST数据包四元组指数据包的源IP、目的IP、源端口、目的端口等。本步骤将RST四元组及RST数据包本身一起放到RST数据包队列中去。
RST数据包队列的数据结构示意图如下图所示:
源IP地址 目的IP地址 源端口 目的端口 创建时间 RST数据包
步骤4,如果不是RST数据包,则根据该数据包的四元组遍历查找RST数据包队列,如果队列中存在四元组合和当前正在被判断的TCP数据包的四元组相匹配的RST数据包,即有相同的源和目的IP及端口,证明这个RST数据包队列里面的RST包是伪造攻击包,直接删除,并放行当前非RST数据包。
步骤5,对于在RST数据包队列中遍历不到相匹配四元组的非RST数据包,直接放行,数据包继续按原预定目的地传输。
步骤6,定期检查RST数据包队列,如果队列中的RST数据包存在时间超过预定门限,则放行RST数据包。
本步骤中,在每隔一定间隔时间(时间间隔可用户自设定,比如可以为1秒,可以根据环境及网络状态自动调节)内定时检查RST数据包队列中每个表项的创建时间,如果表项的存在时间(当前时间减去创建时间)大于预定门限(门限可用户自设定,如可以为2秒,也可以根据环境及网络状态自动调节),也就是说RST数据包队列中该表项超时了,则证明是正常的RST包应放行给上层应用程序进行处理。
综上所述,本方案采用中间层驱动对TCP数据包进行拦截分析,有效防止TCP插入式拒绝服务攻击,对现有的防止DoS技术进行有效的扩展及补充,可以用于注重高安全性的应用场合。
上述实施例仅用来进一步说明本发明的方法及其装置,但本发明并不局限于实施例,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均落入本发明技术方案的保护范围。

Claims (6)

1.一种防止TCP插入式拒绝服务攻击的装置,其特征在于,主要包括接收单元、数据包判断单元、队列存储单元、发送单元、定时检查单元、队列遍历单元;
所述接收单元,用于接收网卡驱动送过来的所有TCP数据包;
所述数据包判断单元,与所述接收单元相连,用于所述接收单元接收到的TCP数据包的Flags标志进行判断,判断数据包是否为RST数据包;
如果判断为RST数据包,所述数据包判断单元还用于把所述RST数据包的四元组及该RST数据包本身发送给所述队列存储单元;
所述队列存储单元,与所述数据包判断单元相连,用于创建RST数据包队列,并把从所述数据包判断单元接收到的RST数据包四元组及RST数据包本身存放到所述RST数据包队列中;
所述队列遍历单元,与所述数据包判断单元和所述队列存储单元相连,用于在所述数据包判断单元判断TCP数据包为非RST数据包时,根据所述非RST数据包的四元组遍历所述队列存储单元中的RST数据包队列,查找与该非RST数据包的四元组相匹配的RST数据包,并在找到时删除队列中相应的RST数据包;
所述发送单元,与所述数据包判断单元和所述定时检查单元相连,用于根据所述数据包判断单元判断结果或所述定时检查单元的检查结果,放行TCP数据包;
所述定时检查单元,与所述队列存储单元和所述发送单元相连,用于每隔一定间隔时间,检查所述队列存储单元中RST数据包队列的每个表项是否存在超时,如果超时,则由发送单元把所述表项内的RST数据包放行。
2.一种防止TCP插入式拒绝服务攻击的方法,其特征在于,包括:
接收网卡驱动发送过来的TCP数据包;
判断所述TCP数据包是否为RST数据包;
如果所述TCP数据包为RST数据包,将所述数据包和其四元组放到RST数据包队列,所述四元组包括所述RST数据包的源IP地址、目的IP地址、源端口和目的端口;
如果所述TCP数据包不是RST数据包,则根据所述TCP数据包的四元组遍历查找所述RST数据包队列;如果在所述队列中有找到四元组相匹配的RST数据包,删除所述找到的RST数据包,并放行当前的TCP数据包;
定期检查所述RST数据包队列,如果队列中的RST数据包存在时间超过预定门限,则放行RST数据包。
3.根据权利要求2所述的一种防止TCP插入式拒绝服务攻击的方法,其特征在于:
所述判断所述TCP数据包是否为RST数据包,具体为:判断所述TCP数据包中的Flags标志中是否包含RST标志,如果有,则为RST包。
4.根据权利要求2所述的一种防止TCP插入式拒绝服务攻击的方法,其特征在于,对于在RST数据包队列中遍历不到相匹配的四元组的非RST数据包,则放行所述非RST数据包。
5.根据权利要求2-4中任意权利要求所述的方法,其特征在于,对于RST数据包,将所述数据包和其四元组放到RST数据包队列时,记录其表项的创建时间;所述定期检查所述RST数据包队列,如果队列中的RST数据包存在时间超过预定门限,则放行RST数据包具体为:在每隔一定间隔时间内定时检查RST数据包队列中每个表项的创建时间,如果表项的存在时间大于预定门限,则放行所述RST包应给上层应用程序。
6.根据权利要求2-4中任意权利要求所述的方法,其特征在于,对于RST数据包,将所述数据包和其四元组放到RST数据包队列时,记录其放入时间;所述定期检查所述RST数据包队列,如果队列中的RST数据包存在时间超过预定门限,则放行RST数据包中,所述定期检查的周期为1秒或可调节的时间,所述预定门限为2秒或可调节的时间。
CN201010541593.4A 2010-11-10 2010-11-10 一种防止tcp插入式拒绝服务攻击的方法和装置 Active CN102469084B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010541593.4A CN102469084B (zh) 2010-11-10 2010-11-10 一种防止tcp插入式拒绝服务攻击的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010541593.4A CN102469084B (zh) 2010-11-10 2010-11-10 一种防止tcp插入式拒绝服务攻击的方法和装置

Publications (2)

Publication Number Publication Date
CN102469084A CN102469084A (zh) 2012-05-23
CN102469084B true CN102469084B (zh) 2015-12-16

Family

ID=46072258

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010541593.4A Active CN102469084B (zh) 2010-11-10 2010-11-10 一种防止tcp插入式拒绝服务攻击的方法和装置

Country Status (1)

Country Link
CN (1) CN102469084B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103200091A (zh) * 2013-03-29 2013-07-10 北京蓝汛通信技术有限责任公司 一种抗干扰方法
US9990846B1 (en) * 2017-02-07 2018-06-05 NoTraffic Ltd. Device, system and method for traffic management

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1898649A (zh) * 2004-01-09 2007-01-17 思科技术公司 防止网络重置拒绝服务攻击
US7266754B2 (en) * 2003-08-14 2007-09-04 Cisco Technology, Inc. Detecting network denial of service attacks
CN101390064A (zh) * 2004-05-06 2009-03-18 思科技术公司 利用嵌入的认证信息防止网络重置拒绝服务攻击
CN101465760A (zh) * 2007-12-17 2009-06-24 北京启明星辰信息技术股份有限公司 一种检测拒绝服务攻击的方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4557815B2 (ja) * 2005-06-13 2010-10-06 富士通株式会社 中継装置および中継システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266754B2 (en) * 2003-08-14 2007-09-04 Cisco Technology, Inc. Detecting network denial of service attacks
CN1898649A (zh) * 2004-01-09 2007-01-17 思科技术公司 防止网络重置拒绝服务攻击
CN101390064A (zh) * 2004-05-06 2009-03-18 思科技术公司 利用嵌入的认证信息防止网络重置拒绝服务攻击
CN101465760A (zh) * 2007-12-17 2009-06-24 北京启明星辰信息技术股份有限公司 一种检测拒绝服务攻击的方法和系统

Also Published As

Publication number Publication date
CN102469084A (zh) 2012-05-23

Similar Documents

Publication Publication Date Title
CN102761458B (zh) 一种反弹式木马的检测方法和系统
CN103095675B (zh) Arp欺骗攻击检测系统及方法
CN104320378B (zh) 拦截网页数据的方法及系统
CN109450841B (zh) 一种基于云+端设备按需联动模式的抗大规模DDoS攻击的防御方法
CN101834866A (zh) 一种cc攻击防护方法及其系统
CN101175013A (zh) 一种拒绝服务攻击防护方法、网络系统和代理服务器
CN105516080A (zh) Tcp连接的处理方法、装置及系统
US20050108434A1 (en) In-band firewall for an embedded system
CN102655509B (zh) 一种网络攻击识别方法及装置
CN107360182B (zh) 一种用于嵌入式的主动网络防御系统及其防御方法
CN113179280B (zh) 基于恶意代码外联行为的欺骗防御方法及装置、电子设备
CN108881233A (zh) 防攻击处理方法、装置、设备及存储介质
CN103166960A (zh) 接入控制方法及装置
CN102469084B (zh) 一种防止tcp插入式拒绝服务攻击的方法和装置
CN107707569A (zh) Dns请求处理方法及dns系统
CN104125213A (zh) 一种防火墙抗分布式拒绝服务ddos攻击的方法和装置
CN105429975B (zh) 一种基于云终端的数据安全防御系统、方法及云终端安全系统
CN110022319A (zh) 攻击数据的安全隔离方法、装置、计算机设备及存储设备
CN112231679B (zh) 一种终端设备验证方法、装置及存储介质
CN106534141A (zh) 一种防止域名服务器被攻击的方法、系统及防火墙
CN108989275A (zh) 一种攻击防范方法和装置
CN105991509A (zh) 会话处理方法及装置
CN107395550A (zh) 一种网络攻击的防御方法及服务器
CN108551461A (zh) 一种检测waf部署的方法、计算waf支持ipv6程度的方法
CN112087464B (zh) SYN Flood攻击清洗方法、装置、电子设备和可读存储介质

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
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20120523

Assignee: XIAMEN SECURITY INTELLIGENCE INFORMATION TECHNOLOGY CO.,LTD.

Assignor: XIAMEN MEIYA PICO INFORMATION Co.,Ltd.

Contract record no.: X2023350000019

Denomination of invention: A method and device for preventing TCP plug-in denial of service attack

Granted publication date: 20151216

License type: Common License

Record date: 20230223

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20120523

Assignee: Xiaoma Baoli (Xiamen) Network Technology Co.,Ltd.

Assignor: XIAMEN MEIYA PICO INFORMATION Co.,Ltd.

Contract record no.: X2023350000075

Denomination of invention: A method and device for preventing TCP plug-in denial of service attacks

Granted publication date: 20151216

License type: Common License

Record date: 20230313