2018 年 2 月,GitHub 遭受了一場峰值 1.35 Tbps 的 DDoS 攻擊——不是靠成千上萬台殭屍主機,而是靠不到 2 千台暴露的 Memcached 伺服器。攻擊者發送極小的請求,卻換來高達 5.1 萬倍的回應放大。這就是反射放大攻擊(Reflection/Amplification):它把「攻擊者手裡的帶寬」與「受害者承受的帶寬」徹底脫鉤。本文帶你拆解這場持續十年的軍備競賽。
一、放大係數:攻擊的「槓桿率」
放大係數(Amplification Factor, AF)的定義極其簡單:AF = 回應封包大小 / 請求封包大小。攻擊的核心前提是源地址偽造(IP Spoofing)——攻擊者把請求的源 IP 偽造成受害者,於是伺服器的「大回應」全部砸向受害者,而攻擊者只需付出極小的請求帶寬。
| 向量 | 埠 | 典型放大係數 | 現狀 |
|---|---|---|---|
| Memcached | UDP/11211 | ~5,000–51,000× | 已大量收斂,仍需警惕 |
NTP monlist | UDP/123 | ~556× | 絕大多數已關閉 monlist |
| CLDAP | UDP/389 | ~56–70× | 2017–2019 主流 |
| WS-DD(WSDD) | UDP/3702 | ~15–50× | 2021 起暴增,微軟警示 |
| SSDP(UPnP) | UDP/1900 | ~30× | 家用路由器普遍 |
| DNS(ANY) | UDP/53 | ~28–54× | 開放解析器長期威脅 |
| SNMP | UDP/161 | ~6.5× | v3 已緩解 |
這張表揭示了一個殘酷事實:只要網際網路上還有一個開放的 UDP 服務可被偽造源地址查詢,它就能成為攻擊者的「免費放大器」。
二、為什麼是 UDP?無連接才是原罪
反射放大本質上依賴 UDP 的無連接特性:UDP 不握手、不校驗源地址真偽,一個偽造源 IP 的請求就能騙到回應。US-CERT 早在 TA14-017A 中就列出了 14 種基於 UDP 的放大向量。TCP 因為三次握手(SYN 必須得到真實源的 ACK)天然抗偽造,所以反射放大幾乎只發生在 UDP 服務上。
關鍵洞察:放大攻擊的「槓桿」不是算力,而是開放服務的存量。攻擊者不養殭屍,只「租借」全網錯誤配置的主機——這讓攻擊成本降至近乎零。
三、向量的遷移史:打地鼠遊戲
防禦方每堵死一個向量,攻擊者就轉向下一個:
- 2013–2014:NTP
monlist(~556×)橫行,單次即可打出數百 Gbps;隨後 NTP 社群預設關閉 monlist。 - 2017–2018:CLDAP(~70×)與 Memcached(~5 萬×)接棒,後者催生 1.35 Tbps 紀錄。
- 2021 起:WS-DD(UDP/3702,用於設備發現)暴增——微軟報告其觀測到的 WS-DD 放大攻擊在一年內增長 3,300%,因為海量 IoT/打印机/攝像頭預設開啟該服務。
- 2024–2025:Cloudflare 年度報告顯示,純反射/放大仍佔 L3/4 攻擊主體,但單向量峰值已讓位於多向量混合(反射 + 直接洪流 + L7)與 Mirai 變種驅動的 Tbps 級直接攻擊。
四、根源解 vs 症狀解:BCP 38 的失落
理論上,反射放大的終極解藥是 BCP 38 / RFC 2827(入口過濾):每個網路運營商在邊緣丟棄「源地址不屬於本網段」的封包,讓源地址偽造在網際網路上根本無法成立。但三十年過去,BCP 38 的部署率仍遠未普及——因為它要求所有運營商協同,且對單邊部署者無直接收益。
這就是「公地悲劇」:每個運營商都盼別人過濾,自己不過濾也能免費搭車。結果是,2025 年的我們依然在和 2014 年的同一個漏洞作戰。
五、防禦方的雙線作戰
在 BCP 38 全面落地之前,防禦方必須兩手抓:
- 身為潛在放大器(服務加固):關閉 NTP
monlist、限制 DNS 解析器為遞歸僅本地、在邊緣 ACL 丟棄 UDP/3702 入站、為 Memcached 綁定 localhost。別讓你的伺服器成為攻擊者的幫兇。 - 身為潛在受害者(吸收與清洗):依賴具備 Tbps 級吸收能力的全球分散清洗網路;對 UDP 反射流量做基於行為的限速而非簡單封 IP(偽造源讓封 IP 無效);啟用 Anycast 就近稀釋。
- 主動情報:訂閱 Shadowserver、掃描自身暴露的 UDP 服務並修復,避免登上「可放大資產」清單。
結語
反射放大攻擊是一面鏡子,照出網際網路基礎設施的「責任分散」困境。只要開放 UDP 服務與源地址偽造仍然存在,這場軍備競賽就不會結束。對防禦方而言,真正的壁壘不是某條 ACL,而是一個能在本質上吸收 Tbps 級洪峰、並在秒級識別異常 UDP 行為的架構——畢竟你無法指望全網明天就都部署 BCP 38。