1.常见DDoS攻击分类
DDoS粗略分类为流量型攻击和CC攻击。流量型攻击主要是通过发送报文侵占正常业务带宽,甚至堵塞整个数据中心的出口,导致正常用户访问无法达到业务服务器。CC攻击主要是针对某些业务服务进行频繁访问,重点在于通过精心选择访问的服务,激发大量消耗资源的数据库查询、文件IO等,导致业务服务器CPU、内存或者IO出现瓶颈,无法正常提供服务。比较狡猾的攻击者会混合使用这两种攻击。
流量型攻击细分起来还有许多种,下面介绍其中几种典型的。
·TCP SYN FLOOD——一个正常的TCP连接需要进行三方握手操作。首先,客户端向服务器发送一个TCP SYN数据包。而后服务器分配一个控制块,并响应一个SYN ACK数据包。服务器随后将等待从客户端收到一个ACK数据包。如果服务器没有收到ACK数据包,TCP连接将处于半开状态,直到服务器从客户端收到ACK数据包或者连接因为time-to-live(TTL)计时器设置而超时为止。在连接超时的情况下,事先分配的控制块将被释放。当一个攻击者有意地、重复地向服务器发送SYN数据包,但不对服务器发回的SYN ACK数据包答复ACK数据包时,就会发生TCP SYN泛洪攻击。通常黑客会伪造TCP SYN的源地址为一个不存在的地址,让服务器根本没法回包,并且增加TCP SYN的报文长度,同时堵塞机房出口。
·UDP FLOOD——又称UDP洪水攻击或UDP淹没攻击,UDP是没有连接状态的协议,因此可以发送大量的UDP包到某个端口,如果是个正常的UDP应用端口,则可能干扰正常应用,如果是没有正常应用,服务器要回送ICMP,这样就消耗了服务器的处理资源,而且很容易阻塞上行链路的带宽。通常黑客会发送大量长度较长,源IP伪造成不存在地址的UDP报文,直接堵塞机房出口。
·反射型攻击——反射拒绝服务攻击又称DRDoS攻击(Distributed Reflection Denial of Service),或分布式反射拒绝服务攻击。其原理如图2-22所示,是黑客伪造成被攻击者的IP地址,向互联网上大量开放特定服务的服务器发起请求,接收到请求的那些主机根据源IP地址将响应数据包返回给受害者。整个过程中,返回响应的服务器并不知道请求源的恶意动机。
黑客往往会选择那些响应包远大于请求包的服务来利用,这样才可以用较小的流量换取更大的流量,获得几倍甚至几十倍的放大效果。一般来说,可以被利用来做放大反射攻击的服务包括DNS服务、NTP服务、SNMP服务、Chargen服务等。根据US-CERT在2014年1月发布的预警(Alert TA14-017A),DNS、NTP、SNMP等协议的反射放大效果以及脆弱性如图2-23所示,可见利用NTP协议的反射放大效果最好,超过500倍。也就是说攻击者只需要发起100Mbps的请求流量,经过NTP服务器的反射放大,可以换来5Gbps的攻击流量。2014年2月,在国外某云计算服务提供商遭受的400Gbps DDoS攻击中,黑客就采用了NTP反射放大攻击
2.DDoS云防护的基本原理
DDoS云防护的基本原理就是替身防护,即通过A记录、CNAME或者NS的方式将被攻击网站的域名指向云清洗机房,云清洗机房利用囤积的大量带宽进行流量清洗,把清洗后的正常业务访问转发给网站,过滤掉攻击流量。