分布式拒绝服务

**阻斷服務攻擊**（英語：denial-of-service attack，簡稱 **DoS 攻擊**），是一種網路攻擊手法，其目的在於使目標電腦的網路或系統資源耗盡，使服務暫時中斷或停止，導致其正常使用者無法存取。

當駭客使用網路上兩個或以上被攻陷的電腦作為「殭屍」向特定的目標發動「阻斷服務」式攻擊時，稱為**分散式阻斷服務攻擊**（distributed denial-of-service attack，簡稱 **DDoS 攻擊**）亦稱**洪水攻擊**。據 2014 年統計，被確認為大規模 DDoS 的攻擊已達平均每小時 28 次。DDoS 發起者一般針對重要服務和知名網站進行攻擊，如銀行、信用卡支付閘道器、甚至根域名伺服器等。

DoS 也常見於部分網路遊戲，被心懷不滿的玩家或是競爭對手廣泛使用。DoS 也常被用於抗議，自由軟體基金會創辦人理察・斯托曼曾表示，DoS 是「網路街頭抗議」的一種形式。

## 攻擊現象

美國國土安全部旗下的美國電腦緊急應變小組（US-CERT）定義的阻斷服務攻擊症狀包括：

1. 網路異常緩慢（打開檔案或存取網站）
2. 特定網站無法存取
3. 無法存取任何網站
4. 垃圾郵件的數量急劇增加
5. 無線或有線網路連接異常斷開
6. 長時間嘗試存取網站或任何網際網路服務時被拒絕
7. 伺服器容易斷線、卡頓、存取延遲

阻斷服務的攻擊也可能會導致目標電腦同一網路中的其他電腦被攻擊，網際網路和區域網路之間的頻寬會被攻擊導致大量消耗，不但影響目標電腦，同時也影響區域網路中的其他電腦。如果攻擊的規模較大，整個地區的網路連接都可能會受到影響。

迄今最大規模的 DDoS 攻擊發生於 2017 年 9 月。該攻擊的目標是 Google 服務，規模達到 2.54 Tbps。Google Cloud 於 2020 年 10 月披露了這次攻擊。

## 攻擊方式

DoS 攻擊可以具體分成三種形式：頻寬消耗型、資源消耗型、漏洞觸發型。前兩者都是透過大量合法或偽造的請求占用大量網路以及器材資源，以達到癱瘓網路以及系統的目的。而漏洞觸發型，則是觸發漏洞導致系統崩潰癱瘓服務。

### 頻寬消耗型攻擊

DDoS 頻寬消耗攻擊可以分為兩個不同的層次；洪泛攻擊或放大攻擊。洪泛攻擊的特點是利用殭屍程式傳送大量流量至受損的受害者系統，目的在於堵塞其寬頻。放大攻擊與其類似，是通過惡意放大流量限制受害者系統的寬頻；其特點是利用殭屍程式通過偽造的源 IP（即攻擊目標 IP）向某些存在漏洞的伺服器傳送請求，伺服器在處理請求後向偽造的源 IP 傳送應答，由於這些服務的特殊性導致應答包比請求包更長，因此使用少量的寬頻就能使伺服器傳送大量的應答到目標主機上。

**UDP 洪水攻擊（User Datagram Protocol floods）**
: UDP（使用者資料報協定）是一種無連接協定，當封包通過 UDP 傳送時，所有的封包在傳送和接收時不需要進行握手驗證。當大量 UDP 封包傳送給受害系統時，可能會導致頻寬飽和從而使得合法服務無法請求存取受害系統。遭受 DDoS UDP 洪泛攻擊時，UDP 封包的目的埠可能是隨機或指定的埠，受害系統將嘗試處理接收到的封包以確定本地執行的服務。如果沒有應用程式在目標埠執行，受害系統將對源 IP 發出 ICMP 封包，表明「目標埠不可達」。某些情況下，攻擊者會偽造源 IP 位址以隱藏自己，這樣從受害系統返回的封包不會直接回到殭屍主機，而是被傳送到被偽造位址的主機。有時 UDP 洪泛攻擊也可能影響受害系統周圍的網路連接，這可能導致受害系統附近的正常系統遇到問題。然而，這取決於網路體系結構和線速。

**ICMP 洪水攻擊（ICMP floods）**
: ICMP（網際網路控制訊息協定）洪水攻擊是通過向未良好設定的路由器傳送廣播資訊占用系統資源的做法。

### 資源消耗型攻擊

