采用HTTP/2協(xié)議的瀏覽器能抵御HEIST攻擊嗎?
HEIST是一項(xiàng)新的HTTP/2協(xié)議漏洞,它能從HTTPS通訊中盜取加密內(nèi)容。安全專家Michael Cobb將在下文解釋此種攻擊的實(shí)現(xiàn)原理以及如何阻止這種攻擊。
HTTP/2協(xié)議設(shè)計(jì)的初衷是為改進(jìn)安全和性能,但這也顯然會(huì)使威脅因素能夠造成更大的破壞。在2016年的美國(guó)Black Hat大會(huì)上,來自比利時(shí)魯汶大學(xué)(University of Leuven)的博士研究員Tom Van Goethem和Mathy Vanhoef披露了一種基于網(wǎng)頁(yè)的,能夠僅僅利用JavaScript從HTTPS通訊中盜取加密信息的攻擊方式。直到今天,例如CRIME和BREACH這樣面向安全嵌套層SSL和傳輸層安全協(xié)議TLS的攻擊方式,需要攻擊者能夠觀察和操縱受害者以及他們所訪問的網(wǎng)站——即中間人攻擊,使得攻擊者不那么容易找到漏洞。研究人員發(fā)現(xiàn)的這種名為HEIST的攻擊方式,只要受害者訪問了被攻擊者控制的中間站點(diǎn)或僅僅是基于JavaScript的廣告頁(yè),“HTTP加密信息就能夠通過TCP窗口進(jìn)行盜取”,從而使用戶的隱私遭受到威脅。更糟糕的是,HEIST攻擊能夠利用HTTP/2協(xié)議的特征來提升攻擊的速度。
HEIST是一種HTTPS上的旁路攻擊方式。其本身并不會(huì)真正打斷終端加密過程,然而通過將弱點(diǎn)和未知行為加入到與瀏覽器、HTTP、SSL/TLS以及TCP的交互過程中,可以在不同源應(yīng)答的瀏覽器中發(fā)現(xiàn)有關(guān)交換數(shù)據(jù)的大量信息,進(jìn)而猜測(cè)其中傳輸?shù)膬?nèi)容,即使這些內(nèi)容是加密的并且通過HTTPS發(fā)送。其工作原理是通過破解在TCP上的HTTPS應(yīng)答方法來測(cè)量單一HTTPS應(yīng)答的長(zhǎng)度。JavaScript代碼是不允許獲取返回的應(yīng)答中的數(shù)據(jù)長(zhǎng)度,然而HEIST所應(yīng)用的JavaScript使用了兩個(gè)新的應(yīng)用程序接口——HTML5資源定時(shí)器以及獲取來生成開始和結(jié)束時(shí)間,而這些內(nèi)容能夠從加密的應(yīng)答中推測(cè)到。一旦攻擊者掌握了加密應(yīng)答的長(zhǎng)度,他便可以使用BREACH或CRIME攻擊的方式來直接獲取其中的明文信息。網(wǎng)站通常使用的文件壓縮的方式來降低傳輸?shù)臄?shù)據(jù)量,從而使頁(yè)面能夠更快地載入,而BREACH和CRIME攻擊方式均可以通過操縱壓縮的方式來對(duì)網(wǎng)站載荷進(jìn)行解密。
如果頁(yè)面上有重復(fù)的信息,服務(wù)器只會(huì)發(fā)送信息一次。HEIST腳本會(huì)向網(wǎng)站發(fā)送多次請(qǐng)求,通過改變每個(gè)請(qǐng)求的字節(jié)內(nèi)容,試圖匹配的頁(yè)面上的區(qū)塊信息,這其中就包括密碼或銀行帳戶號(hào)碼。猜測(cè)塊中的數(shù)據(jù)的嘗試如果是錯(cuò)誤的,其結(jié)果會(huì)導(dǎo)致數(shù)據(jù)體積的增大,而如果猜測(cè)與數(shù)據(jù)塊匹配,數(shù)據(jù)將不會(huì)有明顯的體積增加,這是因?yàn)閴嚎s功能不會(huì)發(fā)送重復(fù)的數(shù)據(jù)塊。重復(fù)這一過程,并分析數(shù)千次該過程產(chǎn)生的每個(gè)應(yīng)答的數(shù)據(jù)尺寸,將允許腳本最終確定包含在網(wǎng)頁(yè)上的明文信息。這種類型的攻擊可能需要一段時(shí)間,但如果頁(yè)面是使用HTTP/2協(xié)議加載的,攻擊所花費(fèi)的時(shí)間將大大減少,因?yàn)樗械恼?qǐng)求都是包含在某一單一的HTTP/2連接中。同時(shí)HTTP/2所使用的壓縮格式hpack,使得預(yù)測(cè)頭幀長(zhǎng)度更加容易。
HTTP/2是面向超文本傳輸協(xié)議15年來的首次主要升級(jí)。其主要目標(biāo)在于改進(jìn)網(wǎng)站性能,但結(jié)果是其安全性有可能被弱化,HTTP/2中的新特性將毫無疑問地增加黑客可利用的攻擊面。Imperva的報(bào)告中討論了HTTP/2協(xié)議中相關(guān)的四項(xiàng)漏洞以及攻擊向量:“HTTP/2:下一代Web協(xié)議中四項(xiàng)主要缺陷的深入分析”,其中兩項(xiàng)已經(jīng)可以確認(rèn)在HTTP/1.x版本中就已存在。盡管沒有哪種技術(shù)能夠完全確保敏感信息的安全,然而HTTPS是安全訊通的核心因素,任何可破解的漏洞都會(huì)將整個(gè)網(wǎng)絡(luò)置于危險(xiǎn)之中。
在有關(guān)HTTP/2的深入研究面世前,延遲HTTP/2協(xié)議的實(shí)施也許是存放敏感數(shù)據(jù)網(wǎng)站的最佳選擇。那些想要利用HTTP/2協(xié)議優(yōu)勢(shì)以提升頁(yè)面訪問速度的管理員們,應(yīng)該在升級(jí)前確保所有已知漏洞均被修復(fù)。大多數(shù)網(wǎng)站仍無法阻止BREACH攻擊,并且盡管尚無BREACH已經(jīng)成功盜取真實(shí)賬戶的報(bào)告,基于HEIST的攻擊可能會(huì)改變這種情況。Van Goethem與Vanhoef的研究報(bào)告中詳細(xì)闡明了HEIST的攻擊方法。如Qualys的SSL server這樣的在線工具能夠檢查網(wǎng)站是否能夠抵御BREACH或類似攻擊方法。
HEIST攻擊方法若要奏效,網(wǎng)頁(yè)必須在自己的內(nèi)容中包含或反映瀏覽器的部分請(qǐng)求,且用戶必須啟用JavaScript以及第三方cookies。如果實(shí)際環(huán)境中有報(bào)告稱HEIST已經(jīng)成功實(shí)施,用戶應(yīng)該考慮打開主流瀏覽器均提供的隱私瀏覽模式。這一功能會(huì)禁用第三方cookies,使HEIST腳本無法通過HTTPS保護(hù)的網(wǎng)頁(yè)的驗(yàn)證。然而,由于會(huì)阻止瀏覽器中JavaScript的執(zhí)行,這將使許多網(wǎng)站無法訪問。