Tcp连接的处理方法、系统及syn代理设备的制作方法

文档序号:7739824阅读:194来源:国知局
专利名称:Tcp连接的处理方法、系统及syn代理设备的制作方法
技术领域
本发明涉及网络安全技术领域,尤其涉及一种TCP连接的处理方法、系统及SYN代理设备。
背景技术
随着互联网带宽的增加和黑客工具的不断发布,分布式拒绝服务
(Distributed Denial of Service,简称DD0S)攻击的事件越来越多,给网络服务器以及客户带来了极大的困扰。同步洪水攻击(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
4洪水的攻击,但是却无法对TCP全连接攻击进行有效防御的问题,实现一种更好的保WEB服 务器遭受DD0S攻击的方法。 为实现上述目的,本发明实施例提供一种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所示,本实施例具体
5包括如下步骤 步骤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报文。 步骤IOI,在第二 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力B 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禾P Acknowledge number不 会发生改变,仍然与第一 ACK报文的保持一致。而根据上述对第一 ACK报文的详细说明可 知,第一 ACK报文中的Sequence number应为第一 SYN报文中的Sequencenumber力口 l,因 此在将访问消息请求中的Sequence number,即第一顺序号减1之后,得到的第二顺序号又 还原到了第一 SYN报文中的Sequence皿mber的数值。接着,SYN代理进一步地将访问请 求消息中的Acknowledge number替换成0之后,这样形成第二 SYN报文,其中的Sequence number禾口Acknowledge number,将与第——SYN矛艮文中的Sequence number以及Acknowledge 皿mber完全保持一致。 进一步地,由于访问请求消息实质为一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连接的处理 系统不仅能够很好地对SYNFL00D的攻击进行防御,还能够保护服务器免受到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返回第二确认报文给述服务器的
11同时,将访问请求消息一起返回给服务器。或者消息转发模块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服务器的安全性。 最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
一种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代理设备连接的客户终端和服务器。
全文摘要
本发明提供一种TCP连接的处理方法、系统及SYN代理设备,方法包括接收到客户终端发送的、用于请求建立与服务器之间的第一TCP连接的第一同步报文后,与客户终端建立第二TCP连接;在第二TCP连接建立之后,若接收到客户终端发送的访问请求消息,则控制建立上述第一TCP连接,并将访问请求消息转发给服务器。本发明通过对SYN代理进行改进,当SYN代理与客户端完成TCP三次握手连接之后,只有在再次接收到客户端发送的访问请求后,才开始建立与服务器之间的连接,从而保证了TCP全连接的攻击无法到达服务器,使得服务器不仅能够很好地对SYN FLOOD的攻击进行防御,还能够免受到TCP全连接的攻击,提高了WEB服务器的安全性。
文档编号H04L29/08GK101771695SQ20101000232
公开日2010年7月7日 申请日期2010年1月7日 优先权日2010年1月7日
发明者黄凯明 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1