從 2023 年 8 月 25 日開始,我們開始注意到一些異常的 HTTP 攻擊行為,並攻擊了很多我們的用戶。 但這些攻擊行為都被我們的自動化 DDoS 系統發現並阻擋了下來。 然而,沒過多久,它們的規模就突破了既有的DDoS紀錄,達到每秒為 201 million 請求的峰值, 這相當於我們之前有記錄以來最大攻擊規模的三倍。

而更加深入後發現,攻擊者能夠利用僅由 20,000 台機器組成的Botnet發起此類攻擊, 而如今的Botnet規模可達數十萬或數百萬台機器。整個web網路通常每秒處理 10-30 億個請求,因此使用此方法可以將整個web網路的請求數量等級集中在少數目標上,而其實是可以達成的。

這是一種規模空前的新型攻擊手段,這種攻擊是通過濫用 HTTP/2 協議的某些功能和服務器實現的(有關詳細信息,請參閱 CVE-2023-44487) 。 由於該攻擊利用了 HTTP/2 協議中的潛在弱點,因此我們相信任何使用了 HTTP/2 的供應商都將受到攻擊。我們建議,最好的防禦措施是在任何 Web 或 API 服務器前面使用 Cloudflare DDoS 緩解服務。

Rapid Reset 導致DDoS攻擊產生

HTTP/2 request cancellation 可被濫用來reset無限數量的Streams。當 HTTP/2 服務器能夠快速地處理客戶端發送的 RST_STREAM frames並解除狀態時,這種rapid resets不會導致問題。 但是出現任何延遲或滯後時,問題就會開始出現。 客戶端可能會處理大量請求,導致工作積累積到一個上限,從而導致服務器附載過重。常見的 HTTP 部署架構是在其他組件之前運行 HTTP/2 Proxy或負載平衡器。當客戶端請求到達時,它會被快速分流, 然而這種架構更有可能遇到rapid resets帶來的問題。 


 
舉例:當Reverse Proxy處理送入的 HTTP/2 客戶端流量時,它們會將數據從connection’s socket按照順序接的複製到緩衝區中,並依序處理緩衝的數據。 當讀取每個請求(HEADERS and DATA frames)時,它被分派到upstream service。當讀取 RST_STREAM frames時,請求的本地狀態將被解除,並通知upstream service請求已被取消,持續的重復,直到消耗整個緩衝區。 然而這樣的邏輯就有可能會被濫用:當惡意客戶端開始發送大量請求並在connection開始時重置時,服務器會快速地讀取所有請求,並對upstream service造成壓力,導致無法處理任何新的連線請求。

此次事件對於使用Cloudflare的客戶影響

如上所述,當請求被取消時,upstream service會收到通知,並可以在浪費太多資源之前中止請求。 大多數惡意請求從未轉發到源服務器,然而這些攻擊的規模確實造成了一些影響。


  
首先,隨著收到請求的速率達到前所未有的峰值,我們收到了客戶發現的 502 錯誤數量增加的報告。 這種情況發生在我們受影響最嚴重的數據中心,因為個數據中心正在努力處理所有請求。攻擊者利用單一筆connection發送大量的的request,且每一筆都必須轉發到"business logic" proxy。隨著請求流量變得高於我們的proxy capacity,連接這兩個服務的管道在我們的一些服務器中達到了飽和狀態。發生這種情況時,TLS proxy無法再連接到其upstream service,這就是為什麼某些客戶端在最嚴重的攻擊期間看到「502 Bad Gateway」錯誤的原因。 由於我們即時的觀察及快速的緩解措施大大減少了這些攻擊的規模,今天這個數字實際上為零。

Cloudflare措施和建議

2019 年,我們發現了多個與 HTTP/2 實現相關的 DoS 漏洞。 Cloudflare 開發並部署了一系列檢測和緩解措施作為響應。 CVE-2023-44487是HTTP/2漏洞的另一種表現形式。除了直接修復之外,我們還對服務器的 HTTP/2 frames處理和請求分派代碼進行了多項改進。 Cloudflare 已經擁有適當的系統,可以通過更有效的方法緩解非常大的攻擊。 其中之一被命名為「IP Jail」。 對於超容量攻擊,該系統會收集參與攻擊的客戶端 IP,並阻止它們連接到受攻擊的標的物(無論是在 IP layer還是在我們的 TLS proxy中)。 然而該系統需要幾秒鐘才能完全生效; 由於這種新的僵屍網絡實際上沒有啓動期,因此我們需要能夠在攻擊成為問題之前將其消滅。為了實現這一目標,我們擴展了 IP Jail 系統來保護我們的整個基礎設施:一旦 IP 被「jailed」,不僅會阻止它連接到受攻擊的標的物,我們還會禁止相應的 IP 使用 HTTP/2 訪問任何其他域 在 Cloudflare 上使用了一段時間。由於所有這些操作都發生在 HTTPS 開始處的 TLS proxy中,因此與一般的 L7 緩解系統相比,這可以節省大量資源。 這使我們能夠更順利地抵御這些攻擊。

結論

雖然這是最新的破紀錄攻擊,但我們知道這不會是最後一次。 隨著攻擊變得越來越複雜,Cloudflare 不斷努力主動識別新威脅 - 為我們的全球網絡部署對策,以便我們數百萬的客戶立即得到自動保護。自 2017 年以來,Cloudflare 一直為我們的所有客戶提供免費、不計量且無限制的 DDoS 保護。此外,我們還提供一系列附加安全功能,以滿足各種規模組織的需求。如果您不確定自己是否受到保護或想瞭解如何受到保護,請聯繫我們。

熱門新聞

Advertisement