CN101771695A - Tcp连接的处理方法、系统及syn代理设备 - Google Patents
Tcp连接的处理方法、系统及syn代理设备 Download PDFInfo
- Publication number
- CN101771695A CN101771695A CN201010002322A CN201010002322A CN101771695A CN 101771695 A CN101771695 A CN 101771695A CN 201010002322 A CN201010002322 A CN 201010002322A CN 201010002322 A CN201010002322 A CN 201010002322A CN 101771695 A CN101771695 A CN 101771695A
- Authority
- CN
- China
- Prior art keywords
- tcp
- message
- server
- client terminal
- access request
- 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
- Computer And Data Communications (AREA)
Abstract
本发明提供一种TCP连接的处理方法、系统及SYN代理设备,方法包括:接收到客户终端发送的、用于请求建立与服务器之间的第一TCP连接的第一同步报文后,与客户终端建立第二TCP连接;在第二TCP连接建立之后,若接收到客户终端发送的访问请求消息,则控制建立上述第一TCP连接,并将访问请求消息转发给服务器。本发明通过对SYN代理进行改进,当SYN代理与客户端完成TCP三次握手连接之后,只有在再次接收到客户端发送的访问请求后,才开始建立与服务器之间的连接,从而保证了TCP全连接的攻击无法到达服务器,使得服务器不仅能够很好地对SYN FLOOD的攻击进行防御,还能够免受到TCP全连接的攻击,提高了WEB服务器的安全性。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种TCP连接的处理方法、系统及SYN代理设备。
背景技术
随着互联网带宽的增加和黑客工具的不断发布,分布式拒绝服务
(Distributed Denial of Service,简称DDOS)攻击的事件越来越多,给网络服务器以及客户带来了极大的困扰。同步洪水攻击(synchronous flood,简称SYN FLOOD)为DDOS攻击中较为常见器且作为有效的一种,其实施的具体方式为:利用传输控制协议(Transmission Control Protocol,简称TCP)连接建立过程中必须的三次握手信息的交互,模拟客户端发送用于请求建立TCP连接的TCP连接请求给服务器,而在服务器返回响应包后,却并不返回作为应答的确认信息为服务器,从而使得服务器对该条TCP连接的建立始终处于半连接的状态,不断发送重复的响应包给客户端。而当这样的伪造的TCP连接请求的数据量很大时,将会导致服务器的缓存资源被耗尽或者忙于发送回应包而造成拒绝服务,即导致服务器的失效。
为了解决上述问题,现有技术中提出了一种在服务器的防火墙上设置SYN代理,以对客户端发送的TCP连接请求进行过滤及检测的方案。在该方案中,SYN代理在接收到客户端发送的TCP连接请求后,模拟服务器发送响应包给客户端,并将该TCP连接请求进行缓存,且只有在接收到客户端根据该响应包返回的确认信息后,才再将之前缓存的TCP连接请求发送给服务器,以最终建立与服务器之间的TCP连接。通过SYN代理对TCP连接请求的过滤,只有能够返回确认信息的TCP连接才能最终被发送至服务器,从而保证了到达服务器的连接都是合法的连接,能够有效地防御SYN FLOOD的攻击。
但是发明人在实现本发明的过程中发现:上述解决方案虽然在一定程度上能够对SYN FLOOD的攻击进行有效的防御,但是,当服务器遭到其他类型的DDOS攻击,例如TCP全连接攻击时,现有的SYN代理便无法起到很好的防范作用。具体地,在TCP全连接攻击中,攻击者会控制大量的“僵尸主机”不断发送TCP连接请求给服务器,并且在接收到服务器发送的响应包后,也会返回确认信息,以此正常地建立与服务器之间的TCP连接。但是,在建立了TCP连接之后,攻击者并不发送具体的应用请求(具体指WEB资源访问请求)给服务器,从而使得服务器在与客户端建立了TCP连接后,在没有接收到应用请求时不能断开该TCP连接,释放掉用于维持该TCP连接所必需的资源。如此一来,即使在服务器与客户端之间设置SYN代理,也无法避免恶意的TCP全连接的攻击,服务器在大量的TCP全连接攻击下同样会因为需要维持大量的TCP连接,而导致资源被耗尽而被拖垮,从而造成拒绝服务。
发明内容
本发明实施例提供一种TCP连接的处理方法、系统及SYN代理设备,用以解决现有技术中,通过SYN代理控制TCP连接的建立的方案,虽然能够在一定程度上有效地防御SYN洪水的攻击,但是却无法对TCP全连接攻击进行有效防御的问题,实现一种更好的保WEB服务器遭受DDOS攻击的方法。
为实现上述目的,本发明实施例提供一种TCP连接的处理方法,包括:
接收到客户终端发送的、用于请求建立与服务器之间的第一TCP连接的第一同步报文后,与所述客户终端建立第二TCP连接;
若接收到所述客户终端发送给所述服务器的访问请求消息,则控制建立所述客户终端与所述服务器之间的所述第一TCP连接,并将所述访问请求消息转发给所述服务器。
为实现上述目的,本发明实施例还提供一种SYN代理设备,包括:
第一TCP连接建立模块,用于接收到客户终端发送的、用于请求建立与服务器之间的第一TCP连接的第一同步报文后,与所述客户终端建立第二TCP连接;
第二TCP连接建立模块,用于若接收到所述客户终端发送给所述服务器的访问请求消息,则控制建立所述客户终端与所述服务器之间的所述第一TCP连接,并将所述访问请求消息转发给所述服务器。
为实现上述目的,本发明实施例还提供一种TCP连接的处理系统,包括:上述的SYN代理设备,以及与所述SYN代理设备连接的客户终端和服务器。
本发明实施例提供的TCP连接的处理方法、系统及SYN代理设备,通过对服务器的防火墙上设置的SYN代理进行改进,当SYN代理与客户端完成TCP三次握手连接之后,并不直接与服务器建立连接,而是只有在再次接收到客户端发送的访问请求后,才开始建立与服务器之间的连接,从而保证了TCP全连接的攻击无法到达服务器,使得SYN代理在TCP连接的处理过程中,不仅能够很好地对SYN FLOOD的攻击进行防御,还能够保护服务器免受到TCP全连接的攻击,提高了服务器的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明TCP连接的处理方法实施例一的流程图;
图2为本发明TCP连接的处理方法实施例二的信令图;
图3为本发明SYN代理设备实施例一的结构示意图;
图4为本发明SYN代理设备实施例二的结构示意图;
图5为本发明TCP连接的处理系统实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明TCP连接的处理方法实施例一的流程图,如图1所示,本实施例具体包括如下步骤:
步骤100,接收到客户终端发送的、用于请求建立与服务器之间的第一TCP连接的第一同步报文后,与客户终端建立第二TCP连接;
在网络安全领域中,为了防御恶意的攻击者发起的SYN FLOOD攻击,会在服务器的防火墙上设置一个SYN代理,该SYN代理能够在客户终端发出的TCP连接请求到达服务器之前,对该TCP连接请求的非法性进行检测。具体地,SYN代理通过设置在客户终端与服务器之间,客户终端发起的TCP连接请求在通过服务器的防火墙发送给服务器时,会被该SYN代理截获,而SYN代理不将其直接转发给服务器,而是模拟服务器尝试与发送TCP连接请求的客户终端之间建立一TCP连接,若与SYN代理与客户终端之间的TCP连接建立成功,则证明此时客户终端发送的TCP连接请求为一合法请求。具体地,在本实施例中,称客户终端发送的TCP连接请求中、指示的想要建立的客户终端与服务器之间的TCP连接为第一TCP连接,而称SYN代理在接收到TCP连接请求之后,建立的与客户终端之间的TCP连接为第二TCP连接。而且通过基于TCP连接的三次握手协议,客户终端发送的TCP连接请求通常为一同步报文(SYN报文),在本实施例中,称该SYN报文为第一SYN报文。
步骤101,在第二TCP连接建立之后,若接收到客户终端发送给服务器的访问请求消息,则控制建立客户终端与服务器之间的第一TCP连接,并将访问请求消息转发给服务器。
当SYN代理对接收到的TCP连接请求进行检测,且通过检测证明该TCP连接请求为一合法的请求,与客户终端建立了第二TCP连接之后,在本实施例中,SYN代理并不是按照现有的处理流程一样,将客户终端发送的TCP连接请求又转发给服务器,以建立客户终端与服务器之间的连接。具体地,在本实施例中,为了使SYN代理能够在对SYN FLOOD的攻击进行防御之外,还能对DDOS攻击中的另一种很常见的攻击,即TCP全连接攻击进行有效的防御,SYN代理在与客户终端建立了第二TCP连接,且证明了该TCP连接请求为一合法请求之后,将等待客户终端向服务器发送基于该TCP连接上的应用请求消息,具体指一访问请求消息,只有在接收到该访问请求消息后,才开始进行与服务器建立TCP连接的过程。
具体地,对于一正常的客户终端来说,其向服务器发送TCP连接请求的目的通常是为了,通过该建立的TCP连接访问服务器上的WEB资源,因此,若一客户终端在与服务器建立了TCP连接之后,却又不向该服务器发送用于请求访问相关资源的访问请求消息,可以断定该TCP连接请求为恶意的攻击者控制“僵尸主机”发起的TCP全连接攻击。于是,在本实施例中,SYN代理在与客户终端建立了彼此之间的第二TCP连接之后,若没有接收到客户终端在建立了第一TCP连接之后发出的、针对服务器的访问请求消息,则认为该TCP连接请求为一TCP全连接攻击所发出的TCP连接请求,便不会继续向服务器发送用于触发建立客户终端与服务器之间的第一TCP连接的TCP连接请求,从而服务器收不到该TCP连接请求,也不会响应建立TCP连接,更不会为了维持该TCP连接而消耗不必要的资源,有效地防御了TCP全连接的攻击。
相反地,若SYN代理在与客户终端建立了第二TCP连接之后,接着接收到了该客户终端发送的访问请求消息,则排除了该客户终端发出的TCP连接请求为恶意的攻击者控制“僵尸主机”而发出的TCP全连接攻击的可能。于是,SYN代理接着采用TCP三次握手协议,控制建立客户终端与服务器之间的第一TCP连接,并将接收到的访问请求消息转发给服务器。
另外需要说明的是,在本发明实施例中,所指的服务器具体为一WEB服务器,同时,本发明实施例中所指的客户终端发送的访问请求消息具体为针对WEB服务器的WEB资源访问请求,而在本实施例中仅以服务器和访问请求消息来做出描述,所属领域的技术人员都应了解,基于TCP连接的建立,客户终端所对应的服务器通常为一WEB服务器。
本实施例的TCP连接的处理方法,通过对WEB服务器的防火墙上设置的SYN代理进行改进,当SYN代理与客户端完成TCP三次握手连接之后,并不直接与服务器建立连接,而是只有在再次接收到客户端发送的正确的WEB资源请求后,才开始建立与WEB服务器之间的连接,从而保证了TCP全连接的攻击无法到达WEB服务器,使得SYN代理在TCP连接的处理过程中,不仅能够很好地对SYN FLOOD的攻击进行防御,还能够保护WEB服务器免受到TCP全连接的攻击,提高了WEB服务器的安全性。
图2为本发明TCP连接的处理方法实施例二的信令图,如图2所示,本实施例具体包括如下步骤:
步骤200,SYN代理接收客户终端发送、用于请求建立与WEB服务器之间的TCP连接的第一SYN报文;
具体地,当客户终端需要通过一WEB浏览器(或者其他的应用),访问一WEB服务器上的资源时,其需要首先与该WEB服务器建立一支持该WEB资源访问操作的TCP连接。而根据TCP连接的三次握手协议,客户终端首先将发送一TCP连接请求,即一SYN报文给WEB服务器。在本实施例中,具体称此时客户终端发送的SYN报文为第一SYN报文,遵循TCP协议的规定,该第一SYN报文中携带了客户终端随机生成的任意值的顺序号(Sequence number)、以及数值为零的确认号(Acknowledge number)。
而由于在本实施例中,为了对网络上恶意的攻击者发起的SYN FLOOD攻击进行防御,在WEB服务器的防火墙上,安装了一SYN代理,因此此时客户终端发送给WEB服务器的第一SYN报文将由该SYN代理接收到。
步骤201,SYN代理从第一SYN报文中提取出TCP选项信息,并将该TCP选项信息进行缓存;
而SYN代理接收到客户终端发送的第一SYN报文后,在本实施例中,并非如现有的SYN代理执行流程一样,立刻按照TCP连接的三次握手协议中的规定,发送一对该第一SYN报文的响应,即一同步确认(SYNACK)报文给客户终端,而是首先从接收到的第一SYN报文中提取出其中的TCP选项信息,并将提取出的TCP选项信息进行暂时的缓存。
这样的目的在于:由于对于现有的SYN代理来说,其虽然能够通过在接收到客户终端的TCP连接请求后,根据对接收到的TCP连接请求的检测,使不合法的TCP连接请求无法到达服务器,有效地对SYN FLOOD攻击进行防御。但是由于为了能够在证明出该TCP连接请求为一合法请求后,在后续的流程中能够继续与服务器建立TCP连接,在最初接收到客户终端发送的TCP连接请求的第一SYN报文后,SYN代理需要将该第一SYN报文进行缓存,这样一来,若SYN代理遭受到SYN FLOOD的攻击,大量的第一SYN报文都缓存在SYN代理上,运行SYN代理的服务器的防火墙系统的有限内存,会因为需要缓存大量的SYN报文而被迅速耗尽。实质上,这相当于将服务器遭受SYN FLOOD攻击的压力转移到了SYN代理所处的防火墙上。
于是,在本实施例中,SYN代理在接收到TCP连接请求的第一SYN报文后,只将其中关键的TCP选项信息进行缓存,在之后需要向服务器发送请求建立TCP连接的第二SYN报文时,再根据缓存的该TCP选项信息,重新构造出第二SYN报文,发送给服务器。由于TCP选项信息远远小于原有的第一SYN报文信息,因此其所消耗的内存大大减小,大大减轻了防火墙系统内存的压力,也更进一步地对SYN FLOOD攻击进行了更有效的防御。
具体地,此处所指的TCP选项信息包括第一SYN报文中的窗口大小(Windows scale)信息、启动选择性确认(SACK-Permit)信息、最大分段大小(Maximum Segment Size,简称MSS)信息以及最大传输单元(MaximumTransmission Unit,简称MTU)信息等信息。
步骤202,SYN代理根据接收到的第一SYN报文,模拟WEB服务器返回第一同步确认(SYNACK)报文给客户终端;
SYN代理将第一SYN报文中的TCP选项信息进行缓存之后,根据TCP连接的三次握手协议,为了建立与客户终端之间的第二TCP连接,SYN代理将根据该第一SYN报文,模拟WEB服务器返回一SYNACK报文给客户终端,以作为对接收到的第一SYN报文的响应。具体地,在本实施例中,称SYN代理此时返回的SYNACK报文为第一SYNACK报文,且根据三次握手协议的规定,该第一SYNACK报文中的Acknowledge number应为第一SYN报文的Sequence number加1,而第一SYNACK报文中的Sequence number则应为SYN代理模拟WEB服务器,自动地随机生成的一任意值。
步骤203,客户终端根据第一SYNACK报文,返回第一确认(ACK)报文给SYN代理;
而客户终端接收到SYN代理发送的第一SYNACK报文后,并不知道该第一SYNACK报文为SYN代理发送,而是以为这为服务器返回的SYN报文响应,于是,客户终端接着根据该第一SYNACK报文,返回一ACK报文给WEB服务器。具体地,在本实施例中,称客户终端此时返回的ACK报文为第一ACK报文,根据TCP连接的三次握手协议的规定,该第一ACK报文中的Acknowledge number应为第一SYNACK报文中的Sequence number加1,而第一ACK报文中的Sequence number则应为客户终端发送的第一个TCP报文,即第一SYN报文中的Sequence number加1。
步骤204,SYN代理接收到客户终端发送的TCP报文;
步骤205,SYN代理识别接收到的TCP报文是否为一访问请求消息;
SYN代理接收到客户终端返回的第一ACK报文后,根据该第一ACK报文可以确认,此次客户终端发起的TCP连接请求为一合法的请求,而并非SYNFLOOD的攻击。按照现有的SYN代理的流程,此时SYN代理在排除了SYNFLOOD攻击的可能之后,将继续向WEB服务器发起TCP连接请求,以控制建立客户终端与WEB服务器之间的第一TCP连接。但是在本实施例中,为了进一步地对DDOS攻击中的另一种攻击类型,即TCP全连接攻击进行防御,SYN代理此时并不立刻向WEB服务器发出TCP连接请求,而是等待客户终端在返回了ACK报文之后,再次发送的WEB资源访问请求。只有在接收到了客户终端接着发送的访问请求后,才能最终断定,此次建立的TCP连接并非恶意的攻击者欲通过控制“僵尸主机”发出TCP连接请求,而建立的用于消耗服务器内存的无意义的TCP连接,即排除了TCP全连接攻击的可能。
于是,SYN代理在接收到客户终端返回的第一ACK报文之后,若再接收到客户终端接着发送的一TCP报文,为了确定该TCP报文是否为一访问请求消息,将对该TCP报文进行应用协议的识别。具体地,该识别过程为:SYN代理从接收到的TCP报文中提取出其中的TCP数据字段,若提取出的TCP数据字段是超文本传输协议(Hypertext Transfer Protocol,简称HTTP)规定的请求消息格式,例如其中包含了请求字段、完整的统一资源地址(UniformResource Locator,简称URL)字段、以及其他的相关信息,即该TCP数据字段是HTTP协议的请求消息,则认为该TCP报文为一典型的WEB资源访问请求报文,即为一访问请求消息。于是,SYN代理此时可以断定此次的TCP连接除了并非一SYN FLOOD攻击之外,也并非一TCP全连接攻击,因此,SYN代理可以在此识别的基础上进一步地向服务器发送TCP连接请求,以建立服务器与客户终端之间的第一TCP连接。
步骤206,SYN代理若识别到TCP报文为一访问请求消息,则根据该访问请求消息,模拟客户终端构造第二SYN报文;
步骤207,SYN代理将第二SYN报文发送给WEB服务器;
具体地,SYN代理在识别到接收到的TCP报文为一访问请求消息后,将根据该访问请求消息,模拟客户终端,构造一个用于请求建立客户终端与WEB服务器之间的第一TCP连接的TCP连接请求,并发送给WEB服务器。在本实施例中,称此时SYN代理构造的新的TCP连接请求的SYN报文为第二SYN报文。具体地,SYN代理在访问请求消息的基础上,构造第二SYN报文的过程包括:
SYN代理首先提取出访问请求消息中的数据字段,并将该数据字段删除。由于此时客户终端发送的访问请求消息实质上为基于TCP传输协议和HTTP应用协议的一TCP报文,而根据TCP协议的规定,该TCP报文中的数据字段为基于HTTP应用协议的实质数据部分,包括了用于访问请求的相关信息,而在构造用于TCP连接请求的第二SYN报文时,该部分信息是不需要的,因此,SYN代理首先将这部分的数据进行删除,再进行其它的修改。
接着,SYN代理提取出访问请求消息TCP报头中的Sequence number和Acknowledge number,在此基础上将Sequence number减1生成第二SYN报文的Sequence number,并将第二SYN报文中的Acknowledge number设置为0。具体地在本实施例中称从访问请求消息中提取的Sequence number为第一顺序号,而称将第一顺序号减1生成的第二SYN报文的Sequence number为第二顺序号。
该步骤的原因在于:对于客户终端而言,其在发送了第一ACK报文之后,接着发送的该访问消息请求实质上也是以一ACK报文的形式发送的SYN代理的,而由于在发送第一ACK报文和发送访问消息请求之间,客户终端并没有接收到SYN代理发送的任何报文数据,因此,此时客户终端发送的访问消息请求中的Sequence number和Acknowledge number不会发生改变,仍然与第一ACK报文的保持一致。而根据上述对第一ACK报文的详细说明可知,第一ACK报文中的Sequence number应为第一SYN报文中的Sequencenumber加1,因此在将访问消息请求中的Sequence number,即第一顺序号减1之后,得到的第二顺序号又还原到了第一SYN报文中的Sequence number的数值。接着,SYN代理进一步地将访问请求消息中的Acknowledge number替换成0之后,这样形成第二SYN报文,其中的Sequence number和Acknowledge number,将与第一SYN报文中的Sequence number以及Acknowledge number完全保持一致。
进一步地,由于访问请求消息实质为一ACK报文,因此该消息中没有携带相应的TCP选项信息,于是为了还原第一SYN报文携带的TCP选项信息,SYN代理接着还将上述步骤201中缓存的、第一SYN报文中的TCP选项信息,添加到经上述操作后的访问请求消息中,最后形成的数据报文,便为模拟客户终端发送的一完整的SYN报文,即第二SYN报文。接着,SYN代理将该第二SYN报文发送的WEB服务器,相当于代表客户终端向WEB服务器发送了一TCP连接请求,该TCP连接请求是合法安全的。
步骤208,WEB服务器根据接收到的第二SYN报文,返回第二SYNACK报文给SYN代理;
WEB服务器接收到SYN代理发送的第二SYN报文后,通过解析得知此为客户终端发送的TCP连接请求,于是WEB服务器根据该第二SYN报文,返回一SYNACK报文给客户终端,该SYNACK报文被SYN代理接收。具体地,本实施例中,称此时服务器发送的SYNACK报文为第二SYNACK报文。
步骤209,SYN代理根据第二SYNACK报文,返回第二ACK报文给WEB服务器;
SYN代理接收到WEB服务器发送的第二SYNACK报文后,在该SYNACK报文的基础上,再返回作为应答确认的ACK报文给WEB服务器,本实施例中具体称此时发送的ACK报文为第二ACK报文。此时客户终端与WEB服务器之间的TCP连接便建立完成,而且该TCP连接的建立绝对不是一TCP连接攻击。
步骤210,SYN代理将访问请求消息转发给WEB服务器。
而为了使WEB服务器在与客户终端建立了TCP连接之后,能够接着响应客户终端的访问请求,SYN代理接着将之前接收到的、客户终端发送的访问请求消息转发给WEB服务器,而WEB服务器在响应了该访问请求,且得到了客户终端的确认后,将自动释放掉与该TCP连接相关的资源,从而不会为了维持不必要的TCP连接而浪费自身的资源。
需要说明的,SYN代理向WEB服务器转发的访问请求消息,还可以在上述步骤209中,携带在第二ACK报文中,伴随着第二ACK报文一起发送给WEB服务器,两种方式都可以达到了本发明的目的,都在本发明实施例所欲保护的范围之内。
本实施例的TCP连接的处理方法,通过对WEB服务器的防火墙上设置的SYN代理进行改进,当SYN代理与客户端完成TCP三次握手连接之后,并不直接与服务器建立连接,而是只有在再次接收到客户端发送的正确的WEB资源请求后,才开始建立与WEB服务器之间的连接,从而保证了TCP全连接的攻击无法到达WEB服务器,使得SYN代理在TCP连接的处理过程中,不仅能够很好地对SYN FLOOD的攻击进行防御,还能够保护WEB服务器免受到TCP全连接的攻击,提高了WEB服务器的安全性。进一步地,本实施例中还通过SYN代理设备在与客户终端进行TCP连接建立的过程中,当接收到客户终端发送的SYN同步报文时,只对SYN同步报文中的TCP选项信息进行缓存,还大大减轻了SYN代理设备内存的压力,也进一步地对SYN FLOOD攻击进行了更为有效的防御。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图3为本发明SYN代理设备实施例一的结构示意图,如图3所示,本实施例的SYN代理设备包括:第一TCP连接建立模块11和第二TCP连接建立模块12。其中,第一TCP连接建立模块11用于在接收到客户终端发送的、用于请求建立与服务器之间的第一TCP连接的第一同步报文后,与客户终端建立第二TCP连接;而第二TCP连接建立模块12则用于若接收到客户终端发送给服务器的访问请求消息,则控制建立客户终端与服务器之间的第一TCP连接,并将访问请求消息转发给服务器。
具体地,本实施例中的所有模块所涉及的具体工作过程,可以参考上述TCP连接的处理方法所涉及的相关实施例揭露的相关内容,在此不再赘述。
本实施例的SYN代理设备,在与客户端完成TCP三次握手连接之后,并不直接与服务器建立连接,而是只有在再次接收到客户端发送的正确的访问请求后,才开始建立与服务器之间的连接,从而保证了TCP全连接的攻击无法到达服务器,使得整个TCP连接的处理系统不仅能够很好地对SYNFLOOD的攻击进行防御,还能够保护服务器免受到TCP全连接的攻击,提高了服务器的安全性。
图4为本发明SYN代理设备实施例二的结构示意图,如图4所示,在上述SYN代理设备实施例一的基础上,本实施例的SYN代理设备中的第一TCP连接建立模块11还包括:第一发送模块111和第一接收模块112。其中,第一发送模块111用于根据接收到的第一同步报文,模拟服务器返回第一同步确认报文给客户终端;而第一接收模块112则用于接收客户终端根据第一同步确认报文返回的第一确认报文。
同样地,本实施例的SYN代理设备中的第二TCP连接建立模块12还包括:第二发送模块121、第三发送模块122以及消息转发模块123。其中,第二发送模块121用于根据接收到的访问请求消息,模拟客户终端构造第二同步报文,并将该第二同步报文发送给服务器;第三发送模块122用于接收服务器根据第二发送模块121发送的第二同步报文、返回的第二同步确认报文,并根据该第二同步确认报文返回第二确认报文给服务器,以建立服务器与客户终端之间的第一TCP连接;而消息转发模块123则用于将访问请求消息转发给服务器。务器根据第二发送模块121发送的第二同步报文、返回的第二同步确认报文,并根据该第二同步确认报文返回第二确认报文给服务器,以建立服务器与客户终端之间的第一TCP连接;而消息转发模块123则用于将访问请求消息转发给服务器。
进一步地,在上述实施方式的基础上,本实施例中,SYN代理还可以包括信息缓存模块13,用于在接收到第一同步报文之后,从第一同步报文中提取出TCP选项信息,并将TCP选项信息进行缓存。同时,第二发送模块121还可以包括报文构造模块1211和报文发送模块1212。其中,报文构造模块1211用于删除访问请求消息中的数据字段,将访问请求消息中的第一顺序号码替换成第一顺序号码加1后生成的第二顺序号码,将访问请求消息中的确认号码替换成零,并在访问请求消息中添加信息缓存模块13缓存的TCP选项信息,构造成第二同步报文;而报文发送模块1212则用于将报文构造模块1211构造的第二同步报文发送给服务器。
更进一步地,本实施例中,第二TCP连接建立模块12还可以包括报文识别模块124,用于在控制建立客户终端与服务器之间的第一TCP连接之前,若接收到客户终端发送的TCP报文,则从该TCP报文中提取出TCP数据字段,并根据提取出的TCP数据字段对接收到的TCP报文进行应用协议的识别,若识别到该TCP数据字段是HTTP协议请求消息,则确定接收到的该TCP报文为一访问请求消息。
此外还需要说明的是,在本实施例中,上述消息转发模块123可以具体用于将访问请求消息携带在第二确认报文中,在第三发送模块122返回第二确认报文给述服务器的同时,将访问请求消息一起返回给服务器。或者消息转发模块123可以具体用于在第三发送模块122返回第二确认报文给服务器之后,将访问请求消息转发给服务器。
具体地,本实施例中的上述所有模块所涉及的具体工作过程,同样可以参考上述TCP连接的处理方法所涉及的相关实施例揭露的相关内容,在此不TCP全连接的攻击无法到达WEB服务器,使得SYN代理在TCP连接的处理过程中,不仅能够很好地对SYN FLOOD的攻击进行防御,还能够保护WEB服务器免受到TCP全连接的攻击,提高了WEB服务器的安全性。,进一步地,本实施例中还通过在与客户终端进行TCP连接建立的过程中,当接收到客户终端发送的SYN同步报文时,只对SYN同步报文中的TCP选项信息进行缓存,还大大减轻了所处的防火墙的内存的压力,也进一步地对SYNFLOOD攻击进行了更为有效的防御。
图5为本发明TCP连接的处理系统实施例的结构示意图,如图5所示,本是实力的TCP连接的处理系统包括:上述的SYN代理设备1,以及分别与SYN代理设备1连接的客户终端2和服务器3。具体地,本实施例中,上述服务器3为一WEB服务器。
具体地,本实施例中的SYN代理设备的具体组成结构,以及组成该设备的所有模块所涉及的具体工作过程,同样可以参考上述TCP连接的处理方法、以及SYN代理设备所涉及的相关实施例揭露的相关内容,在此不再赘述。
本实施例的TCP连接的处理系统,通过对其中的SYN代理进行改进,当SYN代理与客户端完成TCP三次握手连接之后,并不直接与WEB服务器建立连接,而是只有在再次接收到客户端发送的正确的访问请求后,才开始建立与WEB服务器之间的连接,从而保证了TCP全连接的攻击无法到达WEB服务器,使得SYN代理在TCP连接的处理过程中,不仅能够很好地对SYN FLOOD的攻击进行防御,还能够保护WEB服务器免受到TCP全连接的攻击,提高了WEB服务器的安全性。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (11)
1.一种TCP连接的处理方法,其特征在于,包括:
接收到客户终端发送的、用于请求建立与服务器之间的第一TCP连接的第一同步报文后,与所述客户终端建立第二TCP连接;
在所述第二TCP连接建立之后,若接收到所述客户终端发送给所述服务器的访问请求消息,则控制建立所述客户终端与所述服务器之间的所述第一TCP连接,并将所述访问请求消息转发给所述服务器。
2.根据权利要求1所述的TCP连接的处理方法,其特征在于:
所述与所述客户终端建立第二TCP连接包括:
根据接收到的所述第一同步报文,模拟所述服务器返回第一同步确认报文给所述客户终端;
接收所述客户终端根据所述第一同步确认报文返回的第一确认报文;
所述控制建立所述客户终端与所述服务器之间的所述第一TCP连接包括:
根据所述访问请求消息,模拟所述客户终端构造第二同步报文,并将所述第二同步报文发送给所述服务器;
接收所述服务器根据所述第二同步报文返回的第二同步确认报文,并根据所述第二同步确认报文返回第二确认报文给所述服务器,以建立所述第一TCP连接。
3.根据权利要求2所述的TCP连接的处理方法,其特征在于:
所述接收到客户终端发送的、用于请求建立与服务器之间的第一TCP连接的第一同步报文之后,所述方法还包括:从所述第一同步报文中提取出TCP选项信息,并将所述TCP选项信息进行缓存;
所述根据所述访问请求消息,模拟所述客户终端构造第二同步报文包括:
删除所述访问请求消息中的数据字段,将所述访问请求消息中的第一顺序号码替换成所述第一顺序号码减1后生成的第二顺序号码,将所述访问请求消息中的确认号码替换成零,并在所述访问请求消息中添加缓存的所述TCP选项信息,构造成所述第二同步报文。
4.根据权利要求2或3所述的TCP连接的处理方法,其特征在于,所述将所述访问请求消息转发给所述服务器包括:
将所述访问请求消息携带在所述第二确认报文中,发送给所述服务器;
或者,在返回所述第二确认报文给所述服务器之后,将所述访问请求消息转发给所述服务器。
5.根据权利要求1所述的TCP连接的处理方法,其特征在于,所述若接收到所述客户终端发送给服务器的访问请求消息包括:
若接收到所述客户终端发送的TCP报文,从所述TCP报文中提取出TCP数据字段;
根据所述TCP数据字段对所述TCP报文进行应用协议的识别,若识别到所述TCP数据字段是超文本传输协议的请求消息,则确定接收到的所述TCP报文为所述访问请求消息。
6.一种SYN代理设备,其特征在于,包括:
第一TCP连接建立模块,用于接收到客户终端发送的、用于请求建立与服务器之间的第一TCP连接的第一同步报文后,与所述客户终端建立第二TCP连接;
第二TCP连接建立模块,用于在所述第二TCP连接建立之后,若接收到所述客户终端发送给所述服务器的访问请求消息,则控制建立所述客户终端与所述服务器之间的所述第一TCP连接,并将所述访问请求消息转发给所述服务器。
7.根据权利要求6所述的SYN代理设备,其特征在于:
所述第一TCP连接建立模块还包括:
第一发送模块,用于根据接收到的所述第一同步报文,模拟所述服务器返回第一同步确认报文给所述客户终端;
第一接收模块,用于接收所述客户终端根据所述第一同步确认报文返回的第一确认报文;
所述第二TCP连接建立模块还包括:
第二发送模块,用于根据接收到的所述访问请求消息,模拟所述客户终端构造第二同步报文,并将所述第二同步报文发送给所述服务器;
第三发送模块,用于接收所述服务器根据所述第二同步报文返回的第二同步确认报文,并根据所述第二同步确认报文返回第二确认报文给所述服务器,以建立所述第一TCP连接;
消息转发模块,用于将所述访问请求消息转发给所述服务器。
8.根据权利要求7所述的SYN代理设备,其特征在于:
所述设备还包括信息缓存模块,用于在接收到所述第一同步报文之后,从所述第一同步报文中提取出TCP选项信息,并将所述TCP选项信息进行缓存;
所述第二发送模块还包括:
报文构造模块,用于删除所述访问请求消息中的数据字段,将所述访问请求消息中的第一顺序号码替换成所述第一顺序号码减1后生成的第二顺序号码,将所述访问请求消息中的确认号码替换成零,并在所述访问请求消息中添加所述信息缓存模块缓存的所述TCP选项信息,构造成所述第二同步报文;
报文发送模块,用于将构造的所述第二同步报文发送给所述服务器。
9.根据权利要求7或8所述的SYN代理设备,其特征在于:
所述消息转发模块具体用于将所述访问请求消息携带在所述第二确认报文中,在所述第三发送模块返回所述第二确认报文给所述服务器的同时,将所述访问请求消息一起返回给所述服务器;
或者具体用于在所述第三发送模块返回所述第二确认报文给所述服务器之后,将所述访问请求消息转发给所述服务器。
10.根据权利要求6所述的SYN代理设备,其特征在于,所述第二TCP连接建立模块还包括:
报文识别模块,用于在控制建立所述客户终端与所述服务器之间的所述第一TCP连接之前,若接收到所述客户终端发送的TCP报文,则从所述TCP报文中提取出TCP数据字段,并根据所述TCP数据字段对所述TCP报文进行应用协议的识别,若识别到所述TCP数据字段是超文本传输协议的请求消息,则确定所述TCP报文为所述访问请求消息。
11.一种TCP连接的处理系统,包括:如权利要求6~10任一所述的SYN代理设备,以及分别与所述SYN代理设备连接的客户终端和服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010002322A CN101771695A (zh) | 2010-01-07 | 2010-01-07 | Tcp连接的处理方法、系统及syn代理设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010002322A CN101771695A (zh) | 2010-01-07 | 2010-01-07 | Tcp连接的处理方法、系统及syn代理设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101771695A true CN101771695A (zh) | 2010-07-07 |
Family
ID=42504287
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010002322A Pending CN101771695A (zh) | 2010-01-07 | 2010-01-07 | Tcp连接的处理方法、系统及syn代理设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101771695A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102427452A (zh) * | 2011-12-06 | 2012-04-25 | 北京星网锐捷网络技术有限公司 | 同步报文发送方法、装置和网络设备 |
CN103347016A (zh) * | 2013-06-28 | 2013-10-09 | 天津汉柏汉安信息技术有限公司 | 一种攻击的防御方法 |
CN103368772A (zh) * | 2013-06-26 | 2013-10-23 | 华为技术有限公司 | 半卸载方法、设备及系统 |
CN104219215A (zh) * | 2013-06-05 | 2014-12-17 | 深圳市腾讯计算机系统有限公司 | 一种tcp连接的建立方法、装置、终端、服务器及系统 |
WO2015043413A1 (en) * | 2013-09-30 | 2015-04-02 | Tencent Technology (Shenzhen) Company Limited | Method and device for sending requests |
CN104601541A (zh) * | 2014-12-05 | 2015-05-06 | 华为技术有限公司 | 数据传输的方法、服务器和用户设备 |
CN105007613A (zh) * | 2015-03-12 | 2015-10-28 | 厦门大学 | 一种基于流量过滤和Web缓存预取的WiFi接入设备节能方法 |
CN107209751A (zh) * | 2015-08-13 | 2017-09-26 | 华为技术有限公司 | 业务处理方法及装置 |
CN107645790A (zh) * | 2016-07-20 | 2018-01-30 | 普天信息技术有限公司 | 一种传输控制协议tcp链接建立方法及基站 |
CN108965261A (zh) * | 2018-06-25 | 2018-12-07 | 网易(杭州)网络有限公司 | 信息处理方法及装置、存储介质、电子装置 |
CN109309685A (zh) * | 2018-10-31 | 2019-02-05 | 北京百度网讯科技有限公司 | 信息传输方法和装置 |
CN110493170A (zh) * | 2018-05-15 | 2019-11-22 | 西门子股份公司 | 功能上安全地鉴定连接的方法 |
CN110719287A (zh) * | 2019-10-12 | 2020-01-21 | 苏州浪潮智能科技有限公司 | 一种数据通信的方法、装置、代理服务器及可读存储介质 |
CN111431871A (zh) * | 2020-03-10 | 2020-07-17 | 杭州迪普科技股份有限公司 | Tcp半透明代理的处理方法和装置 |
CN112104744A (zh) * | 2020-03-30 | 2020-12-18 | 厦门网宿有限公司 | 流量代理方法、服务器及存储介质 |
CN114500021A (zh) * | 2022-01-18 | 2022-05-13 | 神州绿盟成都科技有限公司 | 一种攻击检测方法、装置、电子设备及存储介质 |
CN117579233A (zh) * | 2024-01-15 | 2024-02-20 | 杭州优云科技股份有限公司 | 一种报文重传方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153669A1 (en) * | 2002-07-18 | 2004-08-05 | Yong Yang | Method for preventing transmission control protocol synchronous package flood attack |
CN101436958A (zh) * | 2007-11-16 | 2009-05-20 | 太极计算机股份有限公司 | 抵御拒绝服务攻击的方法 |
CN101547210A (zh) * | 2009-05-14 | 2009-09-30 | 福建星网锐捷网络有限公司 | 一种tcp连接的处理方法和装置 |
CN101594269A (zh) * | 2009-06-29 | 2009-12-02 | 成都市华为赛门铁克科技有限公司 | 一种异常连接的检测方法、装置及网关设备 |
-
2010
- 2010-01-07 CN CN201010002322A patent/CN101771695A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040153669A1 (en) * | 2002-07-18 | 2004-08-05 | Yong Yang | Method for preventing transmission control protocol synchronous package flood attack |
CN101436958A (zh) * | 2007-11-16 | 2009-05-20 | 太极计算机股份有限公司 | 抵御拒绝服务攻击的方法 |
CN101547210A (zh) * | 2009-05-14 | 2009-09-30 | 福建星网锐捷网络有限公司 | 一种tcp连接的处理方法和装置 |
CN101594269A (zh) * | 2009-06-29 | 2009-12-02 | 成都市华为赛门铁克科技有限公司 | 一种异常连接的检测方法、装置及网关设备 |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102427452A (zh) * | 2011-12-06 | 2012-04-25 | 北京星网锐捷网络技术有限公司 | 同步报文发送方法、装置和网络设备 |
CN102427452B (zh) * | 2011-12-06 | 2014-07-30 | 北京星网锐捷网络技术有限公司 | 同步报文发送方法、装置和网络设备 |
CN104219215A (zh) * | 2013-06-05 | 2014-12-17 | 深圳市腾讯计算机系统有限公司 | 一种tcp连接的建立方法、装置、终端、服务器及系统 |
CN104219215B (zh) * | 2013-06-05 | 2019-02-26 | 深圳市腾讯计算机系统有限公司 | 一种tcp连接的建立方法、装置、终端、服务器及系统 |
CN103368772A (zh) * | 2013-06-26 | 2013-10-23 | 华为技术有限公司 | 半卸载方法、设备及系统 |
CN103368772B (zh) * | 2013-06-26 | 2016-12-28 | 华为技术有限公司 | 半卸载方法、设备及系统 |
CN103347016A (zh) * | 2013-06-28 | 2013-10-09 | 天津汉柏汉安信息技术有限公司 | 一种攻击的防御方法 |
CN104519036A (zh) * | 2013-09-30 | 2015-04-15 | 腾讯科技(深圳)有限公司 | 一种发送业务请求消息的方法及装置 |
CN107979592B (zh) * | 2013-09-30 | 2020-06-30 | 腾讯科技(深圳)有限公司 | 一种发送业务请求消息的方法及装置 |
US9392081B2 (en) | 2013-09-30 | 2016-07-12 | Tencent Technology (Shenzhen) Company Limited | Method and device for sending requests |
CN107979592A (zh) * | 2013-09-30 | 2018-05-01 | 腾讯科技(深圳)有限公司 | 一种发送业务请求消息的方法及装置 |
WO2015043413A1 (en) * | 2013-09-30 | 2015-04-02 | Tencent Technology (Shenzhen) Company Limited | Method and device for sending requests |
CN104519036B (zh) * | 2013-09-30 | 2017-10-31 | 腾讯科技(深圳)有限公司 | 一种发送业务请求消息的方法及装置 |
CN104601541A (zh) * | 2014-12-05 | 2015-05-06 | 华为技术有限公司 | 数据传输的方法、服务器和用户设备 |
CN104601541B (zh) * | 2014-12-05 | 2018-12-07 | 华为技术有限公司 | 数据传输的方法、服务器和用户设备 |
CN105007613A (zh) * | 2015-03-12 | 2015-10-28 | 厦门大学 | 一种基于流量过滤和Web缓存预取的WiFi接入设备节能方法 |
CN105007613B (zh) * | 2015-03-12 | 2018-12-18 | 厦门大学 | 一种基于流量过滤和Web缓存预取的WiFi接入设备节能方法 |
CN107209751A (zh) * | 2015-08-13 | 2017-09-26 | 华为技术有限公司 | 业务处理方法及装置 |
CN107645790A (zh) * | 2016-07-20 | 2018-01-30 | 普天信息技术有限公司 | 一种传输控制协议tcp链接建立方法及基站 |
CN110493170B (zh) * | 2018-05-15 | 2022-07-12 | 西门子股份公司 | 功能上安全地鉴定连接的方法 |
CN110493170A (zh) * | 2018-05-15 | 2019-11-22 | 西门子股份公司 | 功能上安全地鉴定连接的方法 |
CN108965261B (zh) * | 2018-06-25 | 2021-12-21 | 网易(杭州)网络有限公司 | 信息处理方法及装置、存储介质、电子装置 |
CN108965261A (zh) * | 2018-06-25 | 2018-12-07 | 网易(杭州)网络有限公司 | 信息处理方法及装置、存储介质、电子装置 |
CN109309685B (zh) * | 2018-10-31 | 2021-10-29 | 北京百度网讯科技有限公司 | 信息传输方法和装置 |
CN109309685A (zh) * | 2018-10-31 | 2019-02-05 | 北京百度网讯科技有限公司 | 信息传输方法和装置 |
CN110719287A (zh) * | 2019-10-12 | 2020-01-21 | 苏州浪潮智能科技有限公司 | 一种数据通信的方法、装置、代理服务器及可读存储介质 |
CN111431871A (zh) * | 2020-03-10 | 2020-07-17 | 杭州迪普科技股份有限公司 | Tcp半透明代理的处理方法和装置 |
CN112104744A (zh) * | 2020-03-30 | 2020-12-18 | 厦门网宿有限公司 | 流量代理方法、服务器及存储介质 |
CN114500021A (zh) * | 2022-01-18 | 2022-05-13 | 神州绿盟成都科技有限公司 | 一种攻击检测方法、装置、电子设备及存储介质 |
CN117579233A (zh) * | 2024-01-15 | 2024-02-20 | 杭州优云科技股份有限公司 | 一种报文重传方法及装置 |
CN117579233B (zh) * | 2024-01-15 | 2024-04-23 | 杭州优云科技股份有限公司 | 一种报文重传方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101771695A (zh) | Tcp连接的处理方法、系统及syn代理设备 | |
CN101789947B (zh) | 防范http post泛洪攻击的方法及防火墙 | |
CN101594269B (zh) | 一种异常连接的检测方法、装置及网关设备 | |
TWI677222B (zh) | 應用於伺服器負載均衡中的連接建立方法及裝置 | |
US7826487B1 (en) | Coalescing acknowledgement responses to improve network communications | |
CN100589489C (zh) | 针对web服务器进行DDOS攻击的防御方法和设备 | |
CN101257450A (zh) | 网络安全防护方法、网关设备、客户端及网络系统 | |
US8694651B2 (en) | Method and system for implementing network proxy | |
CN102946387B (zh) | 一种防御拒接服务攻击的方法 | |
CN103347016A (zh) | 一种攻击的防御方法 | |
CN110266678B (zh) | 安全攻击检测方法、装置、计算机设备及存储介质 | |
CN106330414A (zh) | 一种报文传输方法及装置 | |
CN1469591A (zh) | 一种防御网络传输控制协议同步报文泛滥攻击的方法 | |
CN101594359A (zh) | 防御传输控制协议同步洪泛攻击方法及传输控制协议代理 | |
JP2017520996A (ja) | トランスペアレント性能拡張プロキシを動作させるための方法およびコンピュータ・プログラム、ならびにトランスペアレント性能拡張プロキシ | |
CN106657035B (zh) | 一种网络报文传输方法及装置 | |
CN108881233A (zh) | 防攻击处理方法、装置、设备及存储介质 | |
CN103475706A (zh) | 基于syn-ack双服务器反弹模式的伪tcp隐蔽通信方法 | |
KR101655715B1 (ko) | Http를 이용한 양방향 실시간 통신 시스템 | |
CN106453373A (zh) | 一种高效的SYN Flood攻击识别及处置方法 | |
CN108667829A (zh) | 一种网络攻击的防护方法、装置及存储介质 | |
CN104378450A (zh) | 网络攻击的防护方法及装置 | |
Rana et al. | A Study and Detection of TCP SYN Flood Attacks with IP spoofing and its Mitigations | |
CN105491179A (zh) | 一种应对dns服务器反射放大攻击的解决方法 | |
CN102316082A (zh) | 一种防御网站DDoS攻击的方法和流量清洗设备 |
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: 20100707 |