同Tear Drop
泪滴攻击一样,SYN Flood
也是一种拒绝服务攻击,其目标是通过发送大量伪造的TCP
连接请求(SYN包)
来消耗目标系统的资源,从而使得被攻击方资源耗尽而无法响应合法的连接请求的攻击方式。
SYN FLOOD攻击原理
SYN FLOOD
攻击发生在OSI
参考模型的传输层,它的攻击原理是利用TCP
协议的三次握手过程协议缺陷来实现的。
正常情况下,客户端和服务器建立TCP
连接三次握手过程是这样的:
1)建立连接时,客户端发送一个SYN同步报文给服务器端,该报文中包含了本端的初始化序列号,同时设置本段的连接状态为SYN-SENT。
2)服务器端收到SYN同步报文后,给客户端回应SYN+ACK 报文,该报文中包含本段的初始化序列号。同时设置本端连接状态为SYN-RCVD。
3)客户端收到服务器端的SYN+ACK后,向服务器端发送ACK报文进行确认,此包发送完毕,客户端和服务器进入ESTABLISHED状态。
三次握手的完成标志着一个TCP连接的成功建立。
但是,当客户端向服务器端发送SYN包后,对服务器端回应的SYN+ACK包不进行处理,会出现什么结果呢,如下图?
服务器端发送完SYN+ACK 报文后,会建立一个半连接状态的socket套接口,同时会启动一个定时器,若在超时时间内未收到客户端回应的ACK报文,服务器端将会进行超时重传SYN+ACK报文给客户端,默认重传次数为5次。
第1次重传:1秒
第2次重传:2秒
第3次重传:4秒
第4次重传:8秒
第5次重传:16秒
第5次重传后还要等待32秒,若仍收不到 ACK 报文,才会关闭连接。
这样等等待时间=(1+2+4+8+16)+32=63秒,也就是大于1分钟的时间。
这样,若客户端不停的发送SYN报文并对服务端回应的报文不回答,就会导致服务器端不停的创建半连接状态的**socket **而耗尽资源,从而服务器端无法处理正常的客户端的连接请求,造成拒绝服务攻击,即SYN FLOOD洪水攻击。
SYN FLOOD攻击的特点
- 攻击手段简单:
SYN FLOOD
攻击是一种常见的DoS
攻击手段。 - 防不胜防:
SYN FLOOD
是一种难以防范的攻击方式,因为其攻击行为在某些情况下很难被察觉和区分。例如,一个SYN FLOOD
攻击可能会伪造合法的IP
地址,使得攻击行为看起来像是来自正常的网络流量。这使得防火墙、IDS
等安全设备很难对其进行有效的检测和拦截。 - 攻击效果显著:
SYN FLOOD
攻击能够快速地使目标系统资源耗尽,导致其无法响应合法的连接请求。这使得攻击者能够成功地实施DoS
攻击,使目标网站或服务完全瘫痪。 - 危害范围广泛:
SYN FLOOD
攻击不仅能够对主机进行攻击,还能够危害路由器、防火墙等网络系统。事实上,只要目标系统打开TCP
服务,SYN FLOOD
攻击就能够对其实施攻击。