一、概念
攻击者通过向目标系统发送大量的UDP数据包,以消耗其网络带宽和系统资源,导致目标系统无法正常响应合法用户的请求,从而达到拒绝服务的目的。
二、原理
1.伪造源IP地址:由于UDP是无连接的协议,攻击者可以轻松地伪造源IP地址,使得目标系统无法准确追踪攻击来源。
2.发送大量UDP数据包:攻击者使用专门设计的工具生成大量的UDP数据包,并通过单个或多个僵尸网络(botnet)进行发送。这些数据包可能包含伪造的源IP地址和随机的目的端口,以增加攻击的隐蔽性和难以追踪性。
3.占用网络带宽和系统资源:当目标系统接收到大量的UDP数据包时,它必须消耗大量的计算资源来处理这些数据包,同时网络带宽也会被迅速占满。这导致目标系统无法处理正常的业务请求,服务性能急剧下降甚至完全中断。
三、攻击类型
1.直接UDP Flood:攻击者直接向目标系统发送大量的UDP数据包,占用其网络带宽和系统资源。
2.反射/放大攻击:攻击者利用某些支持UDP协议的公共服务(如DNS、NTP服务器)的响应机制,将请求包的源IP地址篡改为攻击目标的IP地址。当这些公共服务响应请求时,大量的响应数据包将被发送到攻击目标,形成反射/放大攻击。由于某些服务的响应包远大于请求包,这种攻击方式能够产生巨大的放大效果。
四、防御
1.限流:可以采用两种方式针对UDP Flood进行限流
①以IP地址作为统计对象,对到达这个IP地址的UDP流量进行统计并限流,超过部分丢弃。
②以UDP会话作为统计对象,如果某条会话上的UDP报文速率达到了告警阈值,这条会话就会被锁定,后续命中这条会话的UDP报文都被丢弃。
2.指纹学习:通过分析客户端向服务器发送的UDP报文载荷是否有大量的一致内容,来判定这个UDP报文是否异常。DDoS防护系统对到达指定目的地的UDP报文进行统计,当UDP报文达到告警阈值时,开始对UDP报文的指纹进行学习。如果相同的特征频繁出现,就会被学习成指纹,后续命中该指纹的报文将被判定为攻击报文,并作为攻击特征进行过滤。