UDP特点
- 是一种无连接和无会话的网络协议
- 传输数据丢失后不需要检查
正是由于UDP的这些特点,导致黑客能借用UDP进行攻击
UDP洪水攻击
攻击危害
UDP Flood attack是一种DoS攻击(Denial-of-Service attack,拒绝服务攻击)
它指将大量UDP数据包发送到目标服务器,且速率非常快,通常会造成服务器资源耗尽,无法响应正常的请求,严重时会导致链路拥塞。保护目标服务器的防火墙也可能因 UDP 泛滥而耗尽,从而导致对合法流量的拒绝服务
攻击原理
服务器在特定端口接收到 UDP 数据包时,它会通过两个步骤进行响应:
- 服务器首先检查是否有程序在侦听该端口的请求
- 如果没有程序在该端口侦听,则服务器以ICMP (ping) 数据包的格式回复给发送者
因此,对于大量的UDP数据包,服务器将被迫发送多个ICMP数据包,资源很快被耗尽,最终导致其他客户端无法访问它。同时,攻击者还可以欺骗UDP数据包的IP地址,确保过多的ICMP数据包不会返回给他们
判断
UDP洪水攻击有一些特征,可以根据以下特征来判断是否为UDP洪水攻击
- 源IP或源端口变化频繁
- 大量针对一个端口
- 报文负载一般保持不变或具有规律的变化
图中报文的负载全部相同
如何防御
载荷检查
- 基于目的IP地址、目的安全区域或会话进行UDP流量统计
- 当UDP流量超过阈值时,会触发载荷检查,将超过部分丢弃
指纹学习
- 指纹由Anti-DDoS设备动态学习生成
- 当UDP流量超过阈值时,会将攻击报文的一段显著特征学习为指纹
- 丢弃后续能够与指纹匹配的报文
- 关联TCP类服务防范
原理:
- UDP是无连接的协议,无法通过源认证的方法防御UDP洪水攻击
- 关联TCP业务,UDP业务流量需要通过TCP业务流量认证或控制
步骤
- 当UDP业务受到攻击时,对关联的TCP业务强制启动防御
- 通过关联防御产生TCP白名单,以确定同一源的UDP流量的走向
- 命中白名单的源的UDP流量允许通过,否则就被丢弃