在前幾天,我們探討了中間人攻擊(MITM)與網路邊界失效問題。然而,對於許多商業系統而言,最直觀且損失慘重的資安事件,莫過於服務完全無法存取,最經典的例子就是阻斷服務攻擊(Denial of Service, DoS) 與分散式阻斷服務攻擊(Distributed Denial of Service, DDoS)
阻斷服務攻擊(Denial of Service, DoS) 與 分散式阻斷服務攻擊(Distributed Denial of Service, DDoS)的目標並非竊取資料,而是透過巨大的垃圾流量或資源消耗,將目標伺服器的 CPU、記憶體、頻寬或連線池塞爆,導致正常使用者無法使用服務。就像在高速公路上塞車,進退不得的樣子就可以很好理解概念了
由單一攻擊來源(單台電腦、單一 IP 或單一網路連線)向目標發動攻擊。
運作方式: 攻擊者利用自身的電腦資源,向伺服器發送大量請求或特殊的惡意封包,企圖耗盡伺服器的 CPU、記憶體或網路頻寬。
特性:
與DoS的差異在於它是由成千上萬個分散在各地的攻擊來源同時向目標發動攻擊。
運作方式: 攻擊者會先透過病毒、木馬控制網路上大量未受保護的設備(包括個人電腦、伺服器、網路攝影機或路由器等),將其組編成殭屍網路。當發動指令時,所有殭屍設備會同時對目標伺服器灌入海量流量。
特性:
反射型放大攻擊是一種常見且破壞力極強的DDoS手法。利用網路上未設防的公用伺服器(如 DNS、NTP)作為「槓桿」,將微小的攻擊流量放大數十至數萬倍,直接灌爆被害者的網路頻寬。
攻擊者利用UDP協定傳輸時不需要進行三向交握的特性挑選那些「發送極短文字,就能換回巨量資料」的服務協定。只需花費小量的傳輸頻寬,就能對被害者產生 50 Mbps 甚至 50,000 Mbps 的癱瘓型流量。
[ 系統設計 ]
1. Web 伺服器真實 IP (Origin IP) 直接暴露在公網 DNS 解析中。
2. 機房內部的 NTP 伺服器使用 UDP Port 並暴露於網際網路,且允許公網任意查詢。
3. 應用層的「產品搜尋 API」未做 Rate Limiting,且內部執行無 Index 的模糊 SQL 查詢。
[ 攻擊後果 ]
- 攻擊者直接對 Origin IP 發動 50 Gbps 的 UDP Flood,網路線路即刻卡死。
- 攻擊者以每秒 500 次呼叫搜尋 API,後端 CPU 達到 100%,資料庫連線池爆滿。
[ 系統設計 ]
1. 前端掛載 CDN / DDoS 清洗業者(如 Cloudflare, AWS Shield, Akamai),將真實 Origin IP 隱藏於防火牆/VPC 後。
2. 關閉所有不需要對外開放的 UDP 服務(如限制 Memcached 僅能 Listen localhost/127.0.0.1,關閉 NTP monlist 功能)。
3. 在 API Gateway 上套用 Rate Limiting(如每分鐘限 60 次)與 Captcha 機制。
[ 防禦效果 ]
- 數十 Gbps 的 L3/L4 攻擊在 Cloudflare 邊緣節點(Edge Network)即被吸收與清洗。
- L7 惡意刷 API 的流量在 Gateway 層級直接被拋棄。