DDoS攻击中的反射放大手法,本质是攻击者借助伪造源IP的小流量请求,诱骗网络中的第三方服务器将大体积响应数据回传至受害者,实现流量倍增。该手法因成本低、隐蔽性强且难以溯源,已成为当前DDoS攻击的主要形式,其核心在于利用UDP协议无连接、不验证源地址的特性。
反射放大攻击的基本原理
要理解反射放大,需要先将两个概念拆开看:反射与放大。
- 反射指流量走向发生偏转,攻击者不直接向受害者发送数据包,而是将数据包发送给互联网上大量正常的服务器,并在数据包中伪造源IP地址为受害者的IP,服务器收到请求后,将响应数据发往这个伪造的源IP,也就是受害者。
- 放大指请求数据包与响应数据包之间存在巨大的体积差,攻击者精心构造一个很小的查询请求,服务器返回的响应体积却远超请求体积,倍数可以从几十倍到数万倍不等。
两者结合后,攻击者只需动用少量带宽资源,就能制造出规模庞大的攻击流量,举例来看:攻击者发送一个仅约60字节的DNS查询请求,某个配置不当的DNS服务器可能返回超过4000字节的响应,放大倍数接近70倍,依托僵尸网络批量发送此类请求,攻击流量能够在极短时间内汇聚到受害者链路。
UDP协议为何成为反射放大的温床
绝大多数反射放大攻击基于UDP协议,TCP协议建立连接时需要三次握手,服务器会验证连接发起方是否真实存在,伪造源IP的行为很难完成数据交互,而UDP协议无连接、无握手、无状态验证,服务器收到UDP请求后直接处理并返回响应,完全不关心请求来源的真伪,这一特性让攻击者可以放心伪造源IP地址,同时也是互联网基础设施在协议层面长期存在的痼疾。
反射放大攻击的完整链条
一次典型的反射放大攻击包含以下环节:
- 攻击者控制大量傀儡机,组成僵尸网络
- 扫描互联网上开放UDP端口、且响应体积较大的服务器,形成反射器资源池
- 将受害者的IP地址作为源IP,向反射器发送构造好的查询请求
- 反射器将大量响应数据发往受害者IP
- 受害者链路被流量塞满,正常服务中断
常见反射放大协议深度拆解
并非所有UDP协议都适合用于反射放大,只有同时满足以下条件的协议才会被攻击者广泛利用:基于UDP、响应体积大于请求体积、部署量庞大且暴露在公网,行业内已将以下协议列为重点防护对象。
DNS:最经典的反射放大载体
DNS反射放大攻击是历史最悠久、攻击者最常使用的手法,攻击者向开放的DNS解析器发送伪造源IP的域名查询请求,解析器返回的DNS应答中包含查询结果和额外资源记录,响应体积远大于请求。
多数情况下,攻击者偏好发送ANY类型的查询,因为ANY请求会让服务器返回该域名下的所有记录,响应体积成倍增加,据公开技术资料记载,DNS ANY查询的放大倍数通常在50倍至100倍之间,2016年针对Dyn公司的攻击便是DNS反射放大手法的典型代表,当时美国东海岸大面积断网,大量知名网站服务瘫痪。
NTP:高频但逐渐减少的放大源
NTP协议用于同步网络设备时间,其monlist命令曾是最危险的放大工具,攻击者向NTP服务器发送monlist请求,服务器返回最近与之通信过的600个客户端IP地址列表,响应体积可达请求的数百倍甚至上千倍。
2014年前后NTP反射放大攻击曾频繁出现在各安全厂商的报告中,近年来随着大量NTP服务器关闭monlist功能或升级至新版本,NTP放大攻击的占比已明显降低,但部分老旧设备仍是隐患。
Memcached:曾创下最大放大倍数
Memcached是一款内存缓存系统,默认监听11211端口,无需认证即可访问,攻击者向暴露在公网的Memcached服务器发送伪造源IP的UDP请求,服务器返回存储在内存中的大量数据,在特定配置下,放大倍数可达10000至51000倍,是迄今已知放大倍数最高的协议载体。
2018年GitHub遭受的攻击峰值流量达1.35Tbps,攻击载体正是Memcached反射放大,行业共识认为,这类攻击的可怕之处在于攻击者仅需极少量带宽即可制造出国家级规模的流量冲击,事后大量Memcached服务器被加固,如今在互联网上已较难找到可利用的实例,但攻击手法本身并未消亡。
SSDP与CLDAP:被忽视的小型放大源
SSDP协议基于UDP 1900端口,用于局域网设备发现,部分家用路由器、智能设备错误地将该端口暴露在公网,攻击者发送伪造源IP的搜索请求,设备返回包含设备信息的响应,放大倍数约为
30倍,单个设备响应有限,但全球范围内暴露的设备数量庞大,同样能汇聚成不可忽视的流量。
CLDAP协议是轻量级目录访问协议的无连接版本,默认端口389,在特定目录服务器配置下,放大倍数可超过50倍,与DNS和NTP相比,CLDAP的利用规模相对有限,但仍是攻击者武器库中的备选项。
各协议反射放大能力对比
| 协议 | 默认端口 | 典型放大倍数 | 当前活跃程度 |
|---|---|---|---|
| DNS | 53(UDP) | 50~100倍 | 高,持续活跃 |
| NTP | 123(UDP) | 200~1000倍 | 低,明显下降 |
| Memcached | 11211(UDP) | 10000~50000倍 | 极低,偶有残留 |
| SSDP | 1900(UDP) | 约30倍 | 中等 |
| CLDAP | 389(UDP) | 50~70倍 | 较低 |
反射放大攻击的典型实战场景
理解原理之后,有必要回到具体场景中看这类攻击如何落地,不同攻击者有不同的目的,手法也随目标变化而调整。
针对游戏服务器的流量冲击
游戏服务器是反射放大攻击的高发目标,攻击者常在一个小时内动用多个反射源轮番轰炸,导致玩家延迟飙升、掉线,服务器运营商面临大量玩家投诉,据国内网络安全厂商披露的案例,多数游戏类DDoS攻击中反射放大手法占比超过六成,防御方通常需要在IDC机房的旁路部署流量清洗设备,实时牵引异常流量。
针对金融政企网站的勒索恐吓
近年来不少金融和政务网站遭受攻击者勒索,攻击者先使用反射放大手法短时冲击目标网站,展示攻击能力后提出赎金要求,这类攻击的目标明确,通常持续数天,由于反射流量的源IP分布广泛且均为真实服务器,单纯封禁源IP效果不佳,需要依赖运营商或云防护厂商的大带宽抗D能力。
如何有效防御反射放大攻击
防御工作的核心思路分为两个方向:降低暴露面和提升吸收能力。
从源头上减少可利用的反射器
自己运营的服务器如果同时满足以下条件,就存在被利用为反射器的风险:开放UDP端口、无需认证即可访问、响应体积较大,可执行的加固动作包括:
- 关闭不必要的UDP服务,特别是NTP monlist、Memcached、SSDP等高风险功能
- 在边界防火墙上限制UDP端口的互联网访问范围
- 对必须开放的UDP服务启用访问控制列表,仅允许可信来源IP访问
- 升级服务器软件至最新版本,修复已知漏洞
在被攻击侧的防护策略
当攻击流量已经指向自身网络时,可采取以下措施:
- 联系上游ISP或云服务商启用黑洞路由,快速丢弃攻击流量
- 部署专业的DDoS防护设备,通过流量指纹识别并过滤异常UDP响应
- 在DNS层面使用DDoS高防IP,将解析流量引流至清洗节点
- 预留充足的带宽冗余,为防护响应争取时间
从攻击检测角度看反射特征
反射放大攻击的流量特征较为明显:大量UDP数据包大小集中在特定数值区间、源IP分布广泛但目标端口单一、流量在短时间内呈爆发式增长,基于这些特征,可在流量监控系统中设置告警规则,在攻击初期即发出预警。
反射放大攻击常见问题解答
DDoS反射放大攻击和直接攻击有什么区别
直接攻击中攻击者控制的傀儡机直接向受害者发送数据包,流量来源可控但攻击者容易暴露;反射放大攻击中流量来源于大量无辜的第三方服务器,攻击者躲在背后,难以追踪,且流量规模远超攻击者自身带宽投入。
如何确认自己是否正在遭受反射放大攻击
观察网络入口流量是否在短时间内出现异常剧增,同时对流量进行抓包分析,若发现大量来自不同IP的UDP响应数据包汇聚至同一目标端口,且数据包大小集中于几个固定数值,大概率是反射放大攻击,可登录边界路由器或交换机查看接口流量统计进行初步判断。
反射放大攻击的放大倍数与什么因素相关
放大倍数取决于所选协议类型、服务器的响应配置、查询请求的构造方式以及服务器存储的数据大小,例如Memcached的放大倍数取决于缓存中数据量的大小,而DNS的放大倍数则与域名记录数量密切相关,攻击者在实际攻击前通常会先探测并评估反射器的放大能力。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/632832.html





