CN106101161B - 一种用于处理伪造的tcp数据包的方法和系统 - Google Patents
一种用于处理伪造的tcp数据包的方法和系统 Download PDFInfo
- Publication number
- CN106101161B CN106101161B CN201610743506.0A CN201610743506A CN106101161B CN 106101161 B CN106101161 B CN 106101161B CN 201610743506 A CN201610743506 A CN 201610743506A CN 106101161 B CN106101161 B CN 106101161B
- Authority
- CN
- China
- Prior art keywords
- tcp
- data packet
- window
- processed
- tcp data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims description 2
- 238000005242 forging Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000011248 coating agent Substances 0.000 description 2
- 238000000576 coating method Methods 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种用于处理伪造的TCP数据包的方法和系统。具体而言,本发明利用待处理的TCP数据包头部的窗口大小字段与窗口扩大因子(Window Scale)计算出待处理的TCP数据包的接收窗口,并将它与实际接收窗口比较,随后,根据所述比较结果与阈值的偏差程度来判断所述待处理的TCP数据包是否是伪造的,从而更大概率地发现并丢弃伪造TCP数据包。
Description
技术领域
本发明涉及网络安全技术领域,特别涉及一种用于处理伪造的TCP数据包的方法和系统。
背景技术
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP是Internet最基本的协议,也是Internet国际互联网络的基础。随着网络技术的发展,越来越多的攻击者出于各种目的,开始利用TCP协议中的漏洞对网络进行攻击。例如,一种常用的攻击手段是伪造TCP数据包。作为示例,客户机client与服务器server在TCP三次握手后建立连接;随后,客户机client向服务器server发送请求包;劫持设备injector通过监听设备tap监听到该请求包,并向客户机client发送伪造的应答包forged packet;若不作任何处理,伪造的应答包forged packet将先于来自服务器server的真实应答包valid packet到达客户机client,从而取代服务器server与客户机client进行通信。这样,就实现了对客户机client劫持,使得客户机client以为它是与服务器server通信,但实际上却是与劫持设备injector通信。
为了提高网络安全,避免所述劫持情况的发生,用户对伪造TCP数据包的网络攻击检测提出了更高的要求。现有技术中通常采用检查IP数据包头部的TTL字段是否合理、Identification字段是否有规律等方法来发现伪造TCP数据包,并将其丢弃。但是,这些方法要么由于需要探测以提高准确度而实现复杂;要么由于简化处理而导致准确性低,容易造成误判或漏判。因此,存在对一种能够以高准确性快速简便地处理伪造的TCP数据包的方法的需求。
发明内容
本发明提供了一种改进的处理伪造的TCP数据包的方法,包括:
接收待处理的TCP数据包,所述待处理的TCP数据包头部包含窗口大小字段;
根据所述待处理的TCP数据包在TCP接收窗口对照表中查找是否存在与所述待处理的TCP数据包相关的记录;
如果所述TCP接收窗口对照表存在与所述待处理的TCP数据包相关的记录,则从所述待处理的TCP数据包头部的窗口大小字段与所述记录中的接收窗口扩大因子字段中计算出所述待处理的TCP数据包的接收窗口值;
通过将所计算出的所述待处理的TCP数据包的接收窗口值与所述记录中的实际接收窗口值进行比较以获得它们之间的偏差;将所述偏差与预定阈值进行比较,由此判断所述TCP数据包是否为伪造包。
在本发明的又一个方面,提供了一种处理伪造的TCP数据包的系统,包括:
用于接收待处理的TCP数据包的装置,所述待处理的TCP数据包头部包含窗口大小字段;
用于根据所述待处理的TCP数据包在TCP接收窗口对照表中查找是否存在与所述待处理的TCP数据包相关的记录的装置;
用于如果所述TCP接收窗口对照表存在与所述待处理的TCP数据包相关的记录,则从所述待处理的TCP数据包头部的窗口大小字段与所述记录中的接收窗口扩大因子字段中计算出所述待处理的TCP数据包的接收窗口值的装置;
用于通过将所计算出的所述待处理的TCP数据包的接收窗口值与所述记录中的实际接收窗口值进行比较以获得它们之间的偏差的装置;
用于将所述偏差与预定阈值进行比较的装置,其中通过该装置的比较结果来判断所述TCP数据包是否为伪造包。
本发明的关键在于利用待处理的TCP数据包头部的窗口大小字段与窗口扩大因子(Window Scale)计算出TCP数据包的接收窗口,并将它与实际接收窗口比较,若待处理的TCP数据包的接收窗口与实际接收窗口存在较大偏差,则判断该待处理的TCP数据包为伪造的TCP数据包,并对其进行相应处理。
附图说明
在阅读通过非限制性示例示出的实现方式的以下详细描述后,可以很好地理解本发明且本发明的优点将更好地体现。附图中:
图1是TCP数据包的包头结构示意图。
图2是TCP三次握手以建立连接的过程示意图。
图3是在TCP三次握手阶段发送的SYN数据包所携带的窗口扩大因子选项结构示意图。
图4是根据本发明实施例提供的TCP接收窗口对照表中的记录的数据结构示意图。
图5是根据本发明实施例提供的一种建立和/或更新TCP接收窗口对照表的方法的流程图。
图6是根据本发明实施例的一种处理伪造的TCP数据包的方法的流程图,
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细说明。
本发明提供了一种改进的处理伪造的TCP数据包的方法和系统。具体而言,本发明的关键在于利用待处理的TCP数据包头部的窗口大小字段与窗口扩大因子(Window Scale)计算出该待处理的TCP数据包的接收窗口,并将它与实际接收窗口比较,随后,根据所述比较结果与阈值的偏差程度来判断所述待处理的TCP数据包是否是伪造的,从而更大概率地发现并丢弃伪造TCP数据包。更具体而言,在本发明实施例中,通过建立至少包含TCP连接四元组(源IP、源端口、目标IP、目标端口)、实际TCP接收窗口RCV.WND和TCP接收窗口扩大因子Rcv.Wind.Scale的一个TCP接收窗口对照表,通过保证TCP连接对应的RCV.WND数值的准确性,来利用该TCP接收窗口对照表更大概率地发现(并丢弃)伪造的TCP数据包,从而确保设备尽可能少的受到伪造的TCP数据包的攻击。
首先,如图1所示,示出了TCP数据包的包头结构示意图。在其中,16位源端口号标识了主机上发起传送的应用程序;16位目标端口号标识了主机上传送要到达的应用程序。源端和目标端的端口号,用于寻找发端和收端应用进程。这两个值加上I P首部中的源端IP地址和目标端I P地址唯一确定一个T CP连接。TCP协议通过使用"端口"来标识源端和目标端的应用进程。端口号可以使用0到65535之间的任何数字。在发送服务请求时,操作系统动态地为客户端的应用程序分配端口号。在服务器端,每种服务在"众所周知的端口"(Well-Know Port)为用户提供服务。
32位序号字段,用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节的序号。
32位确认号字段,只有ACK标志为1时,确认号字段才有效。它包含目标端所期望收到源端的下一个数据字节的序号。
4位头部长度字段:给出头部有多少个32位(4字节)。没有任何选项字段的TCP头部长度为20字节;最多可以有60字节的TCP头部。
6位保留字段:由跟在数据偏移字段后的6位构成,预留位通常为0。
标志位字段(URG、ACK、PSH、RST、SYN、FIN):占6位。各位的含义如下:
URG:紧急指针有效。
ACK:确认序号有效。
PSH:接收方应该尽快将这个报文段交给应用层。
RST:重置连接。
SYN:发起一个连接。
FIN:释放一个连接。
16位接收窗口大小字段:此字段用来进行流量控制。单位为字节,这个值是本机期望一次接收的字节数。
16位校验和字段:对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。
16位紧急指针字段:它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。
选项字段:最多40字节。它可能包括"窗口扩大因子"、"时间戳"等选项。
在本发明的技术方案中,将接收窗口大小字段标记为SEG.WND,其表示发送端的接收窗口。TCP通过三次握手完成通信双方接收窗口的初始化。
在图2中,示出了TCP三次握手的过程示意图。
首先,第一次握手:客户机Client将标志位SYN置为1,随机产生一个序号SEQ=X,并将该数据包发送给服务器Server,随后客户机Client进入SYN_SENT状态,等待服务器Server确认。
第二次握手:服务器Server收到数据包后由标志位SYN=1知道客户机Client请求建立连接,Server将标志位SYN置为1,确认号ACK=X+1,随机产生一个序号SEQ=Y,并将该数据包发送给客户机Client以确认连接请求,同时服务器Server进入SYN_RCVD状态。
第三次握手:客户机Client收到确认后,检查确认号ACK是否为X+1,如果正确则将标志位ACK置为1,确认号ACK=Y+1,将标志位SYN设置为0,随机产生一个序号SEQ=Z,并将该数据包发送给服务器Server,服务器Server检查ACK是否为Y+1,如果正确则连接建立成功,客户机Client和服务器Server进入ESTABLISHED状态。
经过所述三次握手建立TCP连接,客户机Client与服务器Server之间就可以开始传输数据了。
通过上述结合图2的描述,可以清楚理解所述TCP的三次握手的过程。
而在图3中,示出了为上述TCP三次握手阶段所发送的SYN数据包(TCP数据包的包头的SYN标志位被置位)中携带的窗口扩大因子选项结构示意图。在该选项结构中,选项的第一个字段Kind指示选项的类型。当Kind=3表明该选项是窗口扩大因子选项。TCP连接初始化时,通信双方使用该选项来协商接收窗口的扩大因子。在TCP的头部中,接收窗口大小是用16位表示的,故最大为65535字节,但实际上TCP允许的接收窗口大小远不止这个数(为了提高TCP通信的吞吐量)。窗口扩大因子解决了这个问题。假设TCP头部中的接收窗口大小是N,窗口扩大因子(移位数)是M,那么TCP报文段的实际接收窗口大小是N乘2M,或者说N左移M位。注意,M的取值范围是0~14。
在该选项结构中的第二个字段Length指定该选项结构的总长度,该总长度包括Kind字段和Length字段占据的2字节。
在该选项结构中还有一个shift.cnt字段,接收窗口扩大因子Rcv.Wind.Scale的值即为该字段的值。shift.cnt取值范围为0~14,即最大TCP序号限定为216*214=230<231。该限制用于防止字节序列号溢出。另外,接收窗口扩大因子是可选项,其值在TCP三次握手阶段通过SYN包确定。包头未设置SYN标志位的TCP数据包携带的窗口扩大因子选项会被忽略。若通信双方启用了窗口扩大,除了SYN数据包之外(其接收窗口RCV.WND等于窗口大小字段SEG.WND),其他TCP数据包的接收窗口RCV.WND的计算方式为窗口大小字段SEG.WND左移Rcv.Wind.Scale位,即
RCV.WND=SEG.WND<<Rcv.Wind.Scale
公式1
举例而言,如上所述,假设TCP头部中的接收窗口大小是N,窗口扩大因子(移位数)是M,那么TCP报文段的实际接收窗口大小是N乘2M,或者说N左移M位。
通常TCP连接的接收窗口RCV.WND的变化是平滑的,不会出现跳变(所谓“跳变”是指变为先前值的1.5倍及以上)。利用这个特性可以构建一个记录实际RCV.WND的TCP接收窗口对照表,通过判断一个TCP数据包的接收窗口是否符合这张表,从而推算出它是否是伪造的TCP数据包。需要说明的是,这里的实际RCV.WND即TCP第二次握手<SYN,ACK>对应的数据包的RCV.WND。
所述TCP接收窗口对照表一般被设置在网关设备上,应当理解的是,这里的网关设备也可以是诸如安全检测设备或防火墙之类的安全设备。在一种实现下,可以根据TCP第二次握手<SYN,ACK>得到的RCV.WND建立所述TCP接收窗口对照表。该TCP接收窗口对照表包含TCP连接四元组(源IP、源端口、目标IP、目标端口)、实际TCP接收窗口RCV.WND和TCP接收窗口扩大因子Rcv.Wind.Scale等主要信息。需要说明的是,该接收窗口对照表中存储的信息都是真实主机相关的信息。
在图4中,具体示出了根据本发明实施例提供的TCP接收窗口对照表中的记录的数据结构示意图。如图4所示,该对照表包括如下字段:
“键值”字段(可选),表示根据TCP连接的四元组计算出的哈希值以方便快速查找;
“连接四元组”字段,包括源IP、源端口、目标IP、目标端口;
“实际接收窗口”字段,表示该TCP连接的实际接收窗口RCV.WND,该值可以从TCP第二次握手<SYN,ACK>对应的数据包的窗口大小字段SEG.WND得到。
“接收窗口扩大因子”字段,表示该TCP连接的接收窗口扩大因子Rcv.Wind.Scale,其可以从TCP第二次握手<SYN,ACK>对应的数据包携带的窗口扩大因子选项中的shift.cnt字段得到。
“创建时间”字段(可选),表示该表项的创建时间。
在详细了解了所述TCP接收窗口对照表中的记录的数据结构之后,下面结合图5来详细介绍根据本发明实施例如何在TCP接收窗口对照表中创建和更新记录。
如图5所示,描述了根据本发明实施例的创建和/或更新TCP接收窗口对照表中的记录的流程图。应当理解的是,该方法可以用于网关设备、防火墙、路由器等网络设备上;并且,还应当理解的是,更新TCP接收窗口对照表包括增加、删除、修改该对照表中的记录等操作。该方法包括如下步骤:
步骤502,从接收的TCP第二次握手<SYN,ACK>对应的数据包中,提取真实的TCP连接四元组、接收窗口RCV.WND(由窗口大小字段SEG.WND得到)和接收窗口扩大因子Rcv.Wind.Scale(由窗口扩大因子选项中的shift.cnt字段得到,若没有窗口扩大因子选项,则默认值为0);
步骤504,根据提取的连接四元组查找一TCP接收窗口对照表以确定所述TCP接收窗口对照表中是否已存在相关的记录;
步骤506,如果在所述TCP接收窗口对照表中没有查找到具有该连接四元组的记录,则根据获得的TCP连接四元组、接收窗口和接收窗口扩大因子在TCP接收窗口对照表中建立一条相关的记录;
步骤508,如果在所述TCP接收窗口对照表中已经存在具有该连接四元组的记录,则使用获得的接收窗口和接收窗口扩大因子更新该记录中的相应字段的内容,并且可选地同时更新创建时间字段。
另外,在另一个实施例中,为了节省存储空间,可定期删除TCP接收窗口对照表中创建时间距当前时间较长的陈旧记录。
另外,在另一个实施例中,为了加快查找速度,可以使用从TCP连接四元组中计算得到的键值来查找TCP接收窗口对照表。
在已经创建完成所述TCP接收窗口对照表之后,网关设备在接收到TCP数据包(不包括SYN数据包)时,就可以根据该TCP包的连接四元组来查找TCP接收窗口对照表,如果存在具有相同连接四元组的记录,则将该TCP数据包的接收窗口RCV.WND与相关记录的接收窗口进行比较以获得它们之间的偏差,如果所述偏差超过一预定阈值,则可以怀疑该TCP数据包为伪造的TCP数据包。下面,结合图6来详细描述这一过程。
如图6所示,提供了根据本发明实施例的一种处理伪造的TCP数据包的方法的流程图,包括如下步骤:
步骤602,接收待处理的TCP数据包(不包括SYN数据包),该待处理的TCP数据包头部包含窗口大小字段SEG.WND;
步骤604,根据该待处理的TCP数据包,例如所述待处理的TCP数据包中的连接四元组,在一TCP接收窗口对照表中查找是否存在与所述待处理的TCP数据包相关的记录,例如具有相同连接四元组的相关记录;
步骤606,在步骤604中如果在TCP接收窗口对照表中不存在具有相同连接四元组的相关记录,则过程结束
步骤608,如果TCP接收窗口对照表存在具有相同连接四元组的相关记录,则从该待处理的TCP数据包头部的窗口大小字段SEG.WND与相关记录中的接收窗口扩大因子字段Rcv.Wind.Scale中计算出该待处理的TCP数据包的接收窗口RCV.WND。具体的,该待处理的TCP数据包的接收窗口RCV.WND是根据公式1由待处理的TCP数据包头部的窗口大小字段SEG.WND与相关记录中的接收窗口扩大因子字段Rcv.Wind.Scale计算出。
步骤610,将所计算出的该待处理的TCP数据包的接收窗口RCV.WND与相关记录中的实际接收窗口RCV.WND进行比较以获得它们之间的偏差。具体的,该偏差由所计算出的该待处理的TCP数据包的接收窗口RCV.WND除以相关记录中的实际接收窗口RCV.WND得到;
步骤612,将所述偏差与一预定阈值进行比较,并且:
如果所述偏差超过该预定阈值,则说明所述待处理的TCP数据包很有可能是伪造的TCP数据包,方法进入步骤614,以针对该待处理的TCP数据包执行相应的处理,例如直接丢弃该待处理的TCP数据包,或者可以向用户提供相关提示让用户来进一步辨别该待处理的TCP数据包的真伪等等;
如果所述偏差没有超过该预定阈值,则说明该待处理的TCP数据包应该是真实的TCP数据包,因而,进入步骤616以允许所述待处理的TCP数据包直接通过所述网关设备。
需要说明的是,为了尽量避免将有效的TCP数据包作为伪造的TCP数据包丢弃,优选地,“预定阈值”指的是该TCP数据包的RCV.WND值是相关记录中的实际RCV.WND值的倍数,根据实验,所述“预定阈值”的取值范围可以是≧1.5,也即当所述偏差超过1.5倍时就可以初步确定所述TCP数据包是伪造的TCP数据包。而在较佳实施例中,所述“预定阈值”较佳地为4倍,即当所述偏差超过4倍时将所述TCP数据包确定为伪造的TCP数据包,该“预定阈值”可以使得所述TCP伪造包的判断更加准确。但所述倍数仅仅是出于说明的目的,并非限制性的。用户可以根据实际情况来调整所述“预定阈值”标准以适应不同的上下文环境需求。
综上所述,在本发明的方案中,通过判断待处理的TCP数据包的接收窗口是否与TCP接收窗口对照表中的相关记录的实际接收窗口有较大偏差来实现更大概率地发现(丢弃)伪造的TCP数据包,从而保证了设备尽可能少的受到伪造的TCP数据包的攻击。
本发明的方案不仅适用于防火墙、DDoS类网关系统和旁路的类似IDS检测系统,还适用于在路由器上使用。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (15)
1.一种处理伪造的TCP数据包的方法,包括如下步骤:
接收待处理的TCP数据包,所述待处理的TCP数据包头部包含窗口大小字段;
根据所述待处理的TCP数据包在TCP接收窗口对照表中查找是否存在与所述待处理的TCP数据包相关的记录;
如果所述TCP接收窗口对照表存在与所述待处理的TCP数据包相关的记录,则从所述待处理的TCP数据包头部的窗口大小字段与所述记录中的接收窗口扩大因子字段中计算出所述待处理的TCP数据包的接收窗口值;
通过将所计算出的所述待处理的TCP数据包的接收窗口值与所述记录中的实际接收窗口值进行比较以获得它们之间的偏差;
将所述偏差与预定阈值进行比较,由此判断所述TCP数据包是否为伪造包。
2.根据权利要求1所述的方法,其特征在于,将所述偏差与预定阈值进行比较,由此判断所述TCP数据包是否为伪造包的步骤包括:
如果所述偏差超过所述预定阈值,则针对所述待处理的TCP数据包执行相应的处理;
如果所述偏差不超过所述预定阈值,则允许所述待处理的TCP数据包通过。
3.如权利要求1所述的方法,其特征在于,所述待处理的TCP数据包的接收窗口值RCV.WND是根据下述公式计算出的:
RCV.WND=SEG.WND<<Rcv.Wind.Scale
其中SEG.WND表示窗口大小,而Rcv.Wind.Scale表示接收窗口扩大因子。
4.如权利要求1所述的方法,其特征在于,所述TCP接收窗口对照表中的记录包括下述字段:
“连接四元组”字段,包括源IP、源端口、目标IP、目标端口;
“实际接收窗口”字段,表示所述TCP连接的实际接收窗口值,该值可以从TCP第二次握手对应的数据包的窗口大小字段得到;
“接收窗口扩大因子”字段,表示所述TCP连接的接收窗口扩大因子,其可以从TCP第二次握手对应的数据包携带的窗口扩大因子选项中的shift.cnt字段得到。
5.根据权利要求4所述的方法,其特征在于,所述TCP接收窗口对照表中的记录还包括下述字段:
可选的“键值”字段,表示根据TCP连接的四元组计算出的哈希值以方便快速查找;
可选的“创建时间”字段,表示该记录的创建时间。
6.根据权利要求4所述的方法,其特征在于,所述根据待处理的TCP数据包在所述TCP接收窗口对照表中查找与所述待处理的TCP数据包相关的记录的步骤包括:
根据所述待处理的TCP数据包的连接四元组在一TCP接收窗口对照表中查找是否存在与所述待处理的TCP数据包相关的记录。
7.根据权利要求5所述的方法,其特征在于,所述根据待处理的TCP数据包在所述TCP接收窗口对照表中查找与所述待处理的TCP数据包相关的记录的步骤包括:
以所述待处理的TCP数据包的连接四元组计算出的哈希值作为查询条件,与所述TCP接收窗口对照表中的键值进行比较从而查找是否存在与所述待处理的TCP数据包相关的记录。
8.如权利要求4或5所述的方法,其特征在于,所述TCP接收窗口对照表中的记录是通过下述步骤创建的:
从接收的TCP第二次握手对应的数据包中,提取真实的TCP连接四元组、接收窗口值和接收窗口扩大因子,其中若没有所述窗口扩大因子选项,则默认值为0;
根据获得的连接四元组查找一TCP接收窗口对照表以确定所述TCP接收窗口对照表中是否已存在与所述数据包相关的记录:
如果在所述TCP接收窗口对照表中没有查找到具有该连接四元组的记录,则根据获得的TCP连接四元组、接收窗口值和接收窗口扩大因子在所述TCP接收窗口对照表中建立一条与所述数据包相关的记录;
如果在所述TCP接收窗口对照表中已经存在具有该连接四元组的记录,则使用获得的接收窗口值和接收窗口扩大因子更新所述记录中的相应字段的内容,同时更新创建时间字段。
9.如权利要求1所述的方法,其特征在于,如果所述偏差超过所述预定阈值,则针对所述待处理的TCP数据包执行相应的处理的步骤还包括:
直接丢弃所述待处理的TCP数据包;或者
向用户提供相关提示,以便让所述用户来进一步辨别所述待处理的TCP数据包的真伪。
10.如权利要求1所述的方法,其特征在于,其中,所述偏差定义为所述待处理的TCP数据包的接收窗口值除以所述与所述待处理的TCP数据包相关的记录中的实际接收窗口值得到的倍数;并且
所述预定阈值是指所述待处理的TCP数据包的接收窗口值是所述与所述待处理的TCP数据包相关的记录中的实际接收窗口值的倍数,其中所述预定阈值的取值范围可以是≧1.5。
11.如权利要求5所述的方法,其特征在于,根据所述TCP接收窗口对照表中的记录的“创建时间”字段,定期删除所述TCP接收窗口对照表中创建时间距当前时间较长的陈旧记录。
12.根据权利要求1所述的方法,其特征在于,如果在所述TCP接收窗口对照表中不存在与所述待处理的TCP数据包相关的记录,则允许所述待处理的TCP数据包直接通过。
13.根据权利要求10所述的方法,其特征在于,其中所述预定阈值的取值范围可以为≧4。
14.一种处理伪造的TCP数据包的系统,包括:
用于接收待处理的TCP数据包的装置,所述待处理的TCP数据包头部包含窗口大小字段;
用于根据所述待处理的TCP数据包在TCP接收窗口对照表中查找是否存在与所述待处理的TCP数据包相关的记录的装置;
用于如果所述TCP接收窗口对照表存在与所述待处理的TCP数据包相关的记录,则从所述待处理的TCP数据包头部的窗口大小字段与所述记录中的接收窗口扩大因子字段中计算出所述待处理的TCP数据包的接收窗口值的装置;
用于通过将所计算出的所述待处理的TCP数据包的接收窗口值与所述记录中的实际接收窗口值进行比较以获得它们之间的偏差的装置;
用于将所述偏差与预定阈值进行比较的装置,其中通过该装置的比较结果来判断所述TCP数据包是否为伪造包。
15.根据权利要求14所述的系统,其特征在于,其中通过该装置的比较结果来判断所述TCP数据包是否为伪造包包括:
如果所述偏差超过所述预定阈值,则针对所述待处理的TCP数据包执行相应的处理;
如果所述偏差不超过所述预定阈值,则允许所述待处理的TCP数据包通过。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610743506.0A CN106101161B (zh) | 2016-08-26 | 2016-08-26 | 一种用于处理伪造的tcp数据包的方法和系统 |
EP16913982.1A EP3432533B1 (en) | 2016-08-26 | 2016-10-31 | Method and system for processing forged tcp data packet |
PCT/CN2016/104103 WO2018035962A1 (zh) | 2016-08-26 | 2016-10-31 | 一种用于处理伪造的tcp数据包的方法和系统 |
US16/068,797 US10834126B2 (en) | 2016-08-26 | 2016-10-31 | Method and system for processing forged TCP packet |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610743506.0A CN106101161B (zh) | 2016-08-26 | 2016-08-26 | 一种用于处理伪造的tcp数据包的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106101161A CN106101161A (zh) | 2016-11-09 |
CN106101161B true CN106101161B (zh) | 2019-02-01 |
Family
ID=57223830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610743506.0A Expired - Fee Related CN106101161B (zh) | 2016-08-26 | 2016-08-26 | 一种用于处理伪造的tcp数据包的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10834126B2 (zh) |
EP (1) | EP3432533B1 (zh) |
CN (1) | CN106101161B (zh) |
WO (1) | WO2018035962A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027390B (zh) * | 2016-05-13 | 2019-11-26 | 湖南基石通信技术有限公司 | 多参数优化olsr协议的方法及装置 |
CN106101161B (zh) | 2016-08-26 | 2019-02-01 | 网宿科技股份有限公司 | 一种用于处理伪造的tcp数据包的方法和系统 |
CN107277027B (zh) * | 2017-06-30 | 2020-10-16 | 北京知道未来信息技术有限公司 | 一种旁路抢答设备识别方法及流量清洗方法 |
CN109040112B (zh) * | 2018-09-04 | 2020-01-03 | 北京明朝万达科技股份有限公司 | 网络控制方法和装置 |
CN109802937B (zh) * | 2018-11-30 | 2021-08-17 | 浙江远望信息股份有限公司 | 一种发现对智能终端设备tcp下ip欺骗攻击的方法 |
DE102019104983B4 (de) * | 2019-02-27 | 2020-10-01 | Eq-3 Holding Gmbh | Verfahren zur Übertragung von Daten in Datenpaketen sowie Datenkommunikationsanordnung, Transceiver und Computerprogrammprodukt hierzu |
US20220053018A1 (en) * | 2020-08-11 | 2022-02-17 | Flipkart Internet Private Limited | System and method for detection and mitigation of a dos/ddos attack |
CN117692396B (zh) * | 2024-02-04 | 2024-04-26 | 湖南国科亿存信息科技有限公司 | 一种复杂网络环境下的tcp单边加速方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162971A (zh) * | 2007-10-30 | 2008-04-16 | 华为技术有限公司 | 数据传输的方法、设备及系统 |
US7607170B2 (en) * | 2004-12-22 | 2009-10-20 | Radware Ltd. | Stateful attack protection |
CN101989985A (zh) * | 2010-10-09 | 2011-03-23 | 北京工商大学 | 一种基于硬件的核心路由器tcp连接状态维护模块设计方案 |
CN102655509A (zh) * | 2012-05-07 | 2012-09-05 | 福建星网锐捷网络有限公司 | 一种网络攻击识别方法及装置 |
CN103475706A (zh) * | 2013-09-09 | 2013-12-25 | 中国科学技术大学苏州研究院 | 基于syn-ack双服务器反弹模式的伪tcp隐蔽通信方法 |
CN105847283A (zh) * | 2016-05-13 | 2016-08-10 | 深圳市傲天科技股份有限公司 | 一种基于信息熵方差分析的异常流量检测方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7885190B1 (en) * | 2003-05-12 | 2011-02-08 | Sourcefire, Inc. | Systems and methods for determining characteristics of a network based on flow analysis |
US7472416B2 (en) * | 2004-01-09 | 2008-12-30 | Cisco Technology, Inc. | Preventing network reset denial of service attacks using embedded authentication information |
US7565694B2 (en) * | 2004-10-05 | 2009-07-21 | Cisco Technology, Inc. | Method and apparatus for preventing network reset attacks |
US8363549B1 (en) * | 2009-09-02 | 2013-01-29 | Juniper Networks, Inc. | Adaptively maintaining sequence numbers on high availability peers |
US8730799B2 (en) | 2010-03-03 | 2014-05-20 | Akamai Technologies, Inc. | Dynamic adjustment of receive window utilized by a transmitting device |
JP5258938B2 (ja) | 2011-07-26 | 2013-08-07 | 株式会社日立製作所 | 通信装置 |
US10027761B2 (en) * | 2013-05-03 | 2018-07-17 | A10 Networks, Inc. | Facilitating a secure 3 party network session by a network device |
US10397379B2 (en) * | 2015-03-06 | 2019-08-27 | Apple Inc. | Robust multipath TCP stateless connection establishment |
CN106101161B (zh) | 2016-08-26 | 2019-02-01 | 网宿科技股份有限公司 | 一种用于处理伪造的tcp数据包的方法和系统 |
-
2016
- 2016-08-26 CN CN201610743506.0A patent/CN106101161B/zh not_active Expired - Fee Related
- 2016-10-31 EP EP16913982.1A patent/EP3432533B1/en active Active
- 2016-10-31 US US16/068,797 patent/US10834126B2/en active Active
- 2016-10-31 WO PCT/CN2016/104103 patent/WO2018035962A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7607170B2 (en) * | 2004-12-22 | 2009-10-20 | Radware Ltd. | Stateful attack protection |
CN101162971A (zh) * | 2007-10-30 | 2008-04-16 | 华为技术有限公司 | 数据传输的方法、设备及系统 |
CN101989985A (zh) * | 2010-10-09 | 2011-03-23 | 北京工商大学 | 一种基于硬件的核心路由器tcp连接状态维护模块设计方案 |
CN102655509A (zh) * | 2012-05-07 | 2012-09-05 | 福建星网锐捷网络有限公司 | 一种网络攻击识别方法及装置 |
CN103475706A (zh) * | 2013-09-09 | 2013-12-25 | 中国科学技术大学苏州研究院 | 基于syn-ack双服务器反弹模式的伪tcp隐蔽通信方法 |
CN105847283A (zh) * | 2016-05-13 | 2016-08-10 | 深圳市傲天科技股份有限公司 | 一种基于信息熵方差分析的异常流量检测方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190020681A1 (en) | 2019-01-17 |
CN106101161A (zh) | 2016-11-09 |
EP3432533A4 (en) | 2019-06-19 |
EP3432533B1 (en) | 2020-07-22 |
US10834126B2 (en) | 2020-11-10 |
EP3432533A1 (en) | 2019-01-23 |
WO2018035962A1 (zh) | 2018-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106101161B (zh) | 一种用于处理伪造的tcp数据包的方法和系统 | |
JP4905395B2 (ja) | 通信監視装置、通信監視プログラム、および通信監視方法 | |
US9130978B2 (en) | Systems and methods for detecting and preventing flooding attacks in a network environment | |
CN101175013B (zh) | 一种拒绝服务攻击防护方法、网络系统和代理服务器 | |
TW518864B (en) | Methods and system for defeating TCP SYN flooding attacks | |
US7623450B2 (en) | Methods and apparatus for improving security while transmitting a data packet | |
JP6026789B2 (ja) | ネーム基盤のネットワークシステムでペンディングテーブルのオーバーフローを防止するノード装置、並びにそのオーバーフローを防止する装置及び方法 | |
JP2007184799A (ja) | パケット通信装置 | |
CN101473622A (zh) | 用于数据网络上的通信的带外鉴别方法和系统 | |
WO2011029357A1 (zh) | 认证通信流量的方法、通信系统和防护装置 | |
JP2003525557A (ja) | 迅速なパケット・フィルタリング及びパケット・プロセシングのためのシステム、デバイス及び方法 | |
CN110198293A (zh) | 服务器的攻击防护方法、装置、存储介质和电子装置 | |
Thornburgh | Adobe's Secure Real-Time Media Flow Protocol | |
US20170019426A1 (en) | Method for attribution security system | |
CN104025550A (zh) | 从数据项获得信息 | |
US10680922B2 (en) | Communication control apparatus and communication control method | |
CN105391690B (zh) | 一种基于pof的网络窃听防御方法和系统 | |
JP2017538335A (ja) | プロトコルスタックがないモードにおけるtcpの中間者処理方法 | |
CN106453419A (zh) | 识别源ip地址合法性、网络攻击防御的方法及装置 | |
CN102655509A (zh) | 一种网络攻击识别方法及装置 | |
KR20020049462A (ko) | 인터넷상 트래픽의 상위 계층 프로토콜들을 구분하는 방법및 장치 | |
WO2005004410A1 (fr) | Procede pour controler la retransmission d'un message de donnees dans un dispositif d'acheminement | |
CN103281317A (zh) | 一种软件定义网络的攻击测试方法 | |
US20190028505A1 (en) | Defending against dos attacks over rdma connections | |
US20090141712A1 (en) | Router device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190201 |