DDoS攻击类型
攻击者会针对不同的网络层次发起攻击。根据攻击位置的不同,可以将DDoS攻击分为“网络层攻击”、“传输层攻击”和“应用层攻击”三种类型。
网络层攻击
“网络层”主要负责处理数据包在不同网络间的路由和转发。针对网络层的DDoS攻击主要目的是消耗网络带宽资源,常见攻击子类包括“ICMP Flood攻击”、“ARP Flood攻击”和“IP分片攻击”等。
常见攻击子类 | 攻击原理简介 |
---|---|
ICMP Flood攻击 | ICMP(Internet Control Message Protocol,因特网控制报文协议)是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。ICMP协议本身特点决定了它非常容易被用于攻击网络上的路由器和主机。当攻击者向目标网络发送大量的ICMP数据包时,目标主机会耗费大量的CPU资源去处理和响应,直至耗尽设备资源,无法为合法用户提供正常服务。 |
ARP Flood攻击 | ARP(Address Resolution Protocol,地址解析协议)是用来将IP地址解析为MAC地址的协议。ARP协议主要以广播的方式发送ARP请求。同网段内的主机都可以收到广播请求,这为攻击者提供了可乘之机。攻击者通过发送大量的ARP请求,使有限的网络资源被无用的广播信息所占用,造成网络拥堵。其次,因为ARP协议没有安全认证机制,所以只要主机接收到ARP应答包,都会缓存在ARP表中,这为ARP欺骗提供了可能。 |
IP分片攻击 | IP协议在传输数据包时,会将数据报文分为若干分片进行传输,并在目标系统中进行重组。IP分片是网络环境中经常发生的事件,但是,如果数据被人为恶意分片就会产生DDoS攻击。攻击者将经过恶意分段的数据包发送至目标网络,导致目标网络耗费大量资源进行重组,直至资源枯竭。 |
传输层攻击
“传输层”主要负责设备间的端到端通信和网络间通信流量控制和错误控制。针对传输层的DDoS攻击主要目的是使目标服务器或网络设备过载,常见攻击子类包括“SYN Flood攻击”、“ACK Flood攻击”和“UDP Flood攻击”等。
常见攻击子类 | 攻击原理简介 |
---|---|
SYN Flood攻击 | SYN Flood是互联网最原始、最经典的DDoS攻击之一,主要利用了TCP协议的三次握手机制。攻击者通常利用工具或控制僵尸主机向服务器发送海量的变源IP地址或变源端口的SYN报文,服务器响应报文后产生大量的半连接,直至系统资源被耗尽,服务器无法提供正常的服务。 |
ACK Flood攻击 | 攻击者通过僵尸网络向目标服务器发送大量的ACK报文,报文带有超大载荷,会引起链路拥塞。或向目标服务器发送极高速率的变源变端口请求,导致转发设备异常,从而引起网络瘫痪。 |
UDP Flood攻击 | UDP Flood攻击常用于大带宽DDoS攻击。攻击者使用包含无状态UDP协议的IP数据包充塞目标主机的端口,受害主机会寻找与UDP数据包相关的应用程序。如果没有找到,就向发送者回发一条“目标不可达”消息。一旦目标主机被攻击流量淹没,系统就会失去响应,从而造成合法用户无法正常访问的现象。 |
应用层攻击
“应用层”主要负责提供常见的网络应用服务,如电子邮件、网页浏览、文件传输和其他应用程序。针对应用层的DDoS攻击主要目的是让真实用户无法正常使用应用程序,常见攻击子类包括“DNS Flood攻击”、“HTTP Flood攻击”和“CC攻击”等。
常见攻击子类 | 攻击原理简介 |
---|---|
DNS Flood攻击 | 攻击者通过操纵大量傀儡机器,对目标网络发起海量域名查询请求,以中断该域的DNS解析。这种攻击将会破坏网站、API或Web应用程序响应合法流量的能力,让合法用户无法查找到用于调用特定资源的地址,导致业务暂时中断或停止。 |
HTTP Flood攻击 |
|
CC攻击 | CC攻击常用于攻击提供网页访问服务的服务器。攻击者通过代理服务器向目标服务器发送大量貌似合法的请求,使CPU长时间处于高负荷运行状态,永远都有处理不完的连接。攻击会导致正常访问被中止,最终宕机崩溃。 |
DDoS攻击防护
syn flood
可以在收到客户端第三次握手reset 、第二次握手发送错误的ack,等Client回复Reset,结合信任机制进行判断。
ack flood
丢弃三次ack,让对方重连:重发syn建立链接,后续是syn flood防护原理;学习正常ack的源,超过阈值后,该ack没有在正常源列表里面就丢弃ack三次,让对方重连:重发syn建立链接,后续是syn flood防护
udp flood
1、限速启动阈值,一秒钟去往服务器IP的同一端口的UDP包数目,如果是web服务器,可以设置严格一些2、报文内容特征–模式匹配模式匹配规则主要用于过滤包内容带特征字符的攻击包3、IP特征–ACL若遇到1)源IP+目的固定;2)流量超过1G==>在网络设备层面使用acl进行过滤
不同层面的防护
按攻击流量规模分类
较小流量
小于1000Mbps,且在服务器硬件与应用接受范围之内,并不影响业务的:
利用iptables或者DDoS防护应用实现软件层防护
大型流量
大于1000Mbps,但在DDoS清洗设备性能范围之内,且小于机房出口,可能影响相同机房的其他业务的:
利用iptables或者DDoS防护应用实现软件层防护,或者在机房出口设备直接配置黑洞等防护策略,或者同时切换域名,将对外服务IP修改为高负载Proxy集群外网IP或者CDN高仿IP或者公有云DDoS防护网关IP,由其代理到RealServer;或者直接接入DDoS清洗设备
超大规模流量
在DDoS清洗设备性能范围之外,但在机房出口性能之内,可能影响相同机房的其他业务,或者大于机房出口,已经影响相同机房的所有业务或大部分业务的:
联系运营商检查分组限流配置部署情况并观察业务恢复情况
按攻击流量协议分类
syn/fin/ack等tcp协议包
设置预警阀值和响应阀值,前者开始报警,后者开始处理,根据流量大小和影响程度调整防护策略和防护手段,逐步升级。
udp/dns query等udp协议包
对于大部分游戏业务来说,都是TCP协议的,所以可以根据业务协议制定一份tcp协议白名单,如果遇到大量udp请求,可以不经产品确认或者延迟跟产品确认,直接在系统层面/HPPS或者清洗设备上丢弃udp包。
http flood/CC等需要跟数据库交互的攻击
这种一般会导致数据库或者webserver负载很高或者连接数过高,在限流或者清洗流量后可能需要重启服务才能释放连接数,因此更倾向在系统资源能够支撑的情况下调大支持的连接数。相对来说,这种攻击防护难度较大,对防护设备性能消耗很大。
其他
icmp包可以直接丢弃,先在机房出口以下各个层面做丢弃或者限流策略。现在这种攻击已经很少见,对业务破坏力有限。