DDoS反射放大攻击,简单说就是攻击者把“小请求”发给服务器,却让服务器把“大响应”砸向受害者。 这种手法利用的是UDP协议的无连接特性和IP源地址可伪造的漏洞,常见协议有DNS、NTP、SSDP、memcached等,下面我们拆开讲讲原理、协议和防御方法。
DDoS反射放大攻击原理是什么?
很多人第一次听到“反射放大”会觉得有点绕,其实拆开看就两个词:反射和放大,反射是指攻击者把请求的源IP地址改成受害者的IP,服务器收到请求后,响应自然就发给了受害者,放大呢,是挑选那些响应体积远大于请求体积的协议,让有限的攻击带宽换来成倍的冲击流量。
反射放大攻击要成立,需要两个前提:一是网络上存在大量可以伪造源IP的UDP服务,二是这些服务的响应比请求大,DNS、NTP、SSDP这些协议天生就符合条件,业内专家指出,目前大多数UDP反射攻击都集中在这几个协议上。
为什么UDP协议这么容易被利用?
TCP协议有三次握手,服务器在响应前会和客户端确认连接,暴露了真实IP,但UDP协议是一锤子买卖,只要数据包到达端口,服务就会直接回包,再加上核心网络设备默认不校验源IP真实性,攻击者随手改个IP就能“嫁祸”给受害者,这就是反射放大攻击屡禁不止的根源。
常见反射放大协议有哪些?
既然原理清楚了,咱们来看看具体是哪些协议在“助纣为虐”,近几年公开的DDoS事件里,出场率最高的,还是下面这几类:
- DNS:开放递归解析服务器是重灾区,攻击者向递归服务器查询一个较大的DNS记录,比如TXT或ANY类型,响应可以塞满数据包,放大倍数通常能达到数十倍。
- NTP:时间同步协议的老版本monlist命令会让NTP服务器回传最近与其同步过的客户端列表,响应文件很大,放大倍数在数百倍左右,是早期大规模反射攻击的主力。
- SSDP:通用即插即用协议,用于局域网设备发现,攻击者利用UPnP的开启设备响应,也能制造几十倍放大效果,不少智能家居设备因此被当成“帮凶”。
- memcached:这是一种分布式内存缓存系统,如果在公网裸奔并且未授权访问,攻击者发送一次小请求就可能触发巨量缓存数据返回,放大倍数高得吓人,一度刷新了全球最大DDoS的纪录。
- 其他:像CLDAP、SNMP、RIPv1也在特定环境下被利用,不过传播面没有前面几个广。

下面的表格可以帮你快速对比:
| 协议 | 默认端口 | 放大效果 | 常见触发方式 |
|---|---|---|---|
| DNS | 53 | 数十倍 | 递归查询、ANY请求 |
| NTP | 123 | 数百倍 | monlist指令 |
| SSDP | 1900 | 数十倍 | UPnP设备发现 |
| memcached | 11211 | 数千倍甚至更高 | 未授权缓存读写 |
| SNMP | 161 | 数十倍 | 公开团体名查询 |
攻击者怎么选中这些协议的?
攻击者不会随机挑一个端口就开打,他们通常先用扫描工具批量探测互联网上开放的UDP端口,比如Shodan这类搜索引擎也能帮上忙,找到版本老、配置宽松的设备后,再把这些IP整理成“反射资源池”,所以你会发现,很多小型路由器和摄像头都被“薅”过羊毛,因为它们默认开启UPnP又没有访问控制。
从扫描到暴击,一次反射放大攻击的完整链路
理解了协议,我们再看攻击过程,这样你才能知道防御该从哪下手。
- 第一步,扫描“武器”,攻击者通过全网IP段扫描,收集开放UDP服务且响应可被放大的IP列表。
- 第二步,伪造源地址,把每个探测请求的源IP都替换成受害者的IP地址。
- 第三步,发送触发请求,利用肉鸡或租用的大带宽机器,向这些IP海量发送精心构造的小数据包。
- 第四步,响应洪流,被欺骗的服务器向受害者发送远超请求体积的响应,在短时间内堆积成巨大流量,直到带宽或者服务器资源被耗尽。
以DNS反射放大为例,攻击者可以构造一个“查询example.com的TXT记录”的请求,源IP伪装成目标,当这个请求到达开放的递归DNS服务器时,服务器会去查解析记录,然后把可能数百字节的响应发给受害者,成百上千台DNS服务器同时这么做,就能形成每秒几十GB的攻击流量。

