Slowloris DDoS 攻擊

slowloris 攻擊試圖透過同時建立並保持與目標的多個 HTTP 連線使目標伺服器不堪重負。

學習目標

閱讀本文後,您將能夠:

  • 定義 Slowloris DoS 攻擊
  • 說明 Slowloris 攻擊的運作原理
  • 瞭解 Slowloris 攻擊的幾種緩解策略

相關內容


想要繼續瞭解嗎?

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

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

複製文章連結

什麼是 Slowloris DDoS 攻擊?

Slowloris 是一種阻斷服務攻擊程式,它讓攻擊者能在自己與目標之間同時開啟和維護多個 HTTP 連線,從而使目標伺服器不堪重負。

Slowloris 攻擊圖

Slowloris 攻擊如何運作?

Slowloris 是一種應用程式層攻擊,它利用部分 HTTP 請求進行操作。攻擊的運作方式是開啟與目標 Web 伺服器的連線,然後儘可能長時間地保持這些連線處於開啟狀態。

Slowloris 不是一種攻擊類別,而是一種特定的攻擊工具,旨在讓一台電腦在不佔用大量頻寬的情況下使伺服器關閉。與消耗頻寬的基於反射的 DDoS 攻擊(如 NTP 放大)不同,這種類型的攻擊使用少量頻寬,旨在利用看似比正常速度慢的、模擬正常流量的請求來消耗伺服器資源。它屬於「低速緩慢」攻擊類別。目標伺服器只有這麼多的執行緒可用於處理同時連線。每個伺服器執行緒都將嘗試在等待慢速請求完成時保持運作,而此慢速請求永遠不會完成。當超過伺服器的最大可能連線數時,將不應答其他連線,並發生阻斷服務。

Slowloris 攻擊分為 4 個步驟:

  1. 攻擊者首先透過傳送多個部分 HTTP 請求標頭來開啟與目標伺服器的多個連線。
  2. 目標為每個傳入請求開啟一個執行緒,並計劃在連線完成後關閉該執行緒。為了提高效率,如果連線時間過長,伺服器將使超長連線逾時,從而釋放執行緒以供下一個請求使用。
  3. 為了防止目標使連線逾時,攻擊者會定期向目標傳送部分請求標頭,以使請求保持運作狀態。實質上是說:「我還在這裡!我只是有點慢,請等等我。」
  4. 目標伺服器在等待請求終止的過程中永遠無法釋放任何已開啟的部分連線。使用所有可用執行緒后,伺服器將無法回應來自常規流量的其他請求,從而導致阻斷服務。

Slowloris 背後的關鍵是它能夠以很少的頻寬消耗造成很多麻煩。

如何緩解 Slowloris 攻擊?

對於易受 Slowloris 攻擊的 Web 伺服器,有一些方法可以緩解部分影響。易受攻擊的伺服器可以採取的緩解選項可分為 3 個一般類別:

  1. 提高伺服器可用性:增加伺服器在任何時候允許的最大用戶端數,這將增加攻擊者在使伺服器過載之前必須建立的連線數。實際上,不論企業增加多少容量,攻擊者都可以透過擴展攻擊次數來發起攻擊。
  2. 對傳入請求進行速率限制:根據某些使用因素限制存取將有助於緩解 Slowloris 攻擊。限制允許單個 IP 位址建立的最大連線數、限制緩慢傳輸速度以及限制允許用戶端保持連接的最長時間等技術,都能夠限制低速緩慢攻擊的有效性。
  3. 基於雲端的保護:使用可充當反向代理的服務,保護原始伺服器。

Cloudflare 如何緩解 Slowloris 攻擊?

Cloudflare 在開始向原始伺服器傳送任何內容之前緩衝傳入請求。因此,像 Slowloris 攻擊這樣的「低速緩慢」攻擊流量永遠不會到達預定目標。詳細瞭解 Cloudflare 的 DDoS 防護如何阻止 slowloris 攻擊。