DDOS之SYN Flood攻击

自从网站被攻击以后,发觉对DDOS攻击知之甚少。然而DDOS攻击只是个范称,具体攻击方式又细分成很多种类。所谓知己知彼,百战不殆。只有了解了DDOS攻击的原理,才能做好防御措施。下面是我最近在研究的SYN Flood攻击。

SYN Flood攻击原理

SYN Flood攻击是DDOS攻击中经典的一种攻击方式,它抓住了TCP三次握手的漏洞,通过无穷无尽地向目标服务器发送请求数据包,攻击者可以淹没目标服务器上的所有可用端口,导致目标服务器缓慢响应合法流量或压根不响应。

TCP三次握手的过程以及原理我在之前的文章中提到过,大致可以理解为

  1. 客户端发送SYN包到目标服务器
  2. 目标服务器响应SYN/ACK包给客户端
  3. 客户端再发送ACK包到目标服务器,至此TCP握手成功

SYN Flood攻击者恰恰利用了这样一个事实:目标服务器在收到初始SYN包之后,服务器使用一个或多个SYN/ACK包进行响应,并等待握手中的最后一步。下面是SYN Flood攻击的原理:

  1. 攻击者,大多数情况下通过代理,发送大量的SYN包到目标服务器
  2. 目标服务器响应每一个连接请求,并为每个请求保留一个端口准备接收请求
  3. 目标服务器期待收到ACK包,但是迟迟收不到,因为攻击者丢弃了SYN/ACK包。而另一方面攻击者还在源源不端地发送SYN包过来。新收到的SYN包会导致服务器临时维护新打开的连接端口保持一段时间,并且一旦可用端口被用尽,服务器就失去了响应。

在网络中,当目标服务器打开连接但客户端关闭时,连接处于半开放。 在这种类型的DDoS攻击中,目标服务器不断地等待每个连接超时,然后端口才能再次可用。 所以,这种类型的攻击也叫做半开放攻击。

SYN Flood攻击的三种方式

直接攻击

如果SYN Flood攻击者的IP地址没有伪造,没有使用代理,这种攻击就算直接攻击。但这种攻击方式往往隐蔽性很差,防御人只要抓到IP,用防火墙屏蔽了就行了,而且也很容易暴露攻击人的信息,往往只供学习使用。

欺骗攻击

恶意用户还可以伪造自己的IP来发送SYN包,以便让自己的身份不易发现。这种数据包并不是不能追溯到源头的,只要ISP愿意提供帮助的话。

分布式攻击

使用僵尸网络来创建攻击是最难防御的,追溯到源头的可能性笔欺骗攻击更低,对于攻击者而言是最好的隐蔽自己的方式。

总结

总之,SYN Flood攻击是一种流量较少的攻击,但是威力却很强。一台电脑打跨一个集群不在话下。

avatar

chilihotpot

You Are The JavaScript In My HTML