CN101141443A - 检测tcp插入式攻击的方法和系统 - Google Patents
检测tcp插入式攻击的方法和系统 Download PDFInfo
- Publication number
- CN101141443A CN101141443A CNA2006101271398A CN200610127139A CN101141443A CN 101141443 A CN101141443 A CN 101141443A CN A2006101271398 A CNA2006101271398 A CN A2006101271398A CN 200610127139 A CN200610127139 A CN 200610127139A CN 101141443 A CN101141443 A CN 101141443A
- Authority
- CN
- China
- Prior art keywords
- sequence number
- attack
- message
- receiving terminal
- tcp
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种检测TCP插入式攻击的方法及系统。发送端向接收端发送数据,并接收来自接收端的确认报文。发送端判断确认报文的确认序列号是否大于发送序列号,如果确认序列号不大于发送序列号,则继续数据传送或完成数据传送,如果确认序列号大于发送序列号,则发送端将设置了攻击标识的回应报文发送至接收端,接收端通过回应报文中的攻击标识获知TCP链路受到插入式攻击。通过在发送端检查到序列号攻击之后,向接收端发送序列号攻击标识信息,实现了对TCP插入式攻击的有效检测和上报。
Description
技术领域
本发明涉及网络通信领域,尤其涉及TCP数据传输中防止TCP序列号欺骗攻击的技术。
背景技术
TCP(Transmission Control Protocol,传输控制协议)为网络数据传输提供了一种可靠的方法(RFC 793)。一个TCP连接中,仅有两方进行彼此通信。具体来说,TCP协议中是通过以下方式保证数据传输的可靠性的:
1)应用数据被分割成TCP认为最合适发送的数据块。
2)TCP发送端发出一个报文段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,则将重发这个报文段。
3)当TCP的接收端收到发自TCP连接的发送端的数据时,它将发送一个确认。
4)TCP报文在网络传输的过程中将保持它首部和数据的校验和。这是一个端到端的校验和,目的是检测数据在传输过程中的任何变化。如果接收端收到报文段的校验和错误,那么TCP接收端将丢弃这个报文段和不确认这个报文段(希望发端超时并重发)。
5)既然TCP作为IP(Internet Protocol,网际协议)数据报来传输,而IP数据报的到达可能会失序,因此TCP的报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
6)既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。
由于TCP/IP协议是Internet(互联网)的基础协议,所以对TCP/IP协议的完善和改进是非常必要的。TCP/IP协议从开始设计时候并没有考虑到现在网络上如此多的威胁,由此导致了许多形形色色的攻击方法,一般针对协议原理的攻击(尤其是DDoS(Distributed Denial of Service,分布式拒绝服务))使人们无能为力。
专利申请号20041005005 1.1(公开号CN1716868)的发明专利申请“一种抵御拒绝服务攻击的方法”提出了一种抵御拒绝服务DoS(Denial of Service)攻击的方法,系统设备记录所管辖终端的IP地址和TCP/UDP端口信息,还包括以下步骤:系统设备接收到报文后,提取报文的IP地址和TCP/UDP端口信息,然后在系统设备所记录的终端信息中检索该IP地址和TCP/UDP端口信息,若检索到,将报文置入高优先级队列处理;否则将该信令报文置入低优先级队列处理;并且,系统设备对于置入高优先级队列的报文,进一步判断该报文的流量是否达到设置的速率上限,若是,将报文置入低优先级队列处理,否则继续当前的处理。应用该发明,使VoIP(Voice over Internet Protocol)系统的设备可以抵御DoS攻击,并且尽量减小对VoIP连接建立过程的影响。
上述专利解决了DoS攻击的问题,但是没有解决序列号欺骗攻击的问题。而通过TCP协议本身也没有解决序列号欺骗攻击的问题。TCP序列号欺骗和攻击(TCP Sequence Number Spoofing andAttack)是一种TCP攻击类型:伪造TCP序列号,构造一个伪装的TCP封包,对网络上可信主机进行攻击。
目前TCP在收到非法确认序列号时,只处理了一种情况,即小于当前发送序列号的情况。在这种情况下,TCP收到此种报文后,采取丢弃的办法。由于TCP只对小于当前发送序列号的情况进行了处理,所以在收到TCP伪造序列号(如大于当前合法发送端发送的序列号)攻击时就缺乏检测和回避的手段。当接收端收到来自第三方的伪造序列号的数据报文后,会发送大于合法发送端发送序列号的确认报文给合法发送端,发送端的处理只是一个回复带有正确序列号的ACK报文,此时合法两端由于序列号的错位而发生较大流量的确认风暴,如果合法发送端还有数据待发送,那么发送数据继续执行,当发送的序列号超过了前面的非法确认序列号后,受到非法插入数据攻击的现象将被掩盖,而非法数据将被送到上层应用,危害严重。
图1是插入式攻击的原理图。A、B分别是TCP连接的合法两端。A端是发送数据的一端,B端是接收数据的一端。C是要对A、B两端的TCP连接发起攻击的一端。图中所示的带方向的箭头是指发送数据和发送数据的方向。箭头之上的文字,是指本次发送所包含的相关意义。图下方的纵向虚线指的是按照TCP协议继续收发数据。
步骤101:A端发出序列号为100的100个字节的数据到B端。
步骤102:B端收到该报文后,会向A端回应一个确认序列号为201的ACK报文。
步骤103:C端作为攻击源捕捉步骤101和步骤102中A端和B端之间交互的报文序列号。C端根据捕获的信息,向B端发送一个200个字节的攻击数据。
步骤104:由于B端无法得知究竟新到数据是攻击数据还是正常数据(因为从序列号来看完全是正常的数据)。所以根据收到的报文,它会向A端回应确认报文,确认序列号为401。
步骤105:A端收到确认序列号为401的报文,发现该序列号的数据实际上在A端根本就没有发出,那么按照协议要求,会给B端按照201这个序列号发一个ACK报文。
步骤106:B端收到201序列号的ACK报文,会认为A端没有收到401这个确认报文,会再次发送401确认报文。
步骤107:A端收到这个报文又会再次进入步骤105流程。
由此,如果A端没有新发数据的话,那么就会在A端和B端产生确认风暴。如果A端继续发送数据,那么当A端发出的数据的序列号超过401后,B端和A端又会进入正常的发包、确认流程。而此时,C端发出的攻击报文的数据已经上交到了上层应用。而除非数据本身有特殊的校验方法,否则攻击内容对用户来说就是不可知的,非常危险。
因此,需要一种解决方案来有效侦测并避免TCP序列号欺骗和攻击。
发明内容
本发明的主要目的在于提供一种检测TCP插入式攻击的方法及系统,用来克服TCP收到伪造序列号攻击时没有回避手段的问题,用简单可行的方法提高TCP的可靠性。
为了实现上述目的,根据本发明的第一方面,本发明提供了一种检测TCP插入式攻击的方法。方法包括以下步骤:
步骤S1020,发送端向接收端发送数据,并接收来自接收端的确认报文;
步骤S1040,发送端判断确认报文的确认序列号是否大于发送序列号,如果确认序列号不大于发送序列号,则返回至步骤S1020或完成数据传送,如果确认序列号大于发送序列号,则进行步骤S1060;
步骤S1060,发送端将设置了攻击标识的回应报文发送至接收端;以及
步骤S1080,接收端通过回应报文中的攻击标识获知TCP链路受到插入式攻击。
在步骤S1080之后,接收端可以将错误信息报告给上层应用。接收端可以通过回调函数来将错误信息报告给上层应用。
攻击标识可以包括在TCP首部标识位中的保留位中的一位。攻击标识默认置0,在步骤S1060中,发送端将攻击标识置1。
为了实现上述目的,根据本发明的第二方面,本发明提供了一种检测TCP插入式攻击的系统。系统包括:发送端,用于向接收端发送数据和回应报文,并接收来自接收端的确认报文;接收端,用于接收来自发送端的数据,并发送确认报文;判断模块,位于发送端侧,用于判断确认报文的确认序列号是否大于发送端的发送序列号;以及处理模块,位于发送端侧,用于当判断模块判断出确认序列号不大于发送序列号时,控制发送端继续发送数据或完成数据传送,以及用于当判断模块判断出确认序列号大于发送序列号时,控制发送端将设置了攻击标识的回应报文发送至接收端,使得接收端通过回应报文中的攻击标识获知TCP链路受到插入式攻击。
攻击标识可以包括在TCP首部标识位中的保留位中的一位。攻击标识默认置0,在判断模块判断出确认序列号大于发送序列号之后,攻击标识被置1。
接收端还可以用于在获知TCP链路受到插入式攻击之后将错误信息报告给上层应用。接收端可以通过回调函数来将错误信息报告给上层应用。
通过上述技术方案,本发明通过在发送端检查到序列号攻击之后,向接收端发送序列号攻击标识信息,实现了对TCP插入式攻击的有效检测和上报。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明所要解决的TCP插入式攻击的原理图;
图2是根据本发明的检测TCP插入式攻击的方法的流程图;
图3是根据本发明的检测TCP插入式攻击的系统的框图;
图4是根据本发明实施例的解决方案流程图;以及
图5是根据本发明实施例的所需要修改的TCP报头的结构图。
具体实施方式
下面将参考附图详细说明本发明。
参照图2,根据本发明的检测TCP插入式攻击的方法包括以下步骤:
步骤S1020,发送端向接收端发送数据,并接收来自接收端的确认报文。
步骤S1040,发送端判断确认报文的确认序列号是否大于发送序列号,如果确认序列号不大于发送序列号,则返回至步骤S1020或完成数据传送,如果确认序列号大于发送序列号,则进行步骤S1060。
步骤S1060,发送端将设置了攻击标识的回应报文发送至接收端。攻击标识可以包括在TCP首部标识位中的保留位中的一位。攻击标识默认置0,在本步骤中,发送端将攻击标识置1。
步骤S1080,接收端通过回应报文中的攻击标识获知TCP链路受到插入式攻击。在步骤S1080之后,接收端可以通过回调函数来将错误信息报告给上层应用。
参照图3,根据本发明的检测TCP插入式攻击的系统10包括:发送端20、接收端30、判断模块22、和处理模块24。
发送端20用于向接收端30发送数据和回应报文,并接收来自接收端30的确认报文。
接收端30用于接收来自发送端20的数据,并发送确认报文。接收端30还可以用于在获知TCP链路受到插入式攻击之后将错误信息报告给上层应用。接收端30可以通过回调函数来将错误信息报告给上层应用。
判断模块22位于发送端20侧,用于判断确认报文的确认序列号是否大于发送端20的发送序列号。
处理模块24位于发送端20侧,用于当判断模块22判断出确认序列号不大于发送序列号时,控制发送端20继续发送数据或完成数据传送,以及用于当判断模块22判断出确认序列号大于发送序列号时,控制发送端20将设置了攻击标识的回应报文发送至接收端30,使得接收端30通过回应报文中的攻击标识获知TCP链路受到插入式攻击。
攻击标识可以包括在TCP首部标识位中的保留位中的一位。攻击标识默认置0,在判断模块22判断出确认序列号大于发送序列号之后,攻击标识被置1。
本发明所公开的避免TCP插入式攻击的方法的实例包括以下内容:
通过使用TCP报文的TCP首部标识位中的保留位来标识TCP连接被攻击的情况,在这6位保留位中取一位,命名为OVERFLOW。此位默认为置0值。
其中,OVERFLOW位置1即表示,当前收到的确认报文的确认序列号超出了发送序列号。OVERFLOW位置0即表示,没有发生确认序列号异常。
发送端,在收到的确认报文的确认序列号超过本地发送序列号后,在回复报文中将OVERFLOW位置1,其他内容依现有协议处理方式处理。
接收端,增加判断OVERFLOW位被置1后能够通知上层应用的处理方法,如使用回调函数的方式。本文中假定回调函数名为overflow_upcall。
在回调函数中调用向上层应用发消息的函数,发送ERROR信息,ERROR编号为预先定义的OVERFLOW错误类型。
接收端在TCP的接收函数内处理该标志,如果发现该位置1,则通过overflow_upcall回调函数通知上层应用,由上层应用决定如何进行下一步处理。
下面结合附图对技术方案的实施作进一步详细描述。
图4是本发明实施例的解决方案流程图。类似于图1,图4中所涉及的A、B分别是TCP连接的合法两端。A端是发送数据的一端,B端是接收数据的一端。C是要对A、B两端的TCP连接发起攻击的一端。图中所示的带方向的箭头是指发送数据和发送数据的方向。箭头之上的文字,是指本次发送所包含的与本发明相关的意义。实线椭圆框为本端在收到上步完成后所做的操作。虚线椭圆框是标注信息。图下方的纵向虚线指的是按照TCP协议继续收发数据。
虚线框所画出的内容(步骤201-步骤204)为与图1所描述的步骤101-步骤104完全相同的步骤。此处不做赘述。下面将直接从步骤205开始介绍。
步骤205:根据本发明的方案,在步骤204中,A端收到来自B端的确认序列号为401的报文,发现该序列号的数据实际上在A端根本就没有发出。此时进入OVERFLOW流程。在将要回复的ACK报文中将OVERFLOW位置1,发送序列号设置为201,向B端发送ACK报文。
步骤206:在B端收到A端发过来的带OVERFLOW标志的ACK报文后,在接收流程中,判断OVERFLOW标志,如果该位被置1,则表示链路受到插入数据的攻击。调用回调函数overflow_upcall(在前面技术方案的描述中假定通知上层应用的回调函数为overflow_upcall)。回调函数overflow_upcall中,执行向上层应用发ERROR消息,错误码置为OVERFLOW错误所对应的错误码。
步骤207:B端的上层应用在处理ERROR消息的代码中,根据错误码的值得知系统收到的数据被插入攻击,则根据自身的情况自行进行下一步操作(如打印提示,关闭连接等)。
图5是本发明所需要修改的TCP报头的结构图。
图形采用一行描述32位的方式绘制了TCP协议的TCP首部所包含的字段信息。其中在HLEN字段和TCP原有标识(未加入本发明所设置的OVERFLOW位前)之间有6位保留位。本发明在这6位保留位中取其中一位作为OVERFLOW位。此位默认置0值。
本发明在对已有系统改动及影响最小的情况下实现了检测和回避TCP插入式攻击的功能,使得在TCP链路受到攻击的情况下,能够检测出来状态,并提供可扩展的下一步操作,而且完全兼容原有协议的处理。
本发明对于处理TCP的虚假序列号插入式攻击的问题的解决提供了以下的益处:
在本发明所实现的两端,能够检测出连接受到插入式攻击的情况。
在本发明所实现的两端,能够避免由于插入式攻击所带来的确认风暴。
在本发明所实现的两端,能够在检测出连接受到攻击之后,通知上层应用。
本发明能够完全兼容现有的协议处理。在本发明实现的一端和未实现的一端相互通信时不会造成任何的引入异常。
通信双方只有都实现了本发明时才会有进一步的处理,任何一方未实现,将仍然按照原协议处理方式处理。
处理简单,现有代码只要少量修改即可。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种检测TCP插入式攻击的方法,其特征在于,所述方法包括以下步骤:
步骤S1020,发送端向接收端发送数据,并接收来自所述接收端的确认报文;
步骤S1040,所述发送端判断所述确认报文的确认序列号是否大于发送序列号,如果所述确认序列号不大于所述发送序列号,则返回至步骤S1020或完成数据传送,如果所述确认序列号大于所述发送序列号,则进行步骤S1060;
步骤S1060,所述发送端将设置了攻击标识的回应报文发送至所述接收端;以及
步骤S1080,所述接收端通过所述回应报文中的所述攻击标识获知TCP链路受到插入式攻击。
2.根据权利要求1所述的方法,其特征在于,所述攻击标识包括在TCP首部标识位中的保留位中的一位。
3.根据权利要求1所述的方法,其特征在于,在步骤S1080之后,所述接收端将错误信息报告给上层应用。
4.根据权利要求2所述的方法,其特征在于,所述攻击标识默认置0,在步骤S1060中,所述发送端将所述攻击标识置1。
5.根据权利要求3所述的方法,其特征在于,所述接收端通过回调函数来将错误信息报告给所述上层应用。
6.一种检测TCP插入式攻击的系统,其特征在于,所述系统包括:
发送端,用于向接收端发送数据和回应报文,并接收来自所述接收端的确认报文;
所述接收端,用于接收来自所述发送端的数据,并发送所述确认报文;
判断模块,位于所述发送端侧,用于判断所述确认报文的确认序列号是否大于所述发送端的发送序列号;以及
处理模块,位于所述发送端侧,用于当所述判断模块判断出所述确认序列号不大于所述发送序列号时,控制所述发送端继续发送数据或完成数据传送,以及用于当所述判断模块判断出所述确认序列号大于所述发送序列号时,控制所述发送端将设置了攻击标识的所述回应报文发送至所述接收端,使得所述接收端通过所述回应报文中的所述攻击标识获知TCP链路受到插入式攻击。
7.根据权利要求6所述的系统,其特征在于,所述攻击标识包括在TCP首部标识位中的保留位中的一位。
8.根据权利要求6所述的系统,其特征在于,所述接收端还用于在获知TCP链路受到插入式攻击之后将错误信息报告给上层应用。
9.根据权利要求7所述的系统,其特征在于,所述攻击标识默认置0,在所述判断模块判断出所述确认序列号大于所述发送序列号之后,所述攻击标识被置1。
10.根据权利要求8所述的系统,其特征在于,所述接收端通过回调函数来将错误信息报告给所述上层应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101271398A CN101141443A (zh) | 2006-09-05 | 2006-09-05 | 检测tcp插入式攻击的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101271398A CN101141443A (zh) | 2006-09-05 | 2006-09-05 | 检测tcp插入式攻击的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101141443A true CN101141443A (zh) | 2008-03-12 |
Family
ID=39193188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006101271398A Pending CN101141443A (zh) | 2006-09-05 | 2006-09-05 | 检测tcp插入式攻击的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101141443A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413134A (zh) * | 2011-11-17 | 2012-04-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种传送数据的方法、系统及通信终端 |
CN102655509A (zh) * | 2012-05-07 | 2012-09-05 | 福建星网锐捷网络有限公司 | 一种网络攻击识别方法及装置 |
CN103138904A (zh) * | 2011-11-30 | 2013-06-05 | 鼎桥通信技术有限公司 | 报文处理方法、装置及系统 |
CN104137513A (zh) * | 2012-09-17 | 2014-11-05 | 华为技术有限公司 | 攻击防范方法和设备 |
CN106657078A (zh) * | 2016-12-27 | 2017-05-10 | 京信通信技术(广州)有限公司 | Tcp传输方法及装置 |
-
2006
- 2006-09-05 CN CNA2006101271398A patent/CN101141443A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102413134A (zh) * | 2011-11-17 | 2012-04-11 | 宇龙计算机通信科技(深圳)有限公司 | 一种传送数据的方法、系统及通信终端 |
CN103138904A (zh) * | 2011-11-30 | 2013-06-05 | 鼎桥通信技术有限公司 | 报文处理方法、装置及系统 |
CN102655509A (zh) * | 2012-05-07 | 2012-09-05 | 福建星网锐捷网络有限公司 | 一种网络攻击识别方法及装置 |
CN102655509B (zh) * | 2012-05-07 | 2014-12-24 | 福建星网锐捷网络有限公司 | 一种网络攻击识别方法及装置 |
CN104137513A (zh) * | 2012-09-17 | 2014-11-05 | 华为技术有限公司 | 攻击防范方法和设备 |
CN104137513B (zh) * | 2012-09-17 | 2018-01-09 | 华为技术有限公司 | 攻击防范方法和设备 |
CN106657078A (zh) * | 2016-12-27 | 2017-05-10 | 京信通信技术(广州)有限公司 | Tcp传输方法及装置 |
CN106657078B (zh) * | 2016-12-27 | 2020-05-05 | 京信通信系统(中国)有限公司 | Tcp传输方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101390064B (zh) | 利用嵌入的认证信息防止网络重置拒绝服务攻击 | |
CN105827646B (zh) | Syn攻击防护的方法及装置 | |
CA2516975C (en) | Using tcp to authenticate ip source addresses | |
US7715314B2 (en) | Communication terminal and retransmission control method | |
CN101175013B (zh) | 一种拒绝服务攻击防护方法、网络系统和代理服务器 | |
CN101729513B (zh) | 网络认证方法和装置 | |
CN110198293B (zh) | 服务器的攻击防护方法、装置、存储介质和电子装置 | |
CN101202742A (zh) | 一种防止拒绝服务攻击的方法和系统 | |
EP1847093A1 (en) | Apparatus, method and computer program product to reduce tcp flooding attacks while conserving wireless network bandwidth | |
CN102025483A (zh) | 无线路由器及利用该无线路由器预防恶意扫描的方法 | |
CN101141443A (zh) | 检测tcp插入式攻击的方法和系统 | |
CN106685930A (zh) | 一种传输控制协议选项的处理方法及装置 | |
CN102946387A (zh) | 一种防御拒接服务攻击的方法 | |
EP2241044B1 (en) | Method of communication, in particular with capability of frame abortion or retransmission indication, between a transmitter and a receiver based on frames, and corresponding communication node | |
US20080285468A1 (en) | Method and computer-readable medium for detecting abnormal packet in VoIP | |
US9055099B2 (en) | Method of preventing TCP-based denial-of-service attacks on mobile devices | |
WO2014194806A1 (zh) | 在多路传输控制协议中的链路处理方法和移动终端 | |
CN102045251B (zh) | 路由器及tcp端口防御方法 | |
TW200412750A (en) | Data communication method and information processing device | |
CN100541437C (zh) | 防止网络重置拒绝服务攻击 | |
CN1906884B (zh) | 防止网络数据注入攻击 | |
CN100459611C (zh) | 超文本传输协议服务的安全管理方法 | |
KR20160110791A (ko) | 보이스피싱 감시 시스템 | |
CN101594596B (zh) | 短消息存储器可用通告消息的处理方法以及移动终端 | |
US20060053484A1 (en) | Authentication system and method thereof for dial-up networking connection via terminal |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20080312 |