阻斷服務攻擊

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

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

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

## 攻擊現象

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

- 網路異常緩慢（打開文件或訪問網站）
- 特定網站無法訪問
- 無法訪問任何網站
- 垃圾郵件的數量急劇增加

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

## 攻擊方式

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洪水攻擊）：向受害伺服器發送大量貌似合法的請求（通常為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防禦軟體的處理，將正常流量和惡意流量區分開，正常的流量則回注回客戶網站，反之則屏蔽。這樣一來可站點能夠保持正常的運作，僅僅處理真實使用者訪問網站帶來的合法流量。

## 歷史

Panix是世界上第三古老的網際網路服務供應商，被認為是首個 DoS 攻擊的目標。1996年9月6日，Panix 遭受了SYN 洪水攻擊，導致其服務中斷數日，而硬體供應商（尤其是思科）找到了適當的防禦措施。DoS攻擊的另一個早期例子是 Khan C. Smith 在1997年的DEF CON活動期間進行的，導致拉斯維加斯大道的網際網路訪問中斷一個多小時。活動期間發布的示例代碼引發了次年對斯普林特、地球連線、E-Trade等大公司的網路攻擊。迄今為止最大規模的DDoS攻擊發生在2017年9月，當時谷歌雲遭受了一次峰值量為2.54Tb/s 的攻擊（Google於2020年10月17日透露）。

2013年8月25日0時6分起，「.cn」頂級域名系統遭受大規模拒絕服務攻擊，經過應急處置，凌晨2時後逐步恢復正常。凌晨4時許，國家域名解析節點再次受到有史以來最大規模的拒絕服務攻擊，部分網站解析受到影響，導致訪問緩慢或中斷。

2023年2月，Cloudflare面臨每秒7100萬次請求的攻擊，Cloudflare聲稱這是當時最大的HTTP DDoS 攻擊。2023年7月10日，同人小說平台Archive of Our Own遭遇 DDoS 攻擊，服務中斷。AO3和專家們對一個匿名蘇丹組織表示懷疑，聲稱此次襲擊是出於宗教和政治原因。2023年8月，黑客組織NoName057執行緩慢的DoS攻擊，目標針對多家義大利金融機構。2024年1月14日，在澤倫斯基總統出席達沃斯世界經濟論壇的推動下，他們對瑞士聯邦網站發起了DDoS攻擊。瑞士國家網路安全中心迅速緩解了此次攻擊，確保聯邦核心服務保持安全，儘管某些網站暫時出現訪問問題。2023年10月，利用 HTTP/2協議中的新漏洞導致最大HTTP DDoS攻擊記錄被兩度打破，其中一次是Cloudflare觀察到的每秒2.01億次請求的攻擊，另一次則是由Google觀察到的每秒3.98億次請求的攻擊。