UDP反射放大攻击是DDoS攻击中"性价比"最高的一种手法。攻击者只需要发送一个很小的请求包,就能让服务器返回一个数十倍甚至数万倍大的响应包,并将响应导向受害者。这种攻击不依赖僵尸网络的规模,而是利用无状态协议的设计缺陷,用极小的成本制造巨大的攻击流量。
对于高防CDN来说,UDP反射放大攻击的防护难点在于:攻击流量来自合法的第三方服务器,源IP是真实的,无法通过IP信誉或源认证来识别。 防护必须依赖传输层的协议特征识别和流量行为分析。
一、UDP反射放大的基本原理
UDP是无连接协议,服务器收到请求后不需要验证源IP的真实性,直接向请求包中的源IP发送响应。攻击者利用这一点,伪造受害者的IP地址,向大量开放UDP服务的服务器发送请求,服务器将响应发送给受害者。
放大的倍率取决于请求和响应的大小比例。例如,DNS查询请求可能只有几十字节,但响应可能达到几千字节,放大倍率数十倍;NTP的monlist请求更夸张,一个请求可以触发数百个响应包,放大倍率可达数百倍;memcached的放大倍率最高可达数万倍。
这种攻击的特点是大包、高带宽、低PPS。与SYN Flood的小包高PPS特征相反,UDP反射放大攻击消耗的是带宽资源,单个数据包可能达到1500字节。清洗设备如果只优化了PPS处理能力,在面对大包攻击时可能带宽被占满。
二、三类常见放大源的攻击特征
DNS放大。 攻击者向开放的DNS递归解析器发送查询请求,伪造源IP为受害者。DNS响应通常比请求大得多,尤其是ANY类型查询或DNSSEC签名响应。放大倍率通常在20–60倍之间。防护的关键是识别异常大的DNS响应包,以及来自非授权DNS服务器的响应流量。
NTP放大。 NTP服务器的monlist命令会返回服务器最近通信过的客户端列表,一个请求可以触发数百个响应包。放大倍率可达200倍以上。防护的关键是识别monlist请求特征,以及对UDP 123端口的异常流量进行过滤。
memcached放大。 memcached的统计命令可以返回大量缓存数据,放大倍率最高可达50000倍以上。这是目前放大倍率最高的攻击手法。防护的关键是限制memcached服务的公网暴露,以及在传输层识别异常的UDP大包响应。
| 放大源 | 协议端口 | 放大倍率 | 流量特征 | 防护要点 |
|---|---|---|---|---|
| DNS | UDP 53 | 20–60倍 | 大包、中带宽 | 识别异常DNS响应 |
| NTP | UDP 123 | 200倍以上 | 大包、高带宽 | 过滤monlist请求 |
| memcached | UDP 11211 | 最高50000倍 | 超大包、极高带宽 | 限制公网暴露 |
三、高防CDN的传输层防护逻辑
UDP反射放大攻击的防护在传输层完成,核心逻辑是识别异常的UDP流量特征并进行过滤。
特征识别。 清洗设备根据UDP流量的包大小分布、响应来源、协议特征等维度,识别出疑似放大攻击的流量。例如,来自非授权DNS服务器的UDP 53端口流量、来自非NTP服务器的UDP 123端口流量,都是可疑的。
速率限制。 对特定UDP端口的流量进行速率限制,超过阈值的流量被丢弃或限速。这可以防止单一放大源产生过大的攻击流量。
源认证。 对于UDP协议,源认证比TCP更困难,因为UDP没有握手过程。部分方案采用UDP挑战响应机制,要求客户端在发送数据前先完成一次挑战响应,确认源IP的真实性。这可以过滤掉伪造源IP的攻击流量。
这与高防CDN清洗中心架构中提到的检测环节直接相关——UDP反射放大攻击的检测需要在传输层完成,检测的维度包括包大小、协议特征、源IP信誉等。
四、源站侧的配合防护
高防CDN的清洗能力保护的是经过CDN的流量。但UDP反射放大攻击的一个重要特征是:攻击者可以直接向源站IP发起UDP攻击,绕过CDN。 因此,源站侧的防护同样重要。
源站侧的防护措施包括:关闭不必要的UDP服务端口(如memcached默认端口11211)、限制DNS递归解析服务的访问范围、配置防火墙规则只允许清洗中心的回源IP段访问源站。这些措施与高防CDN源站IP隐藏方案中的回源白名单机制是配套的。
五、结语
UDP反射放大攻击利用无状态协议的设计缺陷,用小请求触发大响应,制造远超僵尸网络规模的攻击流量。高防CDN的防护逻辑是在传输层识别异常的UDP流量特征,结合速率限制和源认证机制过滤攻击流量。评估时需要确认清洗设备是否具备UDP协议特征识别能力、是否有针对DNS/NTP/memcached等常见放大源的专项规则、以及源站侧是否有配套的端口关闭和白名单配置。
相关阅读:如果你想了解清洗中心如何检测和过滤UDP攻击流量,高防CDN清洗中心架构拆解了从流量牵引到回源转发的完整链路;关于源站侧的回源白名单配置,高防CDN源站IP隐藏方案中有详细说明。