什麼是 ACK 洪水 DDoS 攻擊?| DDoS 攻擊類型

在 ACK 洪水攻擊中,攻擊者試圖利用偽造的 ACK 封包使目標不堪重負,這些封包應被用來確認裝置已成功接收到傳輸的資料。

學習目標

閱讀本文後,您將能夠:

  • 瞭解 ACK 的含義
  • 瞭解 ACK 洪水攻擊如何運作
  • 瞭解如何阻止 ACK 洪水攻擊

相關內容


想要繼續瞭解嗎?

訂閱 TheNET,這是 Cloudflare 每月對網際網路上最流行見解的總結!

請參閱 Cloudflare 的隱私權政策,了解我們如何收集和處理您的個人資料。

複製文章連結

什麼是 ACK 洪水 DDoS 攻擊?

ACK 洪水攻擊是指攻擊者嘗試使用 TCP ACK 封包使伺服器過載。與其他 DDoS 攻擊一樣,ACK 洪水的目的是透過使用垃圾資料來減慢攻擊目標的速度或使其崩潰,從而導致拒絕向其他使用者提供服務。目標伺服器必須處理收到的每個 ACK 封包,此過程使用了過多的運算能力,導致其無法為合法使用者提供服務。

想像一下,一個惡作劇呼叫者用虛假訊息填滿某人的語音信箱,使真實呼叫者的語音留言無法進入。現在假設,這些虛假訊息全部說的是:「嗨,我打電話來是跟你說我已收到你的訊息。」這有點像在 ACK 洪水 DDoS 攻擊中發生的情況。

什麽是封包?

透過網際網路傳送的所有資料都會分解成較小的區段,稱為封包。想像一下,某人想在 Twitter 上發表一個深入的觀點或講一個長篇故事,不得不將其文字分割成 280 個字元的片段,並以一系列推文的形式發布,而不是一次性發布全部。對於那些不使用 Twitter 的人,可以想一下沒有專用文字訊息應用程式的手機如何將長 SMS 文字訊息分成幾個較小的部分。

傳輸控制通訊協定 (TCP) 是網際網路通訊的重要組成部分。使用 TCP 通訊協定傳送的封包會在封包標頭中附加資訊。TCP 通訊協定使用封包標頭來告訴收件人有多少個封包以及它們應該以什麼順序到達。標頭還可以表明封包的長度、封包的類型等等。

這有點像為檔案資料夾命名,以便人們知道其中的內容。回到 Twitter 的範例,發布大量推文的人通常會指明該系列中有多少條推文,以及每條推文的編號以幫助讀者閱讀它們。

什麼是 ACK 封包?

ACK 是「acknowledgement(確認)」的縮寫。ACK 封包是確認接收到一條訊息或一系列封包的任何 TCP 封包。ACK 封包的技術定義是標頭中設定了「ACK」標誌的 TCP 封包。

TCP 交握

ACK 封包是 TCP 交握的一部分,後者是三個連續的步驟,用於在網際網路上任何兩個連接的裝置之間啟動對話(就像現實生活中人們在開始交談之前握手問候一樣)。TCP 交握的三個步驟是:

  1. SYN
  2. SYN ACK
  3. ACK

開啟連線的裝置(比如使用者的筆記型電腦)透過傳送 SYN(「synchronize(同步)」的縮寫)封包啟動三向交握。連線另一端的裝置(假設是代管線上購物網站的伺服器)以 SYN ACK 封包進行回覆。最後,使用者的筆記型電腦傳送一個 ACK 封包,三向交握完成。此程序可確保兩個裝置都在線上,並準備好接收額外封包,在此範例中為讓使用者載入網站。

但是,這不是唯一使用 ACK 資料包的時間。TCP 通訊協定要求連接的裝置確認已按順序接收到所有封包。假設使用者造訪託管影像的網頁。該影像被分解成資料封包,並傳送到使用者的瀏覽器。在整個影像到達後,使用者的裝置將 ACK 封包傳送到主機伺服器,以確認所有像素齊全。如果沒有這個 ACK 封包,主機伺服器必須再次傳送影像。

由於 ACK 封包是標頭中設定了 ACK 標誌的任何 TCP 封包,因此 ACK 可以屬於筆記型電腦傳送給伺服器的不同訊息。如果使用者填寫表單並將資料提交到伺服器,則筆記型電腦可以使其中一個封包成為影像的 ACK 封包。它不需要是單獨的封包。

ACK 洪水攻擊如何運作?

ACK 洪水攻擊的目標是需要處理它們收到的每個封包的裝置。防火牆和伺服器最有可能成為 ACK 洪水攻擊的目標。負載平衡器、路由器和交換器不容易受到這些攻擊。

合法和非法 ACK 封包看起來基本相同,因此,如果不使用內容傳遞網路 (CDN) 篩選掉不必要的 ACK 封包,就很難阻止 ACK 洪水攻擊。儘管看起來很相似,但用於 ACK DDoS 攻擊的封包並不包含資料封包的主要部分,也稱為裝載。為了顯得合法,它們僅需在 TCP 標頭中包含 ACK 標誌。

ACK 洪水是第 4 層(傳輸層)DDoS 攻擊。瞭解第 4 層和 OSI 模型

SYN ACK 洪水攻擊如何運作?

SYN ACK 洪水 DDoS 攻擊與 ACK 攻擊略有不同,但二者的基本理念仍然是相同的:用過多的封包壓垮目標。

請記住 TCP 三向交握的運作方式:交握的第二個步驟是 SYN ACK 封包。伺服器通常會傳送此 SYN ACK 封包,以回應來自用戶端裝置的 SYN 封包。在 SYN ACK DDoS 攻擊中,攻擊者使用 SYN ACK 封包淹沒目標。這些封包根本不是三向交握的一部分;它們唯一的目的是破壞目標的正常作業。

攻擊者也可能在 SYN 洪水 DDoS 攻擊中使用 SYN 封包。

Cloudflare 如何阻止 ACK 洪水 DDoS 攻擊?

Cloudflare CDN 代理所有往返於 Cloudflare 客戶的原始伺服器的流量。CDN 不會傳遞與開放 TCP 連線無關的任何 ACK 封包。這樣可以確保惡意 ACK 流量不會到達原始伺服器。由資料中心組成的 Cloudflare 網路的規模足夠大,足以承受幾乎任何規模的 DDoS 攻擊,因此 ACK 洪水對Cloudflare 幾乎沒有影響。

Cloudflare Magic TransitCloudflare Spectrum 也可以阻止此類 DDoS 攻擊。Magic Transit 代理第 3 層流量,Spectrum 則代理第 4 層流量,而不是 CDN 之類的第 7 層流量。兩款產品均透過自動偵測攻擊模式並封鎖攻擊流量來封鎖 ACK 洪水。

瞭解其他類型的 DDoS 攻擊