CN101636968A - 使用传输控制协议状态转换防止拒绝服务攻击的方法 - Google Patents
使用传输控制协议状态转换防止拒绝服务攻击的方法 Download PDFInfo
- Publication number
- CN101636968A CN101636968A CN200680056355A CN200680056355A CN101636968A CN 101636968 A CN101636968 A CN 101636968A CN 200680056355 A CN200680056355 A CN 200680056355A CN 200680056355 A CN200680056355 A CN 200680056355A CN 101636968 A CN101636968 A CN 101636968A
- Authority
- CN
- China
- Prior art keywords
- state
- server
- tcp
- bag
- ack
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/22—Arrangements for preventing the taking of data from a data transmission channel without authorisation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供了使用传输控制协议(TCP)状态转换防止拒绝服务(DoS)攻击的方法。根据此方法,使用TCP在客户端和服务器之间传输的包的流被监控,以防止DoS攻击例如SYN洪水,且从而可能有效地减少服务器上的负荷并且提供更为安全的服务。此外,通过将该方法应用到服务器的防火墙、代理服务器、入侵检测系统等,就可能不扰乱常规TCP状态转换操作而巩固DoS弱点,并且检测、验证和阻挡滥用此弱点的DoS攻击,从而提供了更为安全的服务。
Description
技术领域
本发明涉及使用传输控制协议(TCP)状态转换防止拒绝服务(DoS)攻击的方法,更具体地,涉及有效地减少服务器上的负荷、并且通过监控在客户端和服务器之间使用TCP传输的包的流以防止DoS攻击的方法。
背景技术
图1是示出传输控制协议(TCP)状态转换操作的概念性图表,示出了,用于更好地描述TCP的,一个用于建立和终止TCP连接的完整的标准有限状态机。在图1中,为了准确,示出所有状态和变化。
首先,TCP连接状态定义如下:
LISTEN:服务器的后台程序(daemon)启动并等待连接请求的状态;
SYN_SENT:本地客户端应用程序请求连接到远方主机的状态;
SYN_RCVD:服务器从远方客户端收到连接请求并且回复该客户端但却尚未从该客户端收到确认消息的状态;
ESTABLISHED:在完成三次握手(three-way handshaking)之后服务器和客户端彼此连接的状态;
FIN_WAIT_1,CLOSE_WAIT,FIN_WAIT_2:服务器请求客户端断开连接、接收回复并因此断开连接的状态;
CLOSING:主要发生在当确认消息在传输中丢失时的一种罕有状态;
TIME_WAIT:连接被终止,但套接字(socket)暂时为可能已丢失的慢片段(segment)保持为开;以及
CLOSED:连接被完全终止的状态。
根据建立和终止TCP连接的TCP通信的连接原理,客户端和服务器必须经历三次握手过程以创建TCP连接,如先前的文件例如传输控制协议RFC793,Jon Postel于1981年9月所著的《DARPA InternetProgram Protocol Specification》所定义。
也就是说,对于客户端和服务器之间的TCP通信,交换连接请求(同步(SYN))包、连接请求确认(同步/确认(SYN/ACK))包和确认(ACK)包的过程是完全必要的。
此处,连接请求(SYN)、连接请求确认(SYN/ACK)和确认(ACK)的成功的三次握手过程,表示了在客户端和服务器之间的TCP连接已经建立,也即,由客户端向服务器请求的TCP通信端口已为通信而打开。
然而,通过互联网提供服务的公司的数量的增加,伴随着滥用三次握手过程的攻击——例如:拒绝服务攻击,诸如SYN洪水攻击——的增多。
将结合示例描述这一点。首先,当服务器在紧接着收到SYN包——在其中设定了SYN标记——之后,从恶意客户端收到结束(FIN)包——在其中设定了FIN标记——时,服务器的TCP状态直接从SYN_RCVD状态跳转到CLOSE_WAIT状态。为此原因,服务器向客户端发送ACK包——其中设定了相应于FIN包的ACK标记,并且等待客户端的ACK包——作为对所发送ACK包的答复。
其次,当服务器收到客户端的SYN包,向客户端发送其SYN/ACK包——在其中设定了SYN和ACK标记——以接受该连接请求,然后却不能从客户端收到相应于SYN/ACK包的ACK包时,服务器就在SYN_RCVD状态等待,直到收到ACK包。以此方式,当恶意客户端在不断向服务器发送包之后不完成该过程时,服务器的队列溢出,从而发生了DoS事件。
第三,通过SYN洪水攻击,也即从客户端单方不断发送SYN包的攻击,服务器一直在SNC_RCVD状态等待。由于此原因,SYN包不断堆叠在服务器的队列中。结果,所有队列都被填满而服务器不能收到任何连接请求。
常规的TCP状态转换在有些情况下支持操作系统(OS)的所有操作,但在其他情况下并非如此,这取决于OS的配置。具体地,DoS攻击诸如SYN洪水攻击对正在服务中的服务器加上了沉重的负担,因为服务器不执行转换到在最初三次握手过程中所建议的所有状态的检测步骤。从而,服务器变得不能提供服务并且经常崩溃。
发明内容
技术问题
本发明涉及使用传输控制协议(TCP)状态转换防止拒绝服务(DoS)攻击的方法,此方法有效地减少了服务器上的负荷,并且通过监控在客户端和服务器之间使用TCP传输的包的流,以防止DoS攻击。
技术方案
本发明一方面提供通过监控使用传输控制协议(TCP)在客户端和服务器之间传输的包的流,使用TCP状态转换防止拒绝服务(DoS)攻击的方法,该方法包括如下步骤:当服务器接收到客户端的连接请求(SYN)包时,将服务器的TCP状态从侦听(LISTEN)状态切换到连接请求收到(SYN_RCVD)状态;在服务器向客户端发送连接请求确认(SYN/ACK_1)包之后,将服务器的TCP状态由SYN_RCVD状态切换到确认等待(ACK_WAIT)状态;以及当在先前设定的超时期间,服务器未收到发送自客户端的相应于所述SYN/ACK_1包的确认(ACK_2)包时,将服务器的TCP状态从ACK_WAIT状态直接切换到关闭(CLOSED)状态,并且安全地终止TCP连接。
此处,超时期间可被设定为60秒。
本发明另一方面提供通过监控使用传输控制协议(TCP)在客户端和服务器之间传输的包的流,使用TCP状态转换防止拒绝服务(DoS)攻击的方法,该方法包括如下步骤:当服务器接收到客户端的SYN包时,将服务器的TCP状态从LISTEN状态切换到SYN_RCVD状态;在服务器向客户端发送SYN/ACK_1包之后,将服务器的TCP状态从SYN_RCVD状态切换到ACK_WAIT状态;以及当服务器再次收到同样的SYN包时,将服务器的TCP状态从ACK_WAIT状态直接切换到CLOSED状态,并且安全地终止TCP连接。
本发明又一方面提供通过监控使用传输控制协议(TCP)在客户端和服务器之间传输的包的流,使用TCP状态转换防止拒绝服务(DoS)攻击的方法,该方法包括如下步骤:当服务器接收到客户端的SYN包时,将服务器的TCP状态从LISTEN状态切换到SYN_RCVD状态;在服务器向客户端发送SYN/ACK_1包之后,将服务器的TCP状态由SYN_RCVD状态切换到ACK_WAIT状态;当服务器收到结束(FIN)包时,向客户端发送相应于该FIN包的ACK_3包,然后将服务器的TCP状态从ACK_WAIT状态切换到准备关闭(CLOSING)状态;当服务器收到发送自客户端且相应于所述ACK_3包的ACK_4包时,将服务器的TCP状态从CLOSING状态切换到等待关闭(CLOSE_WAIT_1)状态;以及在服务器向客户端发送相应于所述ACK_4包的ACK_5包之后,将服务器的TCP状态从CLOSE_WAIT_1状态切换到CLOSED状态,并且安全地终止TCP连接。
此处,当服务器在先前设定的超时期间内没有接收到ACK_4包时,将服务器的TCP状态从CLOSING状态直接切换到CLOSED状态,并且可安全地终止TCP连接。
超时期间可被设为10秒。
本发明又一方面提供通过监控使用传输控制协议(TCP)在客户端和服务器之间传输的包的流,使用TCP状态转换防止拒绝服务(DoS)攻击的方法,该方法包括如下步骤:当服务器接收到客户端的SYN包时,将服务器的TCP状态从LISTEN状态切换到SYN_RCVD状态;在服务器向客户端发送SYN/ACK_1包之后,将服务器的TCP状态由SYN_RCVD状态切换到ACK_WAIT状态;当服务器收到在其中设有FIN标记和相应于所述SYN/ACK_1包的ACK_2标记的确认结束(ACK_2/FIN)包时,将服务器的TCP状态从ACK_WAIT状态切换到等待关闭(CLOSE_WAIT_2)状态;以及当服务器从客户端收到异常的确认(ACK_6)包时,将服务器的TCP状态从CLOSE_WAIT_2切换到CLOSED状态,并且安全地终止TCP连接。
此处,当服务器在先前设定的超时期间没有收到ACK_6包时,可将服务器的TCP状态从CLOSE_WAIT_2状态切换到CLOSED状态,并且可安全地终止TCP连接。
超时期间可设为10秒。
本发明又一方面提供通过监控使用传输控制协议(TCP)在客户端和服务器之间传输的包的流,使用TCP状态转换防止拒绝服务(DoS)攻击的方法,该方法包括如下步骤:当服务器收到客户端的SYN包时,将服务器的TCP状态从LISTEN状态切换到SYN_RCVD状态;在服务器向客户端发送SYN/ACK_1包之后,将服务器的TCP状态由SYN_RCVD状态切换到ACK_WAIT状态;当服务器从客户端收到相应于SYN/ACK_1包的确认(ACK_2)包时,将服务器的TCP状态从ACK_WAIT状态切换到连接建立(ESTABLISHED)状态并且建立TCP连接;当服务器收到客户端的结束(FIN)包时,向客户端发送相应于该FIN包的ACK_3包,然后将服务器的TCP状态从ESTABLISHED状态切换到等待关闭(CLOSE_WAIT_2)状态;以及当服务器从客户端收到相应于所述ACK_3包的ACK_4包时,将服务器的TCP状态从CLOSE_WAIT_2状态切换到CLOSED状态,并且安全地终止TCP连接。
此处,当服务器在先前设定的超时期间没有收到ACK_4包时,将服务器的TCP状态从CLOSE_WAIT_2状态切换到CLOSED状态,并且安全地终止TCP连接。
超时期间可被设为10秒。
在TCP连接建立之后,当服务器从客户端收到在其中设有复位(RST)标记或SYN标记的包时,可将服务器的TCP状态从ESTABLISHED状态切换到CLOSED状态,并且可安全地终止TCP连接。
在TCP连接建立之后,当服务器在先前设定的超时期间没有收到包时,可将服务器的TCP状态从ESTABLISHED状态直接切换到CLOSED状态,并且可安全地终止TCP连接。
超时期间可设为30分钟。
本发明又一方面提供存储能够执行上述使用TCP状态转换防止DoS攻击的方法的程序的记录介质。
有益效果
根据使用传输控制协议(TCP)状态转换防止拒绝服务(DoS)攻击的创新方法,监控在客户端和服务器之间使用TCP传输的包以防止DoS攻击,从而可能有效地减少服务器上的负荷并且提供更安全的服务。
此外,通过将本发明方法应用到服务器的防火墙、代理服务器、入侵检测系统等,就可能不扰乱常规TCP状态转换操作而巩固DoS弱点,并且检测、验证和阻挡滥用此弱点的DoS攻击,从而提供了更为安全的服务。
附图说明
图1是示出了常规的传输控制协议(TCP)状态转换操作的概念性图表;
图2是示出了根据本发明示例性实施方案用于实现用传输控制协议(TCP)状态转换防止拒绝服务攻击(DoS)的方法的概念性图表;
图3示出了在客户端和服务器之间的正常TCP连接建立过程中应用于本发明示例性实施方案中的包的流以及TCP状态转换操作;
图4示出了在客户端和服务器之间的正常TCP连接断开过程中应用于本发明示例性实施方案中的包的流以及TCP状态转换操作;
图5根据异常TCP连接的第一实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作;
图6根据异常TCP连接的第二实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作;
图7根据异常TCP连接的第三实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作;
图8根据异常TCP连接的第四实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作;而
图9根据异常TCP连接的第五实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作;而
图10根据异常TCP连接的第六实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作。
发明模式
下文将详细描述本发明的示例性实施方案。然而,本发明不限于以下公开的实施方案,可以用各种不同形式实现。下列实施方案是为了使得本公开内容完整且使得本领域普通技术人员可以实施本公开内容而描述的。
图2是示出了根据本发明示例性实施方案用于实现用传输控制协议(TCP)状态转换防止拒绝服务攻击的方法的概念性图表。
参见图2,根据本发明示例性实施方案使用TCP状态转换防止DoS攻击的监控模型,包括一个侦听(LISTEN)状态、一个连接请求收到(SYN_RCVD)状态、确认等待(ACK_WAIT)状态、连接建立(ESTABLISHED)状态、准备关闭(CLOSING)状态、等待关闭(CLOSE_WAIT_1和CLOS_WAIT_2)状态和关闭(CLOSD)状态,这些状态根据在客户端和服务器之间发送和接收的包的流,以各种不同顺序连接。
此处,在本发明的示例性实施方案中,为了方便,与在TCP的常规基本规格中所使用的相同的术语,被用于LISTEN、SYN_RVCD、ESTABLISHED,CLOSING和CLOSED状态。然而本发明并不被这些术语的使用限制,且也可以采用其他任意术语。
同时,根据本发明示例性实施方案用于实施利用TCP状态转换防止DoS攻击的方法的监控模型,并不改变TCP的常规基本规格模型,而是通过TCP在客户端和服务器之间建立了共用连接(commonconnection)。此外,将本发明的监控模型应用到服务器的防火墙、代理服务器、入侵检测系统等以监控包的流,检测在客户端100和服务器200之间的TCP连接是否正常建立,并且当尝试异常连接例如DoS攻击诸如SYN洪水攻击时,安全地终止TCP连接。从而,此监控模型可以巩固DoS弱点而不扰乱根据TCP的常规基本规格的TCP状态转换操作,而且也可以检测、验证和阻挡滥用此弱点的DoS攻击,从而提供了更为安全的服务。
也就是说,当监控在客户端和服务器之间交换的包时,应用于本发明示例性实施方案的监控模型检查并且确定包是否交换,而对于各个TCP连接状态的切换符合TCP规格。
此外,当客户端尝试与服务器建立新会话时,应用于本发明示例性实施方案的监控模型在初始状态下建立新的会话,在读包的时候检查包的标签(tag),而当标签的验证结果无效时,终止该会话或连接状态。此外,在切换到下一连接状态时,监控模型检查从服务器发送到客户端的应答包,并且不断监控所交换的包的流。
图3示出了在客户端和服务器之间的正常TCP连接建立过程中,应用于本发明示例性实施方案中的包的流以及TCP状态转换操作。
参见图2和图3,当最初在客户端100和服务器200之间建立会话的时候,服务器200的TCP状态被设定到LISTEN状态——这是本发明的初始TCP状态。
然后,客户端100向其想要连接的服务器200的特定端口发送其中设有SYN标记的连接请求(SYN)包。当服务器200检查到从客户端100发送的SYN包已收到时,服务器200的TCP状态就从LISTEN状态切换到SYN_RCVD状态。
随后,为了接受此连接请求,服务器200发送其连接请求确认(SYN/ACK_1)包——其中设有SYN标记和确认标记(ACK_1)——到客户端100。当服务器200检查到SYN/ACK_1包被发送到客户端100时,服务器200的TCP状态就从SYN_RCVD状态切换到ACK_WAIT状态。
随后,客户端100向服务器200发送相应于SYN/ACK_1包的ACK_2包。当服务器200检查到发送自客户端100的ACK_2包已经收到时,服务器200的TCP状态从ACK_WAIT状态切换到ESTABLISHED状态,从而建立了TCP连接。在此之后,数据在客户端100和服务器200之间自由地传输。
图4示出了在客户端和服务器之间的正常TCP连接断开过程中,应用于本发明示例性实施方案的包的流以及TCP状态转换操作。
参见图2至图4,为了终止处于ESTABLISHED状态——在此状态下在客户端100和服务器200之间建立该TCP连接——的TCP连接,客户端100向服务器20的特定端口发送其中设有FIN标记的结束(FIN)包。当服务器200收到从客户端100发送的FIN包时,服务器200就向客户端100发送相应于FIN包的ACK_3包,以确认TCP连接的终止。
此处,当服务器200检查到相应于FIN包的ACK_3包已经发送到客户端100时,服务器200的TCP状态就从ESTABLISHED状态切换到CLOSE_WAIT_2状态。
然后,客户端100向服务器200发送相应于ACK_3包的ACK_4包。当服务器200检查到发送自客户端100的ACK_4包已经收到时,服务器200的TCP状态从CLOSE_WAIT_2状态切换到CLOSED状态,从而终止TCP连接。
同时,当客户端100不发送ACK_4包并且在CLOSE_WAIT_2状态预先终止连接时,发生超时,且服务器200进入CLOSED状态以终止TCP连接。
更具体地,当服务器200在先前设定的超时期间——其可以是大约10秒——未收到ACK_4包时,服务器200的TCP状态就从CLOSE_WAIT_2状态切换到CLOSED状态,从而安全地终止了TCP连接。
根据本发明示例性实施方案使用TCP状态转换防止DoS攻击的方法,将在下文参考TCP连接的各个不同实施例详细描述。
图5根据异常TCP连接的第一实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作。
参见图2和图5,当服务器200检查到发送自客户端100的SYN包已被收到时,服务器200的TCP状态就从LISTEN状态切换到SYN_RCVD状态。然后,当服务器200检查到SYN/ACK_1包已发送给客户端100时,服务器200的TCP状态就从SYN_RCVD状态切换到ACK_WAIT状态。
随后,当服务器200检查到来自客户端100的ACK_2包已收到时,服务器200的TCP状态就从ACK_WAIT状态切换到ESTABLISHED状态,从而建立了TCP连接。
此后,当服务器200检查到发送自客户端100的、在其中设有复位(RST)或SYN标记的包已经收到时,服务器200的TCP状态就从ESTABLISHED状态直接切换到CLOSED状态,从而安全地终止了TCP连接。
同时,当客户端100在ESTABLISHED状态下异常终止连接而不发送任何包时,超时发生,而服务器200直接进入CLOSED状态以终止TCP连接。
更具体地,当服务器200在先前设定的超时期间——其可为约30分钟——内未收到包时,服务器200的TCP状态就从ESTABLISHED状态直接切换到CLOSED状态,从而安全地终止了TCP连接。
图6根据异常TCP连接的第二实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作。
参见图2至6,当服务器200检查到发送自客户端100的SYN包已收到时,服务器200的TCP状态就从LISTEN状态切换到SYN_RCVD状态。然后,当服务器200检查到SYN/ACK_1包已发送到客户端100时,服务器200的TCP状态就从SYN_RCVD状态切换到ACK_WAIT状态。
随后,当服务器200收到发送自客户端100的FIN包、且检查到相应于该FIN包的ACK_3包已发送到客户端100时,服务器200的TCP状态就从ACK_WAIT状态切换到CLOSING状态,从而准备安全地终止相应会话。
此处,当客户端100在CLOSING状态异常地终止该连接而不发送任何包时,超时发生,且服务器200直接进入CLOSED状态以终止该TCP连接。
更具体地,当服务器200在先前设定的超时期间——其可为约10秒——内没有接收到包时,服务器200的TCP状态就从CLOSING状态直接切换到CLOSED状态,从而安全地终止了TCP连接。
图7根据异常TCP连接的第三实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作。
参见图2至7,当服务器200检查到发送自客户端100的SYN包已经收到时,服务器200的TCP状态就从LISTEN状态切换到SYN_RCVD状态。然后,当服务器200检查到SYN/ACK_1包已发送到客户端100时,服务器200的TCP状态就从SYN_RCVD状态切换到ACK_WAIT状态。
随后,当服务器200收到发送自客户端100的FIN包、且检查到相应于该FIN包的ACK_3包已发送到客户端100时,服务器200的TCP状态就从ACK_WAIT状态切换到CLOSING状态,从而准备安全地终止相应会话。
然后,当服务器200检查到发送自客户端100且相应于所述ACK_3包的ACK_4包已经收到时,服务器200的TCP状态就从CLOSING状态切换到CLOSE_WAIT_1状态。
随后,当服务器200检查到相应于所述ACK_4包的ACK_5包已发送给客户端100时,服务器200的TCP状态就从CLOSE_WAIT_1状态切换到CLOSED状态,从而安全地终止了TCP连接。
图8根据异常TCP连接的第四实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作。
参见图2和8,当服务器200检查到发送自客户端100的SYN包已经收到时,服务器200的TCP状态就从LISTEN状态切换到SYN_RCVD状态。然后,当服务器200检查到SYN/ACK_1包发送到客户端100时,服务器200的TCP状态就从SYN_RCVD状态切换到ACK_WAIT状态。
随后,当客户端100向服务器200发送其中设有FIN标记和相应于SYN/ACK_1包的ACK_2标记的确认结束(ACK_2/FIN)包、且服务器200检查到发送自客户端100的ACK_2/FIN包已收到时,服务器200的TCP状态就从ACK_WAIT状态切换到CLOSE_WAIT_2状态。
此后,当服务器200检查到已从客户端100收到异常的ACK_6包——也即由恶意客户端故意发送的不符合正常包的流的确认包——时,服务器200的TCP状态就从CLOSE_WAIT_2状态切换到CLOSED状态。
同时,当客户端100在CLOSE_WAIT_2状态结束该连接而不发送包括异常ACK_6包的任何包时,超时发生,且服务器200直接进入CLOSED状态以终止TCP连接。
更具体地,当服务器200在先前设定的超时期间——其可为大约10秒——没有收到包时,服务器200的TCP状态就从CLOSE_WAIT_2状态切换到CLOSED状态,从而安全地终止了TCP连接。
图9根据异常TCP连接的第五实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作。
参见图2和9,当服务器200检查到发送自客户端100的SYN包已收到时,服务器200的TCP状态就从LISTEN状态切换到SYN_RCVD状态。然后,当服务器200检查到SYN/ACK_1包已发送给客户端100时,服务器200的TCP状态就从SYN_RCVD状态切换到ACK_WAIT状态。
当客户端100在ACK_WAIT状态下异常终止连接而不发送任何包时,超时发生,且服务器200直接进入CLOSED状态以终止TCP连接。
更具体地,当服务器200在先前设定的超时期间——其可为大约60秒——没有收到包时,服务器200的TCP状态就从ACK_WAIT状态直接切换到CLOSED状态,从而安全地终止了TCP连接。
图10根据异常TCP连接的第六实例示出了应用于本发明示例性实施方案中的包的流以及TCP状态转换操作。
参见图2和图10,当服务器200检查到发送自客户端100的SYN包已收到时,服务器200的TCP状态就从LISTEN状态切换到SYN_RCVD状态。然后,当服务器200检查到SYN/ACK_1包被发送到客户端100时,服务器200的TCP状态就从SYN_RCVD状态切换到ACK_WAIT状态。
当在ACK_WAIT状态下客户端100不断发送同样的SYN包、且服务器200检查到发送自同一客户端100的SYN包已收到时,则服务器200的TCP状态就从ACK_WAIT状态直接切换到CLOSED状态,从而安全地终止了TCP连接。
如上所述,根据本发明示例性实施方案用于实现使用TCP状态转换防止DoS攻击的方法的监控模型,检查并防止由于连续溢出依照常规TCP规格的队列而导致的DoS事件发生,从而有效地在早期防止了DoS攻击。
同时,根据本发明示例性实施方案的使用TCP状态转换防止DoS攻击的方法,可以以计算机代码的形式存储在计算机可读记录介质上。计算机可读记录介质可以是存储可由计算机系统读取的数据的任何记录设备。
例如,计算机可读记录介质可以是只读存储器(ROM),随机存取存储器(RAM),光盘只读存储器(CD-ROM),磁带,硬盘,软盘,移动存储设备,非易失性存储器(闪存),光学数据存储设备,等等。而且,记录介质可以是载波,例如,在互联网上的传播。
此外,计算机可读记录介质可分布在通过通信网络相连的计算机系统中,并且以可由分散(de-centralized)方法读取和执行的代码的形式存储。
虽然已经参考使用TCP状态转换防止DoS攻击的方法的某个示例性实施方案示出并描述了本发明,本领域技术人员将理解,在不脱离本发明的精神和范围的前提下,可以在其中做出各种不同的在形式上和细节上的改变。
Claims (16)
1.通过监控使用传输控制协议(TCP)在客户端和服务器之间传输的包的流,使用TCP状态转换防止拒绝服务(DoS)攻击的方法,该方法包括如下步骤:
当服务器接收到客户端的连接请求(SYN)包时,将服务器的TCP状态从侦听(LISTEN)状态切换到连接请求收到(SYN_RCVD)状态;
在服务器向客户端发送连接请求确认(SYN/ACK_1)包之后,将服务器的TCP状态由SYN_RCVD状态切换到确认等待(ACK_WAIT)状态;以及
当在先前设定的超时期间,服务器未收到发送自客户端的相应于所述SYN/ACK_1包的确认(ACK_2)包时,将服务器的TCP状态从ACK_WAIT状态直接切换到关闭(CLOSED)状态,并且安全地终止TCP连接。
2.权利要求1所述的方法,其中超时期间被设为60秒。
3.通过监控使用传输控制协议(TCP)在客户端和服务器之间传输的包的流,使用TCP状态转换防止拒绝服务(DoS)攻击的方法,该方法包括如下步骤:
当服务器接收到客户端的连接请求(SYN)包时,将服务器的TCP状态从侦听(LISTEN)状态切换到连接请求收到(SYN_RCVD)状态;
在服务器向客户端发送连接请求确认(SYN/ACK_1)包之后,将服务器的TCP状态由SYN_RCVD状态切换到确认等待(ACK_WAIT)状态;以及
当服务器再次收到同样的SYN包时,将服务器的TCP状态从ACK_WAIT状态直接切换到关闭(CLOSED)状态,并且安全地终止TCP连接。
4.通过监控使用传输控制协议(TCP)在客户端和服务器之间传输的包的流,使用TCP状态转换防止拒绝服务(DoS)攻击的方法,该方法包括如下步骤:
当服务器接收到客户端的连接请求(SYN)包时,将服务器的TCP状态从侦听(LISTEN)状态切换到连接请求收到(SYN_RCVD)状态;
在服务器向客户端发送连接请求确认(SYN/ACK_1)包之后,将服务器的TCP状态由SYN_RCVD状态切换到确认等待(ACK_WAIT)状态;
当服务器收到结束(FIN)包时,向客户端发送相应于该FIN包的确认(ACK_3)包,然后将服务器的TCP状态从ACK_WAIT状态切换到准备关闭(CLOSING)状态;
当服务器收到发送自客户端且相应于所述ACK_3包的ACK_4包时,将服务器的TCP状态从CLOSING状态切换到等待关闭(CLOSE_WAIT_1)状态;以及
在服务器向客户端发送相应于所述ACK_4包的ACK_5包之后,将服务器的TCP状态从CLOSE_WAIT_1状态切换到关闭(CLOSED)状态,并且安全地终止TCP连接。
5.权利要求4所述的方法,其中当服务器在先前设定的超时期间内没有接收到所述ACK_4包时,将服务器的TCP状态从CLOSING状态直接切换到CLOSED状态,并且安全地终止TCP连接。
6.权利要求5所述的方法,其中超时期间被设为10秒。
7.通过监控使用传输控制协议(TCP)在客户端和服务器之间传输的包的流,使用TCP状态转换防止拒绝服务(DoS)攻击的方法,该方法包括如下步骤:
当服务器接收到客户端的连接请求(SYN)包时,将服务器的TCP状态从侦听(LISTEN)状态切换到连接请求收到(SYN_RCVD)状态;
在服务器向客户端发送连接请求确认(SYN/ACK_1)包之后,将服务器的TCP状态由SYN_RCVD状态切换到确认等待(ACK_WAIT)状态;
当服务器从客户端收到在其中设有FIN标记和相应于SYN/ACK_1包的ACK_2标记的确认结束(ACK_2/FIN)包时,将服务器的TCP状态从ACK_WAIT状态切换到等待关闭(CLOSE_WAIT_2)状态;以及
当服务器从客户端收到异常的确认(ACK_6)包时,将服务器的TCP状态从CLOSE_WAIT_2状态切换到关闭(CLOSED)状态,并且安全地终止TCP连接。
8.权利要求7所述的方法,其中当服务器在先前设定的超时期间内没有收到ACK_6包时,将服务器的TCP状态从CLOSE_WAIT_2状态切换到CLOSED状态,并且安全地终止TCP连接。
9.权利要求8所述的方法,其中超时期间被设为10秒。
10.通过监控使用传输控制协议(TCP)在客户端和服务器之间传输的包的流,使用TCP状态转换防止拒绝服务(DoS)攻击的方法,该方法包括如下步骤:
当服务器收到客户端的连接请求(SYN)包时,将服务器的TCP状态从侦听(LISTEN)状态切换到连接请求收到(SYN_RCVD)状态;
在服务器向客户端发送连接请求确认(SYN/ACK_1)包之后,将服务器的TCP状态由SYN_RCVD状态切换到确认等待(ACK_WAIT)状态;
当服务器从客户端收到相应于SYN/ACK_1包的确认(ACK_2)包时,将服务器的TCP状态从ACK_WAIT状态切换到连接建立(ESTABLISHED)状态并且建立TCP连接;
当服务器收到客户端的结束(FIN)包时,向客户端发送相应于该FIN包的ACK_3包,然后将服务器的TCP状态从ESTABLISHED状态切换到等待关闭(CLOSE_WAIT_2)状态;以及
当服务器从客户端收到相应于所述ACK_3包的ACK_4包时,将服务器的TCP状态从CLOSE_WAIT_2状态切换到关闭(CLOSED)状态,并且安全地终止TCP连接。
11.权利要求10所述的方法,其中当服务器在先前设定的超时期间内没有收到ACK_4包时,将服务器的TCP状态从CLOSE_WAIT_2状态切换到CLOSED状态,并且安全地终止TCP连接。
12.权利要求11所述的方法,其中超时期间被设为10秒。
13.权利要求10所述的方法,其中在TCP连接建立之后,当服务器从客户端收到在其中设有复位(RST)标记或SYN标记的包时,将服务器的TCP状态从ESTABLISHED状态直接切换到CLOSED状态,并且安全地终止TCP连接。
14.权利要求10所述的方法,其中在TCP连接建立之后,当服务器在先前设定的超时期间内没有收到包时,将服务器的TCP状态从ESTABLISHED状态直接切换到CLOSED状态,并且安全地终止TCP连接。
15.权利要求14所述的方法,其中超时期间被设为30分钟。
16.计算机可读记录介质,存储能够执行权利要求1至15中任一项的方法的程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060111606A KR100806492B1 (ko) | 2006-11-13 | 2006-11-13 | Tcp 상태천이를 이용한 서비스거부 공격의 차단방법 |
KR1020060111606 | 2006-11-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101636968A true CN101636968A (zh) | 2010-01-27 |
Family
ID=39383030
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680056355A Pending CN101636968A (zh) | 2006-11-13 | 2006-12-08 | 使用传输控制协议状态转换防止拒绝服务攻击的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8925068B2 (zh) |
JP (1) | JP2010539735A (zh) |
KR (1) | KR100806492B1 (zh) |
CN (1) | CN101636968A (zh) |
WO (1) | WO2008060009A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014101634A1 (zh) * | 2012-12-25 | 2014-07-03 | 华为技术有限公司 | 一种防御攻击的方法和设备 |
CN107395596A (zh) * | 2017-07-24 | 2017-11-24 | 南京邮电大学 | 一种基于冗余控制器切换的拒绝服务攻击防御方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100889670B1 (ko) | 2007-08-08 | 2009-03-19 | 삼성에스디에스 주식회사 | 모바일 디바이스상에서 tcp 기반의 서비스거부 공격의 차단 방법 |
KR100977365B1 (ko) * | 2007-12-20 | 2010-08-20 | 삼성에스디에스 주식회사 | 바이러스 및 네트워크 공격에 대한 자기 방어 기능을 갖는모바일 디바이스 및 이를 이용한 자기 방어 방법 |
CN101594269B (zh) * | 2009-06-29 | 2012-05-02 | 成都市华为赛门铁克科技有限公司 | 一种异常连接的检测方法、装置及网关设备 |
KR101231801B1 (ko) * | 2009-07-14 | 2013-02-08 | 한국전자통신연구원 | 네트워크 상의 응용 계층 보호 방법 및 장치 |
US8543807B2 (en) | 2009-07-14 | 2013-09-24 | Electronics And Telecommunications Research Institute | Method and apparatus for protecting application layer in computer network system |
KR101279213B1 (ko) | 2010-07-21 | 2013-06-26 | 삼성에스디에스 주식회사 | 시스템 온 칩 기반의 안티-멀웨어 서비스를 제공할 수 있는 디바이스 및 그 방법과 인터페이스 방법 |
US8706889B2 (en) | 2010-09-10 | 2014-04-22 | International Business Machines Corporation | Mitigating connection identifier collisions in a communication network |
CN102739464B (zh) * | 2011-04-11 | 2015-04-01 | 国基电子(上海)有限公司 | 具服务器监视功能的客户端及方法 |
KR101223932B1 (ko) * | 2011-04-19 | 2013-02-05 | 주식회사 코닉글로리 | 실사용자 인증방식을 이용한 디도스 공격 대응 시스템 및 이를 이용한 디도스 공격 대응 방법 |
US9736118B2 (en) * | 2013-07-17 | 2017-08-15 | Cisco Technology, Inc. | Session initiation protocol denial of service attack throttling |
CN103561025B (zh) * | 2013-11-01 | 2017-04-12 | 中国联合网络通信集团有限公司 | 防dos攻击能力检测方法、装置和系统 |
CN105337929A (zh) * | 2014-06-24 | 2016-02-17 | 阿里巴巴集团控股有限公司 | Ip地址的校验方法和装置 |
US9800547B2 (en) * | 2015-04-16 | 2017-10-24 | International Business Machines Corporation | Preventing network attacks on baseboard management controllers |
US10440147B2 (en) | 2015-11-24 | 2019-10-08 | William Edward Woodcock, IV | Quality-of-service management for domain name service |
US10432650B2 (en) | 2016-03-31 | 2019-10-01 | Stuart Staniford | System and method to protect a webserver against application exploits and attacks |
CN106487790B (zh) * | 2016-10-09 | 2020-01-31 | 广东睿江云计算股份有限公司 | 一种ack flood攻击的清洗方法及系统 |
KR102697184B1 (ko) * | 2020-11-25 | 2024-08-21 | 한국전자통신연구원 | 강화학습 시스템 상의 개체 포팅 방법 및 장치 |
CN114285771B (zh) * | 2021-12-30 | 2024-02-06 | 阿里巴巴(中国)有限公司 | 一种tcp连接的连接状态追踪方法及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978849A (en) * | 1997-06-13 | 1999-11-02 | International Business Machines Corporation | Systems, methods, and computer program products for establishing TCP connections using information from closed TCP connections in time-wait state |
US6725378B1 (en) * | 1998-04-15 | 2004-04-20 | Purdue Research Foundation | Network protection for denial of service attacks |
JP2001057554A (ja) * | 1999-08-17 | 2001-02-27 | Yoshimi Baba | クラッカー監視システム |
TW518864B (en) * | 2000-05-12 | 2003-01-21 | Ibm | Methods and system for defeating TCP SYN flooding attacks |
US7398317B2 (en) | 2000-09-07 | 2008-07-08 | Mazu Networks, Inc. | Thwarting connection-based denial of service attacks |
US7143180B2 (en) * | 2001-08-16 | 2006-11-28 | International Business Machines Corporation | System and method for protecting a TCP connection serving system from high-volume of TCP connection requests |
US6851062B2 (en) | 2001-09-27 | 2005-02-01 | International Business Machines Corporation | System and method for managing denial of service attacks |
US7373663B2 (en) * | 2002-05-31 | 2008-05-13 | Alcatel Canada Inc. | Secret hashing for TCP SYN/FIN correspondence |
US7370357B2 (en) * | 2002-11-18 | 2008-05-06 | Research Foundation Of The State University Of New York | Specification-based anomaly detection |
KR100565774B1 (ko) * | 2003-08-20 | 2006-03-28 | 학교법인 울산공업학원 | 트랜스미션 컨트롤 프로토콜의 연결요청신호 포화를이용한 서비스거부공격의 차단방법 |
JP2006033472A (ja) * | 2004-07-16 | 2006-02-02 | Kddi Corp | 不正アクセス検知装置 |
US7613193B2 (en) * | 2005-02-04 | 2009-11-03 | Nokia Corporation | Apparatus, method and computer program product to reduce TCP flooding attacks while conserving wireless network bandwidth |
KR100608136B1 (ko) | 2005-02-18 | 2006-08-08 | 재단법인서울대학교산학협력재단 | 티씨피 연결의 스테이트풀 인스펙션에 있어서의 보안성능향상방법 |
-
2006
- 2006-11-13 KR KR1020060111606A patent/KR100806492B1/ko active IP Right Grant
- 2006-12-08 JP JP2009537060A patent/JP2010539735A/ja active Pending
- 2006-12-08 WO PCT/KR2006/005337 patent/WO2008060009A1/en active Application Filing
- 2006-12-08 CN CN200680056355A patent/CN101636968A/zh active Pending
- 2006-12-08 US US12/514,697 patent/US8925068B2/en not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014101634A1 (zh) * | 2012-12-25 | 2014-07-03 | 华为技术有限公司 | 一种防御攻击的方法和设备 |
US9628441B2 (en) | 2012-12-25 | 2017-04-18 | Huawei Technologies Co., Ltd. | Attack defense method and device |
CN107395596A (zh) * | 2017-07-24 | 2017-11-24 | 南京邮电大学 | 一种基于冗余控制器切换的拒绝服务攻击防御方法 |
Also Published As
Publication number | Publication date |
---|---|
KR100806492B1 (ko) | 2008-02-21 |
US20100088763A1 (en) | 2010-04-08 |
JP2010539735A (ja) | 2010-12-16 |
WO2008060009A1 (en) | 2008-05-22 |
US8925068B2 (en) | 2014-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101636968A (zh) | 使用传输控制协议状态转换防止拒绝服务攻击的方法 | |
CN101378395B (zh) | 一种防止拒绝访问攻击的方法及装置 | |
TWI362859B (zh) | ||
US20060221946A1 (en) | Connection establishment on a tcp offload engine | |
US20070240209A1 (en) | Session persistence on a wireless network | |
EP2176989B1 (en) | Method of preventing tcp-based denial-of-service attacks on mobile devices | |
CN101345741A (zh) | 基于互联网的代理系统及代理连接方法 | |
US20050144441A1 (en) | Presence validation to assist in protecting against Denial of Service (DOS) attacks | |
CN101420455A (zh) | 反向http网关数据传输系统和/或方法及其网络 | |
CN104426837B (zh) | Ftp的应用层报文过滤方法及装置 | |
US20090037587A1 (en) | Communication system, communication apparatus, communication method, and program | |
CN110071826B (zh) | 物联网终端设备及其与远程管理平台建立tcp连接的方法 | |
CA2287714C (en) | Protected keepalive message through the internet | |
CN107277058B (zh) | 一种基于bfd协议的接口认证方法及系统 | |
US20050132214A1 (en) | Authentication for transmission control protocol | |
US9055088B2 (en) | Managing a communication session with improved session establishment | |
CN109040112A (zh) | 网络控制方法和装置 | |
CN111585653A (zh) | 一种基于光纤通信的双单向隔离交换方法 | |
US6915431B1 (en) | System and method for providing security mechanisms for securing network communication | |
CN108449280B (zh) | 一种避免tcp报文乒乓的方法及装置 | |
CN111953742B (zh) | 一种页面重定向方法、终端设备、中间设备及服务器 | |
US7860977B2 (en) | Data communication system and method | |
US20080052402A1 (en) | Method, a Computer Program, a Device, and a System for Protecting a Server Against Denial of Service Attacks | |
CN100429881C (zh) | 一种在透明模式下防止syn洪水攻击、保护网络的方法 | |
JP2001345802A (ja) | インターネット接続におけるセキュリティ方法およびターミナルアダプタ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100127 |