**協定分析攻擊（SYN flood，SYN 洪水）**
: 傳送控制協定（TCP）同步（SYN）攻擊。TCP 行程通常包括傳送者和接受者之間在封包傳送之前建立的完全訊號交換。啟動系統傳送一個 SYN 請求，接收系統返回一個帶有自己 SYN 請求的 ACK（確認）作為交換。傳送系統接著傳回自己的 ACK 來授權兩個系統間的通訊。若接收系統傳送了 SYN 封包，但沒接收到 ACK，接受者經過一段時間後會再次傳送新的 SYN 封包。接受系統中的處理器和記憶體資源將儲存該 TCP SYN 的請求直至逾時。DDoS TCP SYN 攻擊也被稱為「資源耗盡攻擊」，它利用 TCP 功能將殭屍程式偽裝的 TCP SYN 請求傳送給受害伺服器，從而飽和服務處理器資源並阻止其有效地處理合法請求。它專門利用傳送系統和接收系統間的三向訊號交換來傳送大量欺騙性的原 IP 位址 TCP SYN 封包給受害系統。最終，大量 TCP SYN 攻擊請求反覆傳送，導致受害系統記憶體和處理器資源耗盡，致使其無法處理任何合法使用者的請求。

**LAND 攻擊**
: 這種攻擊方式與 SYN floods 類似，不過在 LAND 攻擊包中的原位址和目標位址都是攻擊物件的 IP。這種攻擊會導致被攻擊的機器無窮迴圈，最終耗盡資源而當機。

**CC 攻擊（Distributed HTTP flood，分散式 HTTP 洪水攻擊）**
: CC 攻擊使用代理伺服器向受害伺服器傳送大量貌似合法的請求（通常為 HTTP GET)。攻擊者創造性地使用代理，利用廣泛可用的免費代理伺服器發動 DDoS 攻擊。許多免費代理伺服器支援匿名，這使追蹤變得非常困難。

　
: 2004 年，一位匿名為 KiKi 的中國駭客開發了一種用於發送 HTTP 請求的 DDoS 攻擊工具以攻擊名為「Collapsar」的 NSFOCUS 防火牆，因此該駭客工具被稱為「Challenge Collapsar」（挑戰黑洞，簡稱 CC），這類攻擊被稱作「CC 攻擊」。

**殭屍網路攻擊**
: 殭屍網路是指大量被命令與控制（C&C）伺服器所控制的網際網路主機群。攻擊者傳播惡意軟體並組成自己的殭屍網路。殭屍網路難於檢測的原因是，殭屍主機只有在執行特定指令時才會與伺服器進行通訊，使得它們隱蔽且不易察覺。殭屍網路根據網路通訊協定的不同分為 IRC、HTTP 或 P2P 類等。

**應用程式級洪水攻擊（Application level floods）**
: 與前面敘說的攻擊方式不同，應用程式級洪水攻擊主要是針對應用軟體層的，也就是高於 OSI 的。它同樣是以大量消耗系統資源為目的，通過向 IIS 這樣的網路服務程式提出無節制的資源申請來破壞正常的網路服務。

### 漏洞觸發型

這類攻擊手法，透過嘗試觸發緩衝區溢位等漏洞，使作業系統發生核心錯誤或藍白當機，達到阻斷服務攻擊。

**死亡之 Ping（ping of death）**
: 死亡之 Ping 是產生超過 IP 協定能容忍的封包數，若系統沒有檢查機制，就會宕機。

**淚滴攻擊**
: 每個資料要傳送前，該封包都會經過切割，每個小切割都會記錄位移的資訊，以便重組，但此攻擊模式就是捏造位移資訊，造成重組時發生問題，造成錯誤。

## 防禦方式

阻斷服務攻擊的防禦方式通常為入侵檢測，流量過濾和多重驗證，旨在堵塞網路頻寬的流量將被過濾，而正常的流量可正常通過。

### 防火牆

防火牆可以設定規則，例如允許或拒絕特定通訊協定，埠或 IP 位址。當攻擊從少數不正常的 IP 位址發出時，可以簡單的使用拒絕規則阻止一切從攻擊源 IP 發出的通信。

複雜攻擊難以用簡單規則來阻止，例如 80 埠（網頁服務）遭受攻擊時不可能拒絕埠所有的通信，因為其同時會阻止合法流量。此外，防火牆可能處於網路架構中過後的位置，路由器可能在惡意流量達到防火牆前即被攻擊影響。然而，防火牆能有效地防止使用者從啟動防火牆後的電腦發起攻擊。

### 交換機

大多數交換機有一定的速度限制和存取控制能力。有些交換機提供自動速度限制、流量整形、後期連接、深度包檢測和假 IP 過濾功能，可以檢測並過濾阻斷服務攻擊。例如 SYN 洪水攻擊可以通過後期連接加以預防。基於內容的攻擊可以利用深度包檢測阻止。

### 路由器

和交換機類似，路由器也有一定的速度限制和存取控制能力，而大多數路由器很容易受到攻擊影響。

### 黑洞引導

黑洞引導指將所有受攻擊電腦的通信全部傳送至一個「黑洞」（空介面或不存在的電腦位址）或者有足夠能力處理洪流的網路裝置商，以避免網路受到較大影響。

### 流量清洗

當取得到流量時，通過 DDoS 防禦軟體的處理，將正常流量和惡意流量區分開，正常的流量則回注回客戶網站，反之則封鎖。這樣一來可站點能夠保持正常的運作，僅僅處理真實使用者存取網站帶來的合法流量。

## 參見

* 入侵預防系統
* DDoS 緩解
* LOIC
* 大炮 (網路攻擊工具)

## 參考來源