如果你認為 HTTP2.0 協議比標準HTTP(超文本傳輸協議)更安全,那你就錯了。有研究人員花費4個月的時間在 HTTP2.0 協議中發現4個漏洞!
去年2月,Google 把自家的 SPDY 項目捆綁進 HTTP2.0,意在加強網頁加載速度和用戶的在線瀏覽體驗。三個月後 HTTP2.0 正式發佈,HTTP2.0 如今已成為大部分網站最主要的 HTTP 協議版本。
來自 Imperva(一家全球領先的新型數據應用安全的技術領導者和知名公司)的幾位安全專家在 Black Hat 大會上公佈了至少 4個高風險漏洞的詳細說明。漏洞允許攻擊者通過傳輸千兆級別的數據有效載荷到目標伺服器,導致伺服器無限循環,使Web伺服器的處理速度變慢,甚至癱瘓。
HTTP2.0 協議可以分為以下三層
- 傳輸層(包括數據流、幀及流控制)
- HPACK二進制編碼和壓縮協議
- 語義層——HTTP 1.1傳送功能的擴充版本。
研究人員分別在Apache,微軟,NGINX,Jetty和nghttp2上深入分析使用Http2協議的伺服器的表現。他們發現:在所有使用HTTP2的伺服器都存在可以利用的漏洞,其中兩個漏洞是HTTP1.1版本中常客。
HTTP/2 四個主要漏洞
1、 慢速連接攻擊 (CVE-2016-1546)
這種攻擊方式類似於 Slowloris DDoS 攻擊,Slowloris 是在 2009年由著名 Web安全專家 RSnake 提出的一種攻擊方法,其原理是以極低的速度向伺服器發送 HTTP請求。由於Web Server對於並發的連接數都有一定的上限,因此若是惡意地占用住這些連接不釋放,那麼Web Server的所有連接都將被惡意連接占用,從而無法接受新的請求,導致拒絕服務。
慢速連接攻擊在HTTP1.1版本被人們所熟知,其特點到了HTTP2依然沒有改變。客戶端的瀏覽速度會變得很慢。
2.HPACK BOMB (CVE-2016-1544, CVE-2016-2525)
HPACK Bomb 是一種壓縮層攻擊,類似於壓縮炸彈攻擊和“解壓縮炸彈”。
HPACK主要被用來減小數據包頭部的長度。減小數據包頭部長度後,發送者會告知接收方,這個數據包的頭部需要解壓。一個專業的黑客能利用這個漏洞可以將一個數Gb大小的數據包壓縮成一條很短的消息,發送到目標伺服器導致該伺服器疲於處理,甚至癱瘓。
Imperva的研究人員解釋說:
我們把一個數據包頭部壓縮成4KB,然後發送向服務端伺服器14個同樣的數據流,連接完成後,顯示服務端接收到了896MB的數據,最終導致該伺服器崩潰。
3.依賴循環攻擊 (CVE-2015-8659)
這種攻擊利用了HTTP/ 2使用網絡流量優化的控制機制。
惡意客戶端可以制造特殊的請求,向伺服器尋求依賴循環服務,從而迫使伺服器進入一個無限循環。該漏洞允許攻擊者構成拒絕服務(DoS)攻擊,甚至在存在漏洞的系統上運行任意代碼。
4.數據流多工(CVE-2016-0150)
這種攻擊允許攻擊者利用伺服器多工的功能,從而導致伺服器崩潰實現流量反復功能。這種攻擊最終導致伺服器拒絕服務(DoS)的效果。
以上四個 HTTP2.0 漏洞都已被修復。
Imperva的首席技術官Amichai Shulman說
對於大多數互聯網用戶來說,HTTP2.0 的出現提高了網站性能、增強了移動端應用的可能性,但是短期內大量出現的新代碼也給伺機而動的攻擊者帶來了一些絕佳的機會。
雖說 HTTP2.0 協議繼承了 HTTP1.x 版本的缺陷,這很正常。但是,企業或是廠商是否有進行盡職的調查和實施保障措施是解決問題的關鍵,畢竟關系到企業能否在飛速發展的網絡威脅中延長防禦體系,保護重要的客戶數據。
可以看出這些漏洞都是利用了HTTP2.0頻寬使用少、加載時間短的特點來實現攻擊。Imperva的研究員給出一個建議,企業或用戶通過建立Web應用防火牆(WAF)和打虛擬更新,就可以在引入HTTP2.0的同時,保護他們的關鍵數據和應用。
資料來源:http://www.oschina.net/news/75917/http-2-0-4-higrisk-vulnerabilities