新發現的 HTTP/2 漏洞使伺服器面臨 DoS 攻擊風險單一 TCP 連線即可實現
HTTP/2於2015年推出,為HTTP協定帶來了高效的增強功能,包括速度的資料傳輸、請求處理、回應,以及對基於網站的資訊交易進行標頭壓縮。但除了這些效率之外, HTTP /2 也為管理員和安全團隊帶來了一系列獨特的挑戰。本週早些時候,研究人員宣布了一個新發現的與HTTP/2 相關的漏洞,該漏洞可用於針對易受攻擊的漏洞實施目標拒絕服務(DoS)攻擊。
在thehackernews的報告中,安全研究員Bartek Nowotarski於1月25日向卡內基美隆大學電腦緊急小組(CERT)協調中心報告了這個問題。
該漏洞被稱為“HTTP/2 CONTINUATION Flood”,它利用了不當的 HTTP/2 實現,這些實現未能限製或淨化請求資料流中的 CONTINUATION 幀。
CONTINUATION訊框是一種用於前標頭區塊分割序列的方法,允許標頭區塊在多個訊框中分割。當伺服器收到特定的END_HEADERS標誌,表示沒有其他CONTINUATION或其他訊框時,前面分割的標頭區塊就被視為已完成。
如果 HTTP/2 實作不限制單一資料流中可傳送的 CONTINUATION 幀的數量,就很容易受到攻擊。如果攻擊者開始向未設定 END_HEADERS 標誌的易受攻擊伺服器發送 HTTP 請求,則該請求將允許攻擊者向伺服器持續發送連續幀流,最終導致伺服器記憶體不足而崩潰,並導致成功的拒絕服務(DoS)攻擊。
CERT 也指出了該漏洞的另一種變種,即使用 HPACK Huffman 編碼的 CONTINUATION 幀導致 CPU 資源消耗,同樣導致 DoS 攻擊成功。
Nowotarski指出,這意味著單一機器甚至單TCP連線都有可能破壞伺服器的可用性,造成從服務崩潰到效能下降等各種後果。
多個拒絕服務(DDoS)攻擊會創建大規模殭屍網絡,透過純粹的流量來壓垮網絡,而DoS攻擊則不同,它可以透過向傳輸控制協定(TCP)發送大量請求來老年人目標伺服器的資源,從而利用單一設備製造扭曲網路流量。
與該新漏洞有關的幾個常見漏洞和漏洞 (CVE) 已經記錄建立。這些記錄包括:
- CVE-2024-2653 – amphp/http
- CVE-2024-27316 – Apache HTTP Server:由於無限連續幀上的記憶體耗盡而導致 HTTP/2 DoS
- CVE-2024-24549 – Apache Tomcat:HTTP/2 標頭處理 DoS
- CVE-2024-31309 – Apache Traffic Server 中的資源耗盡
- CVE-2024-27919 – HTTP/2:由於 CONTINUATION 幀氾濫導致記憶體耗盡
- CVE-2024-30255 ) – HTTP/2:由於 CONTINUATION 幀氾濫而導致 CPU 耗盡
- CVE-2023-45288 – net/http 中的 HTTP/2 CONTINUATION 洪水
- CVE-2024-28182 – 讀取無限數量的 HTTP/2 CONTINUATION 幀導致 CPU 使用率過高
- CVE-2024-27983 – node::http2::Http2Session::~Http2Session() 導致 HTTP/2 伺服器崩潰
- CVE-2024-2758 – 預設未啟用 Tempesta FW 速率限制
建議將使用者的軟體升級到最新版本,以考慮潛在的威脅。在沒有修復程式的情況下,建議暫時取消伺服器上的 HTTP/2。
根據 w3techs.com 的一項調查,目前 35.5% 的網站使用 HTTP/2。