相比常规的渗透测试攻击来说,DDoS攻击比前者更具危害性,为什么这么说呢?因为发动一次大规模的DDoS攻击只需要拥有一定数量的僵尸网络即可,而完成一个渗透测试是需要长期及一定的技术水平才可以。而实施后者(DDoS)的门槛相对前者来说低了许多,而造成的危害后果却不亚于前者,可以说DDoS攻击是目前最强大、最难防御的攻击之一。本文由阿里巴巴的高级专家编写,带领大家认识及了解这种攻击的防御办法。
1. DDoS攻击基础
DDoS(Distributed Denial of service,分布式拒绝服务)攻击的主要目的是让指定目标无法提供正常服务,甚至从互联网上消失,是目前最强大、最难防御的攻击之一。
按照发起的方式,DDoS可以简单分为三类:第一类以力取胜,海量数据包从互联网的各个角落蜂拥而来,堵塞IDC入口,让各种强大的硬件防御系统、快速高效的应急流程而无用武之地,这种类型的攻击典型代表是ICMP Flood和UDP Flood,现在已不常见;第二类以巧取胜,灵动难以察觉,每隔几分钟发一个包甚至只需要一个包,就可以让豪华配置的服务器不再响应。这类攻击主要是利用协议或者软件的漏洞发起,如Slowloris攻击,Hash冲突攻击等,需要特定环境机缘巧合下才能出现;第三类是上述两种的混合,轻灵浑厚兼而有之,既利用了协议、系统的缺陷,又具备了海量的流量,如SYN Flood攻击,DNS Query Flood攻击,是当前的主流攻击方式。
下文将一一描述这些最常见、最具代表性攻击方式,并介绍他们的防御方案。
1.1 SYN Flood
SYN Flood是互联网上最经典的DDoS攻击方式之一,最早出现于1999年左右,雅虎是当时最著名的受害者。SYN Flood攻击利用了TCP三次握手的缺陷,能够以较小代价使目标服务器无法响应,且难以追查。
标准的TCP三次握手过程如下:
服务器在收到客户端的SYN报文后,将返回一个SYN ACK(即确认Acknowledgement)的报文,表示客户端的请求被接受,同时TCP初始序号自动加一。
客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一。
经过这三步,TCP连接就建立完成。TCP协议为了实现可靠传输,在三次握手的过程中设置了一些异常处理机制。第三步中如果服务器没收到客户端的最终ACK确认报文,会一直处于SYN_RECV状态,将客户端IP加入等待列表,并重发第二步的SYN ACK报文。重发一般进行3-5次,大约间隔30秒左右轮询一次等待列表重试所有客户端。另一方面,服务器在自己发出了SYN ACK报文后,会预分配资源为即将建立的TCP连接储存信息做准备,这个资源在等待重试期间一直保留。更为重要的是,服务器资源有限,可以维护的SYN_RECV状态超过极限后就不再接受新的SYN报文,也就是拒绝新的TCP连接建立。


闽公网安备 35020602001684号