CN1505308A - 保护服务器免受拒绝服务攻击的系统和方法 - Google Patents
保护服务器免受拒绝服务攻击的系统和方法 Download PDFInfo
- Publication number
- CN1505308A CN1505308A CNA200310117996A CN200310117996A CN1505308A CN 1505308 A CN1505308 A CN 1505308A CN A200310117996 A CNA200310117996 A CN A200310117996A CN 200310117996 A CN200310117996 A CN 200310117996A CN 1505308 A CN1505308 A CN 1505308A
- Authority
- CN
- China
- Prior art keywords
- bag
- client computer
- source client
- sequence number
- 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.)
- Granted
Links
Images
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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
-
- 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/1458—Denial of Service
-
- 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/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
防御拒绝服务攻击的信息处理系统包括接收和发送包的接口(310),其中这些包包括至少一个同步包,它作为在源客户计算机(118)和目标服务器计算机(102)之间建立连接的握手过程的一部分;加密引擎(306),用于产生包含在要发送到客户机(118)的包中的唯一序列号,所述客户机请求在客户机(118)和服务器(102)之间建立连接,其中该加密引擎(306)进一步适于验证接收的同步包中的唯一序列号,所接收的同步包作为在客户机(118)和被保护的服务器(102)之间建立连接的握手过程的一部分;用于存储定义在服务器(102)和客户机之间已建立的连接的信息的查找表(304),使得通过将包中的信息与该表中的记录相比较,能够对声称属于已建立连接的到达包进行验证。
Description
技术领域
本发明一般性地涉及信息处理系统,尤其是涉及保护服务器系统或服务器群中的服务器免受拒绝服务攻击的机构。
背景技术
申请人共同拥有并正在审理中的美国专利申请09/650,524,题目为“保护Web服务器免受各种形式的拒绝服务攻击的方法”,在此将其整个申请一并作为参考。
拒绝服务攻击(DOSA)是一种针对网络站点的攻击,使得网络充斥如此多的服务请求,以致正常业务的传输或者很慢,或者完全中断。DOSA对著名Web网站,例如FBI站点的攻击,在最近几年里已经成为一个问题。而且,由于恐怖主义的威胁变得更加严峻,对拒绝服务攻击采取反措施对网络站点运营商提出了令人恐惧的挑战。这些攻击可能采取几种形式,例如基于ICMP(Internet ControlMessage Protocol,即Internet控制消息协议)包、UDP(userdatagram protocol,即用户数据报协议)包、TCP(transmissioncontrol protocol,即传输控制协议)包的攻击。许多类型的DOSA和相关术语描述如下。
下面也描述某些著名的保护服务器和/或服务器群免受DOSA攻击的反措施。不幸的是,现今使用的方法只是特定于DOSA类型的,而且它们之中的一些方法实际上由于在验证连接时消耗太多的服务器时间和占用太多的资源,从而降低了DOSA的速度。需要能够对付各种形式的DOSA而不阻碍存储器或处理器时间的方法。
术语定义
ACK
用在通信网络中对传输信息的接收的确认。
AES
高级加密标准。由NIST正在研发的现有技术的加密标准。预计将代替DES。参见Alan Freeman(此后称Freeman)所著的“计算机案头百科全书”,第九版,McGraw-Hill 2001。
CAM
内容可寻址存储器(CAM)。也被称之为“关联存储器”,其中内容可寻址存储器不同于RAM的方面在于存储器中的值被返回。标准的RAM返回存储于特定地址的值。而CAM返回基于存储器内容的值。CAM能够提供超过RAM的性能优点,因为它们能够将期望值同时与整个存储值的集合相比较,并在单个时钟周期内返回存储该值的地址。
拒绝服务攻击
为了达到使互联网的站点瘫痪或停止提供服务的目的,一组一或多个包被送往Internet上的Web站点或其它站点。对FBI网站、Yahoo和eBay的拒绝服务攻击在最近几年的新闻中已经不断地被报道过。
DES
数据加密标准。一种使用56位密钥的NIST标准密钥加密体制方法。DES基于IBM算法并由美国国家安全局进一步开发。它使用分组密码方法,在加密前将明文分成64位的块。有几种DES加密方式。最流行的模式是使用前面的加密块异或每个明文块。DES的解密非常快速并被广泛使用。密钥可以用于不止一个会话。或者,可以针对每个会话随机地产生密钥,在这种情形新的密钥使用像RSA这样的公开密钥加密方式被被传输到接收方。参见Freedman。
防火墙
防火墙是一个放置在Internet和服务器之间,或放置在Internet和企业网之间的信息处理系统,以保护服务器或企业网免受Internet所承受的各种形式的攻击。
漏桶(Leaky Bucket)
用于某些网络中的机构,用于限制突发传输的流入(喷发式到达的数据)。这种输入传输被暂时地存于一个缓冲器(“桶”)中,然后以稳定的速度输出(“漏出”)。如果输入速率在一定时间内超过所编程的速率,缓冲器溢出,并且抛弃这些传输。
NIST
位于华盛顿的国家标准和技术研究所。美国政府制定标准的机构,前身是国家标准局。参见Freedman。
Ping攻击
这是一种攻击者企图通过对站点发送Ping包的数据流使站点陷于停顿的攻击。Ping是ICMP回应请求包。假定网络节点用ICMP回应应答响应ICMP回应请求。Ping通常被用于确定主机是否在线、通往和通回正在工作的主机的路径是否工作。但如果攻击者非常快速地发送大量的Ping,主机可能为响应这些Ping而陷入停顿,使得主机难以对合法的用户提供服务。
随机早期丢弃(Random Early Drop)
随机早期丢弃是一种防御TCP SYN(SYN泛滥)攻击的措施。当一个新的TCP SYN包来临时,服务器内的TCP实现确定任意空闲的TCP控制块是否可用。如果可用,服务器为新的“部分已建立”的连接分配一个可用TCP控制块。如果不可用,使用来自已存在的“部分已建立”的TCP连接的TCP控制块。因为“真正的”TCP连接通常不会长时间停留在“部分已建立”的状态--因为3次握手中的第三个包通常将在3次握手中的第二个包发送之后“很短的时间内”到达,“部分已建立”的TCP连接的控制块的重用通常不影响合法传输,但会回收控制块,使得它们能够用于合法的TCP连接。
速率限制(Rate Limiting)
速率限制对防御某些DOSA是有用的。在服务器(或服务器群)前面的机构通过限制非TCP包允许进入服务器/服务器群的速率,能够保护服务器/服务器群免受不是基于TCP的攻击。速率限制能够使非基于TCP的攻击的影响最小,并且因为通常的Web服务器接收大量的非TCP传输是没有理由的,对非TCP传输的速率限制并不影响任何“真正的”传输。(注意:例如,允许(某些)ICMP包进入服务器群以诊断网络问题也许是有用的;但决没有理由的是例如Web服务器群以10千兆比特/秒的速率承受ICMP包。能够通过使用在网络工业中被称之为“泄漏桶”的技术进行这种速率限制。但是,对TCP包的速率限制不能用作对基于TCP的攻击的防御,因为到服务器群中“真正的”传输(例如,Web传输或邮件传输)都是基于TCP的,因此这样的速率限制既限制“真正的”传输流,又限制“攻击”传输流。
Rijndael算法
Rijndael算法是一种分组密码算法,由Joan Daemen和VincentRijmen为AES的候选算法而进行设计的。这种密码具有可变块长度和可变密钥长度。可以产生长度为128、192或256位的密钥去加密长度为128、192或256位的块(密钥长度和分组长度总共有九种可能的组合)。块长度和密钥长度都可以很容易地扩展为32位的倍数。Rijndael算法能够非常有效地在广泛的处理器内,或在专用硬件中得以实施。Rijndael算法被NIST选作AES的基础。
Smurf攻击
这是攻击者用一个虚假源地址发送“广播”Ping包到大量机器上,使得该包中的源地址成为“目标”节点,即攻击者希望禁止的机器的地址的一种攻击。当广播Ping被可能的大量机器接收时,它们每个都通过发送对该地址的回应应答来响应Ping包,而该地址在广播Ping包的源地址域中。因为源地址是目标的地址,该目标陷于大量的回应应答中。该目标抛弃这些回应应答,但目标上的载荷和连接目标到网络的链路上的载荷是大量的,因此这种载荷能够使节点和链路都陷于瘫痪。
哄骗(Spoofing)
对传输的源地址进行伪装。
SYN
用于建立TCP连接的同步包。
SYN cookie(也被称为TCP SYN cookie或TCP cookie)
TCP SYN cookie是一种处理SYN泛滥的机制。
TCP SYN泛滥(见下面的SYN泛滥)通常被认为是一个不能解决的问题。例如,参见Garfinkel和Spafford的“实用UNIX和Internet安全”第778页:
接收方将保持成倍增加的占据有限资源的半打开连接。通常情况下,这些连接请求具有指定决不可能联络到的根本不存在或不可能达到的主机的伪造源地址。因此,也没有方法去追踪这些连接。...在这些情形下您不可能做些什么。...可以超出任何限制范围。
SYN cookie使用加密技术解决这个问题。SYN cookie是一个由TCP服务器针对可在SYN-ACK中发送的起始TCP序列号的特别选择。序列号的特别选择允许服务器
§1在3次握手中参与但不束缚该服务器中的任何存储器;
§2以使得攻击者不能伪造3次握手中合法的第三个包的方式进行此操作。
序列号可以是目标服务器的IP地址与端口号和源客户机的IP地址与端口号的组合。Rijndael算法可以用于产生难以猜测的值,使得攻击者不能伪造3次握手中的第三个包。
SYN泛滥(也被称为TCP SYN泛滥)
TCP SYN泛滥的攻击过程如下。攻击者向攻击目标发送大量的TCP SYN。攻击者通常在这些包中使用伪造的源地址,使得这些包不能容易地被跟踪回到攻击者那里。攻击者还通常在每个包中使用不同的源地址,使得目标难以知道其是TCP SYN攻击的目标。每当接收一个SYN时,目标都用3次握手中的第二个包作为响应。它还分配某些“资源”,例如TCP控制块,被用于跟踪TCP连接上正在进行的操作。如果大量的TCP SYN包来到,就使得大量的资源被占用。在一定时间内这些资源不被释放,因为目标正在等待3次握手中的第三个包,但这第三个包是决不会到达的。目标可能最终判定这些部分连接超时并释放这些资源,但如果大量的资源被占用,则目标耗尽资源,并且不能对合法的传输进行响应。
TCP
TCP是传输控制协议。TCP用于在Internet的2个节点之间提供“可靠的”连接。TCP使用序列号、校验和、确认(或ACK)、丢失或混淆数据的重传以提供可靠性。TCP用于正确地发送字节是非常重要的应用,例如像邮件、Web浏览等等的应用。
TCP ACK泛滥
这是一种攻击者发送设置有ACK标记的大量TCP包的攻击。正常情况下,ACK标记被设置以对正确的数据接收进行确认,而攻击者可以在大量的包中设置ACK标记,企图使他的包成为已建立的和合法的TCP连接的部分,使得攻击包不能被防火墙过滤掉。
TCP连接/对SYN和FIN的监视
TCP连接具有两个“端点”,其中每个由IP地址和TCP端口号来定义。经过SYN和ACK包的交换在3次握手中建立TCP连接,并经FIN(法语中的“结束”)包的3次交换后结束。如果跟踪SYN和FIN的交换,就能够确定出TCP包是否TCP合法连接的部分,或者是否从某个攻击者发送的、应该被抛弃的攻击包。
UDP
UDP是用户数据报协议。UDP并不提供序列号、确认(ACKs)、重传或可靠性。它用于包传送的“及时性”是重要的而丢失或混淆数据的重传却不那么重要的应用。IP电话就是包发送的及时性是重要的而不用对丢失和混淆包进行重传的例子。
UDP泛滥
攻击者发送大量UDP包的攻击。UDP泛滥类似于Ping攻击。
连线速度(wire-speed)
连线速度是象从网络接收包那样快地处理包的能力。
3次握手(3-way Handshake)
TCP连接通过3次“握手”来建立,其工作过程如下。初始方发送一个包含有某种“同步”信息的SYN包。服务器用包含其自身的某种同步信息的SYN包进行响应。服务器的SYN包也对初始方发送的同步信息进行确认(ACK)。初始方确认(ACK)服务器的SYN包中的信息。
5元组(5-tuple)
在TCP包中发现的唯一标识特定TCP连接的5项信息:目的地IP地址、源IP地址、表明IP包包含TCP段的协议字段、TCP目的端口和TCP源端口。因为协议字段(指明TCP)不必存储在TCP连接表中,TCP连接表可能仅存储其它的4项(4元组)。
存在多种形式的拒绝服务攻击,因此有必要提出对抗DOSA的反措施以克服现有技术的缺陷。
发明内容
保护至少一个目标服务器计算机免受至少一个源客户计算机发起的拒绝服务攻击的机构包括加密引擎和快速查找引擎。加密引擎用于产生和验证TCP SYN cookie以防御TCP SYN泛滥攻击。快速查找引擎用于快速确定声称是以前建立的TCP连接的部分的包是否真正是合法建立的连接的部分,以防御TCP ACK攻击。这种机构还可选地包含“泄漏桶”机构,用于对非TCP传输进行速率限制,以防御非基于TCP的攻击。
附图说明
图1是使用防御DOSA的系统的网络的方框图。
图2是一个流程图,举例说明根据已知方法为建立连接而进行3次握手的方法。
图3是一个保护网络节点免受DOSA攻击的系统的方框图。
图4是一个流程图,根据本发明的一个实施例举例说明使用加密引擎和快速查找引擎来保护服务器免受DOSA攻击的方法。
具体实施方式
图1-通信网络的方框图
参照图1,它给出的是通信网络100简化的版本,其中本发明的一个实施例能够进行有利的配置以防御DOSA。在这个实施例中,网络100根据TCP/IP协议族运作,但本发明的原理也适用于任何使用类似于TCP/IP的包完整性确认技术的包交换网络中。网络100包括(包含但并不限于)多个服务器102、104、106-106n和108,所有这些都连接到Internet 110上。
网络100也包括防火墙112和114,路由器116,多个个人计算机(PC)118-122。假定单元118(源客户计算机)的用户向目标服务器102发起基于TCP的攻击,目标服务器102是用防火墙单元112保护的。防火墙单元112是一个信息处理系统,可按照本发明的实施例被构造成防御DOSA。防火墙单元112也可以通过使用专用硬件,例如一个或多个专用集成电路(ASIC),或通过编程通用可编程硬件来如此构造。防火墙单元112的DOSA机构通过抛弃欺骗性地声称是已存在的TCP连接的部分的TCP传输(即,当由包的TCP 5元组定义的TCP连接还没有在TCP 3次握手中建立时,在TCP头中设置ACK位的TCP包)来保护服务器102。它也对服务器102屏蔽试图建立新TCP连接的TCP SYN包,直到这种包在3次握手中被防火墙单元112实施的DOSA保护机构“无效”掉。它把属于合法TCP连接的TCP包传递到服务器102,并从服务器102向客户机118回送包(在对那些包进行下述修正之后)。
图2-举例说明3次握手的流程图
图2举例说明了根据现有技术在源客户机和目标服务器之间防止拒绝服务攻击的方法。流程图200给出了可以遵循的两个不同的路径,这取决于包是否TCP包。第一个步骤是在步骤202中在目标服务器或服务器群上进行包的接收。在步骤204中,进行测试以确定到达的包是否TCP包。如果该包被确定为是一个TCP包,则在步骤205中确定这个TCP包是否3次握手中的第一个包。如果它是,则在步骤206中,确定该包正在试图启动TCP连接,其中在TCP头中它的SYN位设置为ON,它的ACK位设置为OFF(SYN=1,ACK=0)。SYN位表明该包含有起始序列号(即,同步信息),客户机会将其用于从客户机发送到服务器的数据。这是3次握手中用于启动连接的第一个步骤。如果在步骤205中到达的TCP包不是3次握手中的第一个包,即如果它看上去属于已存在的TCP连接,该包将在步骤214中被接纳。
在步骤208中,在接收来自客户机118的TCP SYN包之后,服务器102会通过返回3次握手中的第二个包来确认第一个SYN包。为了确认客户机的起始序列号,该包头的ACK位被设置为ON,并且SYN位也会是ON(SYN=1,ACK=1)。SYN位表明该包含有被服务器用于从服务器102发送到客户机118的数据的起始序列号。这时,服务器102会分配存储器资源给这个部分建立的连接,以期会接收3次握手中确认服务器起始序列号的第三个包。当这个包被客户机118接收时,客户机确认(ACK)服务器的起始序列号,并且建立被连接。注意,因为可能在服务器102和客户机118上存在许多个(已建立或部分建立的)同时连接,为了使指定包与适合的TCP连接匹配,服务器102和客户机118都需要查看TCP包中的5元组。
如果3次握手中的第三个包在步骤210中如期到达,它会将其SYN位设为OFF,且将其ACK位设为ON(SYN=0,ACK=1)。同时,在等候第三个包到达以完成握手过程时,服务器102已经占用了它的存储器资源。当该包到达时,服务器102接受这个包,并且新的TCP连接会被建立。然而,源客户机节点118也可能成为被称为TCP SYN攻击,或TCP SYN泛滥的拒绝服务攻击的部分。在TCPSYN泛滥中,攻击者发送大量TCP SYN包,它们表现为来自大量不同客户机的新连接请求。想法是使服务器102用3次握手中第二个包去响应这些包中的每个包,并将资源(例如存储器)分配给这些部分完成的连接中的每一个。存储器将一直被占用,直到第三个包到达以完成3次握手。但在TCP SYN攻击中,3次握手中的第三个包永远不会发送,因此大量的存储器被部分建立的连接占用,从而限制了服务器响应合法请求的能力。最终,服务器102会释放资源,但存在服务器102不能响应合法TCP传输的危险。
如果步骤204中确定该包不是TCP包,则服务器102可以在步骤216中使用“速率限制”作为防御措施。在这种情况下,例如防火墙单元112的机构将以限定的速率接受非TCP包。这种防御有时用于网络业中,更常常被称为“泄漏桶”。不幸的是,速率限制不足以防御基于TCP的攻击。
3次握手过程在步骤212中结束,其中服务器102或防火墙单元112建立了TCP连接,该连接随后被用于从客户机118向服务器102发送数据,以及之后从服务器102向客户机118回送数据。
图3-防御DOSA的系统的方框图
参照图3,所给出的是防火墙单元112的部件的非常简化的方框图。根据优选实施例,防护拒绝服务攻击的机构被配置在防火墙112中。应当理解,防火墙单元112包括适合根据本发明的原理进行工作的CPU 300,存储器(例如,DRAM和/或磁盘存储器)302,存储器本身包含快速查找表304,查找表引擎314和高速加密引擎306。在另一个实施例中,快速查找表304可以是快速查找引擎314的部分。这些都被公共总线(或一组公共总线)308所连接。加密引擎306用于高速产生和验证TCP SYN cookie。快速查找引擎用于高速验证声称属于已建立的连接的TCP包是否真正属于已建立的连接。
防火墙单元112也包括针对网络100接收和发送包的网络接口310,和与服务器102通信的服务器接口312。一般地,DOSA保护机构通过使用快速查找引擎314确定包的5元组是否在查找表304中,区别出属于已存在的TCP连接的包,和那些欺骗性地声称合法的包。加密引擎306和快速查找引擎314用于防御基于TCP的攻击(即,SYN泛滥和ACK泛滥)。基于传输而不是TCP包的DOSA攻击可以用例如像“泄漏桶”这样的速率限制”机构加以处理。
这种机构容易适用于不同的环境。我们的例子将该机构图解为防火墙112的部分,但在本发明的范围和精神内可以并且应当考虑到其它的实施例。DOSA机构可以用于服务器中的网络适配器或网络盒内,例如用于路由器、防火墙、Web高速缓存器、负载均衡器、内容交换装置等等内,这些装置会设置在服务器或服务器群的前面。这种机构在用于不同的实施例时提供不同的优点。例如,在路由器中放置DOSA保护机构提供了允许对各种类型的服务器进行保护的优点,而在服务器的网络适配器中放置DOSA机构提供额外的可伸缩性。
CPU 300通过实现加密序列号方案(cookie方案)来防御TCPSYN泛滥,并使用快速查找引擎314防御TCP ACK的攻击。Cookie方案的优点在于存储器资源不被占用,因为有关部分完成的TCP连接的信息不需要被存储。通过使用CPU 300,防火墙112能够确认一个包完成了合法的3次握手(如图4中进一步所描述的那样),而不必在存储器中存储任何东西。这个可通过使用加密引擎306和Cookie方案来实现。加密引擎306产生和验证输入包的唯一序列号。因为加密引擎306生成的序列号是密钥以及来自起始SYN包的信息的函数,攻击者不能伪造看上去完成了3次握手的包。使用有效的加密算法来为Cookie方案选择序列号是至关重要的。如果攻击者能够猜测出服务器为响应客户机的起始SYN包而发送的序列号,攻击者就能够建立欺骗性的TCP连接和占用该服务器的资源。
有不同的方法来产生这些唯一序列号。一种方法是使用Rijndael算法,它能够有效地在广泛的处理器中实现,所述处理器可以是从专门编程的通用处理器到专用硬件。在本发明的优选实施例中,Rijndael算法可以用于产生序列号,该序列号综合了来自源客户机118和目标服务器102的标识信息(例如IP地址和端口号),以及客户机的起始序列号和当前时间的某种测量。此外,在本发明的范围内也可考虑其它的加密算法和方法。
一旦合法的TCP连接已经建立,定义连接的5元组被存于查找表304中。这些存储的5元组用于确认声称属于已存在的连接的TCP包的有效性。由于在Web服务器中接收的TCP包的庞大容量,必须快速和有效地进行表查找。几个现今可用的已知的表查找技术可以用于快速查找引擎314中。
实现快速查找引擎314的一种方式是通过使用内容寻址存储器(CAM)。这是一种所使用的理想方法,因为您可以将搜索域(在这种情形为包的5元组)与查找表304中的所有记录同时进行比较。
CDROM驱动器316是接收计算机可读媒介的输入/输出装置的例子,该可读媒介包括根据本发明实施例的程序指令。本领域的技术人员应当理解,在本发明的精神和范围内可以有利地使用其它的计算机可读媒介。
图4-举例说明优选实施例的流程图
参照图4,为了防御基于TCP的拒绝服务攻击,与Cookie加密方案相结合,方法400举例说明了加密引擎306和快速查找引擎314的使用。当包到达目标服务器102时,处理过程在步骤402处开始。在这个例子中我们假定包是一个TCP包。非TCP包能够通过使用已知的保护方法进行处理,例如像速率限制的方法。我们把例子集中在这个方法对TCP包的处理上。
在步骤404中,防火墙单元112确定这个包是否3次握手中启动新连接的第一个包。如果到达的包声称属于已存在的连接(或许通过设置ACK位),则在步骤405中,快速查找引擎314在查找表304中进行表查找,以搜索包的5元组的标识信息。按照这个方法,任何属于已存在的连接的包均会在查找表304中存储其信息。如果这个信息在查找表304中没有被找到,这个包就不被认为是合法的,因此在步骤422中被丢下或抛弃。如前所述,如果它的5元组的信息能够在查找表304中被找到,这个包被认为属于已经建立的TCP连接。这是一种与已知的只检查SYN和ACK位的方法相比更加可靠的、用于确定包是否属于一个连接的方法。因为一旦建立TCP连接,ACK位就总是被置位,而且SYN位总是被清除,某些简单的实现已使用这些位来确定包是否属于已建立的连接。但是攻击者能够容易地在TCP ACK泛滥中通过发送SYN位被清除并且ACK位被置位的包的流来威胁这种检查。快速查找机构314允许防火墙单元112防御ACK攻击或ACK泛滥。而且,加密机构306允许防火墙单元112防御TCP SYN攻击或SYN泛滥。
根据步骤404的确认,如果到达的包正在试图启动连接,则在步骤406中,防火墙单元112使用加密引擎306为这个连接产生一个唯一的序列号,象在已知的TCP SYN Cookie方案中那样。由加密引擎306所产生的序列号可以是密钥,客户机的IP地址和端口号, 目标服务器的IP地址和端口号,客户机的初始序列号和当前时间的函数。Rijndael算法能够用于产生这个序列号。注意,时间可以是日期和时间的各个测量之一。例如,在UNIX系统中,这通常是自1970年1月1日午夜以来所经过的毫秒数。这正好是序列号的时间部分如何定义的一个例子。
当在步骤406生成序列号之后,防火墙单元112在步骤408回送包含这个序列号的3次握手中的第二个包。包会被回送到源客户机118,其中其SYN位为ON,ACK位为ON,以标识这个包是3次握手中的第二个包。当防火墙单元112在步骤410中接收3次握手中的第三个包时,执行下一步。如果这个包的SYN位是OFF并且它的ACK位是ON,就会确认这个包声称是3次握手中的第三个包。防火墙单元112在验证SYN位为OFF并且ACK位为ON之后,使用加密引擎306验证该包正在确认的序列号(应当是最初在步骤408中通过3次握手中的第二个包发送到源客户机118的序列号)。如果这个序列号与加密引擎306以前所产生的序列号不匹配,这个包在步骤422中被抛弃。如果这个包包含正确的序列号,其合法性被确认,因此这个包被接受。快速查找引擎314会在步骤414中将包的5元组标识信息加入到查找表304中。注意,这个例子涉及5元组的标识信息,但是在本发明的精神和范围内也可以使用其它的元组结构。
在步骤416中,防火墙单元112需要执行额外的功能。在验证3次握手之后,防火墙单元112对服务器/服务器群开放连接,并通过连接传输数据。它起着与客户机118通信的服务器102的作用,也起着与服务器102通信的客户机118的作用。但是因为由服务器102选择的序列号通常不同于与客户机118通信的防火墙单元112选择的序列号,防火墙单元112需要对从服务器102到客户机118的包的序列号,和从客户机118到服务器102的包的相应确认号进行调整。防火墙单元112也需要适当地调整TCP校验和。用TCP关闭序列结束这个连接。连接的关闭分成两个阶段,每个“方向”一个阶段(客户机-->服务器和服务器-->客户机)。在第一个阶段,一端发送头中具有FIN位的设置的包,而另一端进行确认(ACK);接着,当另一端也结束发送其数据时,它发送出FIN包,而另一端进行确认(ACK),因此关闭该连接。防火墙单元112也将处理这个关闭过程。
因为防火墙单元112,作为本发明的一个可能的实施例,包含快速查找引擎314和高速加密引擎306以保护目标服务器102免受拒绝服务攻击,目标服务器102的处理器将不会变慢或削弱其能力。它自己使用加密序列号方案(带有加密引擎306的SYN Cookie方案)会防止某些攻击者成功地发起攻击,但快速查找引擎314的加入提供额外的安全性。因此,系统不会陷于瘫痪,或在部分完成的TCP连接或TCP ACK攻击上花费其资源。
这里描述的实施例只是本发明的举例说明;然而在下列权利要求的范围之内也可以考虑其它的实施例。
Claims (21)
1.保护至少一个目标服务器计算机免受至少一个源客户计算机发起的拒绝服务攻击的信息处理系统,包括:
接收包和发送包的输入/输出接口;
适于产生唯一序列号的加密引擎,该唯一序列号包含于要发送到请求在源客户计算机和目标服务器计算机之间建立连接的源客户计算机的包中,其中该包包括至少一个同步包,该同步包是用于在源客户计算机和目标服务器计算机之间建立连接的握手过程的一部分;其中该加密引擎进一步适于验证作为握手过程一部分的所接收同步包中的唯一序列号,以在源客户计算机和目标服务器计算机之间建立连接;
用于存储来自包头的信息元组的查找表,信息元组定义在目标服务器计算机和多个源客户计算机之间已建立的连接,使得声称属于已建立连接的接收包能够通过将包中的信息与查找表中的记录相比较而被验证;和
用于访问该查找表的快速查找引擎。
2.如权利要求1的信息处理系统,进一步包括连接到输入/输出接口的缓冲器,用于暂时存储输入包,并且以限制的速率传递来自源客户计算机的数据包到目标服务器计算机。
3.如权利要求1的信息处理系统,进一步包括用于在该包没有通过验证的情况下抛弃该包的逻辑。
4.如权利要求1的信息处理系统,其中加密引擎包括为响应TCP SYN包而产生唯一序列号的逻辑。
5.如权利要求1的信息处理系统,其中加密引擎被构造成为产生唯一序列号而执行Rijndael算法。
6.如权利要求1的信息处理系统,其中查找表被构造成存储来自包头的、关于已建立的TCP连接的多个元组的信息。
7.如权利要求1的信息处理系统,其中唯一序列号包括由综合源客户计算机的地址和端口号,目标服务器计算机的地址和端口号,源客户计算机的起始序列号和时间测量的函数所产生的加密代码。
8.如权利要求7的信息处理系统,其中时间测量是对目标服务器计算机接收起始同步包的日期和时间的表示。
9.保护至少一个目标服务器计算机免受至少一个源客户计算机发起的拒绝服务攻击的方法,该方法包括:
接收去往至少一个目标服务器计算机的第一个包,该同步包是请求在源客户计算机和目标服务器计算机之间建立连接的握手过程的部分;
生成序列号,该序列号包括由综合源客户计算机的地址和端口号,目标服务器计算机的地址和端口号,源客户计算机的起始序列号和时间测量的函数所产生的加密代码,其中序列号由加密引擎产生;
向源客户计算机发送第二个包,第二个包包含加密引擎产生的序列号;
接收来自源客户计算机的第三个包;
验证第三个包的序列号,其中加密引擎用于验证该序列号;
在查找表中存储来自包头的信息,使得随后能够通过将包中的标识信息与该表中的记录相比较,验证声称属于已建立连接的所接收包;
仅当第三个包被确定有效时,开放从源客户计算机到目标服务器计算机的连接,并通过该连接传递数据。
10.如权利要求9的方法,进一步包括步骤:
暂时在缓冲器中存储输入的包;
以限制的速率将数据包传递到受保护的服务器。
11.如权利要求9的方法,其中该方法进一步包括步骤:
如果该包没有通过验证,抛弃该包。
12.如权利要求9的方法,包括为响应TCP SYN包的接收而生成序列号的步骤。
13.如权利要求9的方法,其中开放连接的步骤进一步包括将加密引擎所产生的序列号调整到该开放连接。
14.如权利要求9的方法,其中开放连接的步骤进一步包括调整TCP校验和。
15.如权利要求9的方法,其中接收第一个包的步骤进一步包括确定该包是否TCP包。
16.如权利要求15的方法,其中接收第一个包的步骤进一步包括步骤:
如果该包是TCP包,确定该包是否属于已建立的连接。
17.如权利要求16的方法,其中确定该包是否属于已建立的连接的步骤包括在查找表中查找包的信息元组。
18.如权利要求9的方法,进一步包括关闭源客户计算机和目标服务器计算机之间的连接的步骤。
19.如权利要求18的方法,其中关闭连接的步骤还包括步骤:
参与源客户计算机和目标服务器计算机之间的握手过程,其中发送的包是FIN包。
20.被信息处理系统执行以保护至少一个目标服务器计算机免受至少一个源客户计算机发起的拒绝服务攻击的计算机可读媒介,该媒介包括用于以下操作的指令:
接收去往至少一个目标服务器计算机的第一个包,该包是请求在源客户计算机和目标服务器计算机之间建立连接的握手过程的部分;
生成序列号,该序列号包括由综合源客户计算机的地址和端口号,目标服务器计算机的地址和端口号,源客户计算机的起始序列号和时间测量的函数所产生的加密代码,其中序列号由加密引擎产生;
向源客户计算机发送第二个包,第二个包包含加密引擎产生的序列号;
接收来自源客户计算机的第三个包;
验证第三个包的序列号,其中加密引擎用于验证该序列号;
在查找表中存储来自包头的信息元组,使得随后能够通过将包中的标识信息与该表中的记录相比较,验证声称属于该连接的所接收包;
仅当第三个包被确定有效时,开放从源客户计算机到目标服务器计算机的连接,并通过该连接传递数据。
21.如权利要求20的计算机可读媒介,进一步包括用于关闭源客户计算机和目标服务器计算机之间的连接的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/308,605 US7584352B2 (en) | 2002-12-04 | 2002-12-04 | Protection against denial of service attacks |
US10/308,605 | 2002-12-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1505308A true CN1505308A (zh) | 2004-06-16 |
CN100508449C CN100508449C (zh) | 2009-07-01 |
Family
ID=32467809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101179966A Expired - Fee Related CN100508449C (zh) | 2002-12-04 | 2003-11-26 | 保护服务器免受拒绝服务攻击的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7584352B2 (zh) |
CN (1) | CN100508449C (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100362802C (zh) * | 2004-06-29 | 2008-01-16 | 华为技术有限公司 | 一种抵御拒绝服务攻击的方法 |
WO2010000171A1 (zh) * | 2008-06-30 | 2010-01-07 | 成都市华为赛门铁克科技有限公司 | 一种通信的建立方法、系统和装置 |
CN103491061A (zh) * | 2012-06-13 | 2014-01-01 | 华为技术有限公司 | 缓解攻击方法、序列号提供方法及设备 |
CN104935592A (zh) * | 2015-06-16 | 2015-09-23 | 上海斐讯数据通信技术有限公司 | 一种防dos攻击的系统和方法 |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9106479B1 (en) * | 2003-07-10 | 2015-08-11 | F5 Networks, Inc. | System and method for managing network communications |
US7634655B2 (en) * | 2004-02-13 | 2009-12-15 | Microsoft Corporation | Efficient hash table protection for data transport protocols |
US7694335B1 (en) * | 2004-03-09 | 2010-04-06 | Cisco Technology, Inc. | Server preventing attacks by generating a challenge having a computational request and a secure cookie for processing by a client |
US7664855B1 (en) * | 2004-05-05 | 2010-02-16 | Juniper Networks, Inc. | Port scanning mitigation within a network through establishment of an a prior network connection |
US7391725B2 (en) * | 2004-05-18 | 2008-06-24 | Christian Huitema | System and method for defeating SYN attacks |
US7546635B1 (en) | 2004-08-11 | 2009-06-09 | Juniper Networks, Inc. | Stateful firewall protection for control plane traffic within a network device |
US7640338B2 (en) * | 2005-01-18 | 2009-12-29 | Microsoft Corporation | System and method for mitigation of malicious network node activity |
US7826487B1 (en) * | 2005-05-09 | 2010-11-02 | F5 Network, Inc | Coalescing acknowledgement responses to improve network communications |
CN100414889C (zh) * | 2005-12-29 | 2008-08-27 | 中山大学 | 一种对用户进行区分和跟踪的中间系统 |
US7792102B2 (en) | 2006-03-31 | 2010-09-07 | Intel Corporation | Scaling egress network traffic |
US20070233886A1 (en) * | 2006-04-04 | 2007-10-04 | Fan Kan F | Method and system for a one bit TCP offload |
US20080196104A1 (en) * | 2007-02-09 | 2008-08-14 | George Tuvell | Off-line mms malware scanning system and method |
US20080240140A1 (en) * | 2007-03-29 | 2008-10-02 | Microsoft Corporation | Network interface with receive classification |
US20090144446A1 (en) * | 2007-11-29 | 2009-06-04 | Joseph Olakangil | Remediation management for a network with multiple clients |
US8914878B2 (en) | 2009-04-29 | 2014-12-16 | Juniper Networks, Inc. | Detecting malicious network software agents |
US8789173B2 (en) * | 2009-09-03 | 2014-07-22 | Juniper Networks, Inc. | Protecting against distributed network flood attacks |
CN102014110A (zh) * | 2009-09-08 | 2011-04-13 | 华为技术有限公司 | 认证通信流量的方法、通信系统和防护装置 |
CN101699797B (zh) * | 2009-11-13 | 2012-07-11 | 珠海网博信息科技有限公司 | 使用udp协议进行数据传输的方法 |
US20110145572A1 (en) * | 2009-12-15 | 2011-06-16 | Christensen Kenneth J | Apparatus and method for protecting packet-switched networks from unauthorized traffic |
US8380994B2 (en) * | 2009-12-23 | 2013-02-19 | Citrix Systems, Inc. | Systems and methods for generating and managing cookie signatures for prevention of HTTP denial of service in multi-core system |
CN101834875B (zh) * | 2010-05-27 | 2012-08-22 | 华为技术有限公司 | 防御DDoS攻击的方法、装置和系统 |
US9998545B2 (en) * | 2011-04-02 | 2018-06-12 | Open Invention Network, Llc | System and method for improved handshake protocol |
CN102291441B (zh) * | 2011-08-02 | 2015-01-28 | 杭州迪普科技有限公司 | 一种防范SYN Flood攻击的方法及安全代理装置 |
US9602404B2 (en) * | 2011-08-17 | 2017-03-21 | Nicira, Inc. | Last-hop processing for reverse direction packets |
US10044582B2 (en) | 2012-01-28 | 2018-08-07 | A10 Networks, Inc. | Generating secure name records |
GB2501265A (en) * | 2012-04-17 | 2013-10-23 | Ibm | Constructing instructions for a mainframe by embedding programming in job control language, and executing those instructions at the mainframe |
US9027129B1 (en) | 2012-04-30 | 2015-05-05 | Brocade Communications Systems, Inc. | Techniques for protecting against denial of service attacks |
US9154423B1 (en) | 2012-05-01 | 2015-10-06 | F5 Networks, Inc. | Minimize SYN-flood issues with flow cache while maintaining performance |
US9525632B1 (en) * | 2012-05-01 | 2016-12-20 | F5 Networks, Inc. | Minimize recycle SYN issues for split TCP hot flows to improve system reliability and performance |
US9338095B2 (en) | 2012-05-01 | 2016-05-10 | F5 Networks, Inc. | Data flow segment optimized for hot flows |
US9203771B1 (en) | 2012-07-23 | 2015-12-01 | F5 Networks, Inc. | Hot service flow hardware offloads based on service priority and resource usage |
CN102946387B (zh) * | 2012-11-01 | 2016-12-21 | 惠州Tcl移动通信有限公司 | 一种防御拒接服务攻击的方法 |
US9912555B2 (en) | 2013-03-15 | 2018-03-06 | A10 Networks, Inc. | System and method of updating modules for application or content identification |
US9722918B2 (en) | 2013-03-15 | 2017-08-01 | A10 Networks, Inc. | System and method for customizing the identification of application or content type |
WO2014176461A1 (en) * | 2013-04-25 | 2014-10-30 | A10 Networks, Inc. | Systems and methods for network access control |
US20140325041A1 (en) * | 2013-04-27 | 2014-10-30 | Tencent Technology (Shenzhen) Co., Ltd. | Method, apparatus, server and system for adapting a client to a hardware environment |
US9294503B2 (en) | 2013-08-26 | 2016-03-22 | A10 Networks, Inc. | Health monitor based distributed denial of service attack mitigation |
US9906422B2 (en) | 2014-05-16 | 2018-02-27 | A10 Networks, Inc. | Distributed system to determine a server's health |
US9756071B1 (en) | 2014-09-16 | 2017-09-05 | A10 Networks, Inc. | DNS denial of service attack protection |
US9537886B1 (en) | 2014-10-23 | 2017-01-03 | A10 Networks, Inc. | Flagging security threats in web service requests |
US9621575B1 (en) | 2014-12-29 | 2017-04-11 | A10 Networks, Inc. | Context aware threat protection |
US9584318B1 (en) | 2014-12-30 | 2017-02-28 | A10 Networks, Inc. | Perfect forward secrecy distributed denial of service attack defense |
US9900343B1 (en) | 2015-01-05 | 2018-02-20 | A10 Networks, Inc. | Distributed denial of service cellular signaling |
US9848013B1 (en) | 2015-02-05 | 2017-12-19 | A10 Networks, Inc. | Perfect forward secrecy distributed denial of service attack detection |
US10063591B1 (en) | 2015-02-14 | 2018-08-28 | A10 Networks, Inc. | Implementing and optimizing secure socket layer intercept |
US9787581B2 (en) | 2015-09-21 | 2017-10-10 | A10 Networks, Inc. | Secure data flow open information analytics |
US10469594B2 (en) | 2015-12-08 | 2019-11-05 | A10 Networks, Inc. | Implementation of secure socket layer intercept |
US9917856B2 (en) | 2015-12-23 | 2018-03-13 | Centripetal Networks, Inc. | Rule-based network-threat detection for encrypted communications |
US10812348B2 (en) | 2016-07-15 | 2020-10-20 | A10 Networks, Inc. | Automatic capture of network data for a detected anomaly |
US10341118B2 (en) | 2016-08-01 | 2019-07-02 | A10 Networks, Inc. | SSL gateway with integrated hardware security module |
US10382562B2 (en) | 2016-11-04 | 2019-08-13 | A10 Networks, Inc. | Verification of server certificates using hash codes |
US10250475B2 (en) | 2016-12-08 | 2019-04-02 | A10 Networks, Inc. | Measurement of application response delay time |
US10397270B2 (en) | 2017-01-04 | 2019-08-27 | A10 Networks, Inc. | Dynamic session rate limiter |
US10187377B2 (en) | 2017-02-08 | 2019-01-22 | A10 Networks, Inc. | Caching network generated security certificates |
CN108418776B (zh) * | 2017-02-09 | 2021-08-20 | 上海诺基亚贝尔股份有限公司 | 用于提供安全业务的方法和设备 |
CN112087464B (zh) * | 2020-09-17 | 2022-11-22 | 北京知道创宇信息技术股份有限公司 | SYN Flood攻击清洗方法、装置、电子设备和可读存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996017462A2 (en) * | 1994-11-21 | 1996-06-06 | Oracle Corporation | A reliable connectionless network protocol |
US6044402A (en) * | 1997-07-02 | 2000-03-28 | Iowa State University Research Foundation | Network connection blocker, method, and computer readable memory for monitoring connections in a computer network and blocking the unwanted connections |
US7002988B1 (en) * | 1998-12-04 | 2006-02-21 | Tekelec | Methods and systems for communicating SS7 messages over packet-based network using transport adapter layer interface |
US6587875B1 (en) * | 1999-04-30 | 2003-07-01 | Microsoft Corporation | Network protocol and associated methods for optimizing use of available bandwidth |
EP1154610A3 (en) * | 2000-05-12 | 2005-05-11 | International Business Machines Corporation | Methods and system for defeating TCP Syn flooding attacks |
US8335915B2 (en) * | 2002-05-14 | 2012-12-18 | Netapp, Inc. | Encryption based security system for network storage |
US7254133B2 (en) * | 2002-07-15 | 2007-08-07 | Intel Corporation | Prevention of denial of service attacks |
-
2002
- 2002-12-04 US US10/308,605 patent/US7584352B2/en not_active Expired - Fee Related
-
2003
- 2003-11-26 CN CNB2003101179966A patent/CN100508449C/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100362802C (zh) * | 2004-06-29 | 2008-01-16 | 华为技术有限公司 | 一种抵御拒绝服务攻击的方法 |
WO2010000171A1 (zh) * | 2008-06-30 | 2010-01-07 | 成都市华为赛门铁克科技有限公司 | 一种通信的建立方法、系统和装置 |
CN103491061A (zh) * | 2012-06-13 | 2014-01-01 | 华为技术有限公司 | 缓解攻击方法、序列号提供方法及设备 |
CN103491061B (zh) * | 2012-06-13 | 2017-02-15 | 华为技术有限公司 | 缓解攻击方法、序列号提供方法及设备 |
CN104935592A (zh) * | 2015-06-16 | 2015-09-23 | 上海斐讯数据通信技术有限公司 | 一种防dos攻击的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20040111635A1 (en) | 2004-06-10 |
US7584352B2 (en) | 2009-09-01 |
CN100508449C (zh) | 2009-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100508449C (zh) | 保护服务器免受拒绝服务攻击的系统和方法 | |
US8171562B2 (en) | System and methods for protecting against denial of service attacks | |
Xu et al. | Sustaining availability of web services under distributed denial of service attacks | |
KR100431231B1 (ko) | Tcp syn 플러딩 공격을 좌절시키기 위한 방법 및시스템 | |
Liu et al. | To filter or to authorize: Network-layer DoS defense against multimillion-node botnets | |
US8499146B2 (en) | Method and device for preventing network attacks | |
US8745723B2 (en) | System and method for providing unified transport and security protocols | |
US20050182968A1 (en) | Intelligent firewall | |
EP1154610A2 (en) | Methods and system for defeating TCP Syn flooding attacks | |
Bani-Hani et al. | SYN flooding attacks and countermeasures: a survey | |
US7503068B2 (en) | Secure ISN generation | |
Kavisankar et al. | CNoA: Challenging Number Approach for uncovering TCP SYN flooding using SYN spoofing attack | |
Raoof et al. | The effect of buffer management strategies on 6lowpan's response to buffer reservation attacks | |
Zheng et al. | Application-based TCP hijacking | |
Kumarasamy et al. | An Efficient Detection Mechanism for Distributed Denial of Service (DDoS) Attack | |
Bocan | Developments in DOS research and mitigating technologies | |
Razmov | Denial of service attacks and how to defend against them | |
Kavitha et al. | Advanced Random Time Queue Blocking for Effective Protection of Application Servers Against Low-Rate DoS Attacks. | |
Ali et al. | Mitigating DDoS attack using random integer factorization | |
Pandey et al. | Mitigating denial of service attack using proof of work and Token Bucket Algorithm | |
US20080289004A1 (en) | Method and Module for Protecting Against Attacks in a High-Speed Network | |
Xia | Selective Dropping of Rate Limiting Against Denial of Service Attacks | |
Wei | Analysis and protection of SYN flood attack | |
Huang et al. | Updated SSDP Scheme for DDoS Attack Defense | |
Saif et al. | A review of recently emerging denial of service threats and defences in the transport layer |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090701 Termination date: 20151126 |
|
CF01 | Termination of patent right due to non-payment of annual fee |