论文部分内容阅读
摘要:随着互联网的迅速普及和应用的不断发展,各种黑客工具和网络攻击手段也随之倍出,网络攻击导致网络和用户受到侵害,其中分布式拒绝服务 DDoS 以其攻击范围广、隐蔽性强、简单有效等特点成为常见的网络攻击技术之一,极大地影响网络和业务主机系统的有效服务。其中的TCP DDoS它利用了传统协议中三次握手协议的不安全性,向互联网服务器发送大量的报文。由于服务器接收大量无效的报文,而使得正常的报文无法得到及时响应。如何检测这种攻击发生以及如何降低这种攻击所带来的后果已成为目前安全界研究的热点问题。
关键词:TCP DDoS;SYN Flooding;SYN Timeout
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)18-31520-01
TCP DDoS Attack Prevention
LI Ji-liang
(Xuzhou Construction Vocational and Technical College Electronics and Information Engineering,Xuzhou 221008,China)
Abstract:With Internet popularized quickly and its application developing, more and more all kinds of hacker's tools and network attack measures are appearing.Network attacks damaged networks and users, among which DDoS(Distributed Denial
of Service) attacks become one of the common network attack techniques by the characteristics, such as extensive area, strong concealment, simpleness and efficiency, etc. DDoS attacks greatly affected the effective service of network and host systems.The SYN Flood which makes use of the insecurity of three-way handshake of the tradition TCP/IP protocol sends large number of SYN packets to Internet server.Becuse the server receive much useless SYN packets,the normal SYN packets can not response in time.Thus how to detect the attack and reduce the damage of this attack has become the topic of network security research throughout the world at present.
Key words:TCP DDoS;SYN Flooding;SYN Timeout
1 引言
在网络安全攻击的各种手段和方法中,DoS(denial of service)拒绝服务类型攻击危害最大。DoS 攻击的基本过程:首先攻击者向服务器发送众多的带有虚假地址的请求,服务器发送回复信息后等待回传信息,由于地址是伪造的,所以服务器一直等不到回传的消息,分配给这次请求的资源就始终没有被释放。当服务器等待一定的时间后,连接会因超时而被切断,攻击者会再度传送新的一批请求,在这种反复发送伪地址请求的情况下,服务器资源最终会被耗尽。而DDoS(distributed denial of service)分布式拒绝服务攻击的出现无疑是一场网络的灾难,它是DoS攻击的演变和升级,是黑客手中惯用的攻击方式之一,破坏力极强,往往会带给网络致命的打击。它是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,利用一批网络上受控制的机器,在某一个时间段内向一台或某几台机器发起攻击。如图1所示。这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。由于它难以被侦测和控制,因此也广泛受到网络安全业界的关注。而目前Internet上占主导地位的DDoS最主要的攻击方式来自于SYN Flood。
图1 分布式拒绝服务攻击体系结构
2 SYN Flood攻击原理
SYN Flooding 利用了TCP/IP协议的固有漏洞。面向连接的TCP的三次握手是SYN Flooding 存在的基础。首先,客户端的TCP向服务器发出连接请求报文段,其首部中的同步比特 SYN 应置为1,并选择序号x,表明传送数据时的第一个数据字节的序号是x。服务器的TCP收到连接请求报文段后,如同意,则发回确认。服务器在确认报文段中应将SYN 置为1,其确认号应为x+1,同时也为自己选择序号y。客户端收到此报文段后,向服务器给出确认,其确认号应为y+1。客户端的TCP通知上层应用进程,连接已经建立。当运行服务器进程的主机的TCP收到客户端主机的确认后,也通知其上层应用进程,连接已经建立。以上的过程在TCP协议中被称为三次握手(three-way handshake)。如图2所示。
图2 用三次握手建立TCP连接
在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),此时服务器处于半链接状态,如图3所示。已分配了一些资源,并将该半链接放入端口的积压队列中。最后,如果服务器在规定的超时时间内收到来自客户机的ACK确认报文,则三次握手完成,服务器删除半链接,链接正式建立。否则在规定的超时时间内不能收到来自客户机的ACK确认报文,服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间,后丢弃这个未完成的连接,这段时间的长度称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30称~2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源——数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP地址进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够大,最后的结果往往是堆栈溢出崩溃(即使服务器端的系统足够大),服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况称作服务器端受到了SYN Flooding攻击(SYN 洪水攻击)。
关键词:TCP DDoS;SYN Flooding;SYN Timeout
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)18-31520-01
TCP DDoS Attack Prevention
LI Ji-liang
(Xuzhou Construction Vocational and Technical College Electronics and Information Engineering,Xuzhou 221008,China)
Abstract:With Internet popularized quickly and its application developing, more and more all kinds of hacker's tools and network attack measures are appearing.Network attacks damaged networks and users, among which DDoS(Distributed Denial
of Service) attacks become one of the common network attack techniques by the characteristics, such as extensive area, strong concealment, simpleness and efficiency, etc. DDoS attacks greatly affected the effective service of network and host systems.The SYN Flood which makes use of the insecurity of three-way handshake of the tradition TCP/IP protocol sends large number of SYN packets to Internet server.Becuse the server receive much useless SYN packets,the normal SYN packets can not response in time.Thus how to detect the attack and reduce the damage of this attack has become the topic of network security research throughout the world at present.
Key words:TCP DDoS;SYN Flooding;SYN Timeout
1 引言
在网络安全攻击的各种手段和方法中,DoS(denial of service)拒绝服务类型攻击危害最大。DoS 攻击的基本过程:首先攻击者向服务器发送众多的带有虚假地址的请求,服务器发送回复信息后等待回传信息,由于地址是伪造的,所以服务器一直等不到回传的消息,分配给这次请求的资源就始终没有被释放。当服务器等待一定的时间后,连接会因超时而被切断,攻击者会再度传送新的一批请求,在这种反复发送伪地址请求的情况下,服务器资源最终会被耗尽。而DDoS(distributed denial of service)分布式拒绝服务攻击的出现无疑是一场网络的灾难,它是DoS攻击的演变和升级,是黑客手中惯用的攻击方式之一,破坏力极强,往往会带给网络致命的打击。它是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,利用一批网络上受控制的机器,在某一个时间段内向一台或某几台机器发起攻击。如图1所示。这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。由于它难以被侦测和控制,因此也广泛受到网络安全业界的关注。而目前Internet上占主导地位的DDoS最主要的攻击方式来自于SYN Flood。
图1 分布式拒绝服务攻击体系结构
2 SYN Flood攻击原理
SYN Flooding 利用了TCP/IP协议的固有漏洞。面向连接的TCP的三次握手是SYN Flooding 存在的基础。首先,客户端的TCP向服务器发出连接请求报文段,其首部中的同步比特 SYN 应置为1,并选择序号x,表明传送数据时的第一个数据字节的序号是x。服务器的TCP收到连接请求报文段后,如同意,则发回确认。服务器在确认报文段中应将SYN 置为1,其确认号应为x+1,同时也为自己选择序号y。客户端收到此报文段后,向服务器给出确认,其确认号应为y+1。客户端的TCP通知上层应用进程,连接已经建立。当运行服务器进程的主机的TCP收到客户端主机的确认后,也通知其上层应用进程,连接已经建立。以上的过程在TCP协议中被称为三次握手(three-way handshake)。如图2所示。
图2 用三次握手建立TCP连接
在TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),此时服务器处于半链接状态,如图3所示。已分配了一些资源,并将该半链接放入端口的积压队列中。最后,如果服务器在规定的超时时间内收到来自客户机的ACK确认报文,则三次握手完成,服务器删除半链接,链接正式建立。否则在规定的超时时间内不能收到来自客户机的ACK确认报文,服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间,后丢弃这个未完成的连接,这段时间的长度称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30称~2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源——数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP地址进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够大,最后的结果往往是堆栈溢出崩溃(即使服务器端的系统足够大),服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况称作服务器端受到了SYN Flooding攻击(SYN 洪水攻击)。