这里有个很典型的场景:某天早上你到公司,发现网站无响应,登录云控制台看到入网流量曲线直接拉满,抓包显示来源IP全是UDP 53端口,不用怀疑,你已经被反射放大攻击盯上了。
如何防御反射放大攻击?
反射放大攻击的防御思路是“两头堵”:要么让攻击者找不到可用的反射源,要么让反射流量到不了受害者。
源头治理:让服务器不再“好心办坏事”
- 关闭不需要的UDP服务,尤其是memcached、SNMP这类应用,如果实在要用,务必加访问控制白名单。
- DNS服务器不要向全网开放递归解析,只允许内网或特定IP段使用。
- 升级NTP到最新版本,禁用monlist命令;新的NTP版本已经默认关闭该命令。
- 路由器、物联网设备尽量使用UPnP的替代方案,或者在外网接口关掉SSDP响应。
你可以用端口扫描工具快速自查,比如nmap -sU -p 53,123,1900,11211,161 你的IP,看这些端口是否对外开放,如果发现开放,就要警惕了。
网络层防护:让伪造的IP无处遁形
ISP和大型企业可以在路由器上启用源地址验证(BCP38规范),对出站流量检查源IP是否属于该网段,不符合的就丢弃,这样攻击者伪造源IP的包根本发不出去,运营商层面的uRPF(逆向路径转发)也是类似作用,这个方案需要全网协同,落地进度一直不理想,所以不能只指望它。
清洗和缓解:流量到了怎么办?
如果你是受害者,单靠自己的带宽肯定扛不住,常见做法是接入DDoS高防服务或云清洗服务,这类服务会在攻击流量到达你服务器之前,先通过各大数据中心的路由牵引,把流量清洗掉,再转发干净流量给你。
具体操作上,你需要把DNS解析或业务流量CNAME到高防IP,或者通过BGP宣告将自己的IP段路由到服务商的清洗节点,选择服务商时,可以对比一下清洗能力、节点分布和故障响应速度,国内DDoS防护服务商价格按防护峰值和套餐计费,从几千到几十万一年都有,游戏业务通常需要更高配置。
这里有个实操小技巧:提前配置好防护预案,把高防IP的切换步骤写成文档,甚至演练一遍,真被打的时候,手忙脚乱反而容易误操作。

个人或小站被打了怎么办?
如果你的网站流量突然异常升高,CPU和带宽告警,第一件事不是打开防火墙纠结,而是先联系IDC或云服务商,请求临时黑洞或流量牵引,把网关上可能开启的UDP端口全部临时关闭,尤其是那些不用的服务,等攻击停歇后再排查漏洞。
这里有个情况:很多小站其实是被“搭便车”攻击别人打的是大站,但你的IP因为和攻击目标同属一个网段被波及,这种情况下,等待运营商冲入黑洞即可,流量超过阈值会自动封禁一段时间。
行业共识认为,反射放大攻击不会彻底消失,防御必须坚持源头与流量双重治理,无论是企业还是个人,提前做好配置检查和备份,多一份准备就少一分损失。
归根结底,反射放大攻击是在借别人的手打你,把服务器配置管好,把流量清洗预案做好,大部分攻击都能在源头化解,理解了这些,下次再看到DDoS新闻,你至少知道对手是怎么出招的了。
关于DDoS反射放大攻击常见协议的三个疑问
问:DDoS反射放大攻击常见协议有哪些,怎么区分?
答:目前常见的就是DNS、NTP、SSDP、memcached以及CLDAP、SNMP,区分很简单:DNS和NTP多由运维没有做安全加固的老旧服务导致;SSDP和memcached则和物联网设备、误配置的缓存服务有关,攻击特征上,DNS反射流量通常带有53端口源地址,NTP是123端口,memcached则是11211端口,看抓包就能分辨。
问:反射放大攻击和普通DDoS有什么区别?
答:普通DDoS(比如SYN Flood)是攻击者直接向受害者的IP发送大量数据包;反射放大则是攻击者先向中间服务器发送伪造IP的请求,由中间服务器把响应“反射”给受害者,最大的区别是攻击流量的来源复杂且合法,源IP分散在大量正常运行的服务器上,很难通过封禁单个IP来防御。
问:如何确认自己是否正被反射放大攻击?
答:查看服务器网卡入方向流量,如果持续大于出口带宽,且来源IP是UDP端口53、123、1900、11211等,大概率就是反射放大攻击,你可以用tcpdump抓包确认,比如tcpdump -i eth0 udp port 53 -c 100,看到大量源端口53的响应包且源地址不重复,就基本坐实了。