在Black Hat 2016大會(huì)上,兩名比利時(shí)的安全研究人員展示了他們今年的研究成果。他們發(fā)現(xiàn)了一個(gè)WEB攻擊方式可以繞過HTTPS加密得到明文信息。他們把這種攻擊方式叫做HEIST攻擊。HEIST的全稱是Encrypted Information can be Stolen through TCP-Windows。大體意思就是通過TCP-Windows協(xié)議可以竊取到加密的明文信息。
FreeBuf百科:TCP-Windows協(xié)議
這里得先說說什么是TCP-Windows協(xié)議。TCP-Windows協(xié)議也叫做TCP Receive Window,它是在TCP連接兩端都有的緩沖區(qū),用于暫時(shí)保存到來的數(shù)據(jù)。在這個(gè)緩沖區(qū)中的數(shù)據(jù)會(huì)被發(fā)送到應(yīng)用程序中,為新到來的數(shù)據(jù)騰出空間。如果這個(gè)緩沖滿了,那么數(shù)據(jù)的接收方會(huì)警告發(fā)送方在緩沖去清空之前已經(jīng)不能在收取更多的數(shù)據(jù)了。這其中涉及到一些細(xì)節(jié),但那都是很基本的東西。一般,設(shè)備會(huì)在TCP Header信息中通知對(duì)方當(dāng)前它的TCPWindows的大小。
HEIST攻擊的利用條件十分簡(jiǎn)單,只需要幾行簡(jiǎn)單的javascript代碼即可,并且無需借助中間人攻擊。首先會(huì)先抓取并且保存?zhèn)鬏數(shù)拿舾袛?shù)據(jù),這個(gè)攻擊方式可以獲取到銀行卡卡號(hào),真實(shí)姓名,電話號(hào)碼,社會(huì)安全號(hào)碼等私人敏感信息。但是眾所周知,這些數(shù)據(jù)大部分都是HTTPS加密的。然后再對(duì)其加密數(shù)據(jù)的大小長(zhǎng)度進(jìn)行一個(gè)探測(cè)。有很多網(wǎng)站都會(huì)使用文件壓縮技術(shù)來提升網(wǎng)頁的加載速度,而攻擊者正好可以利用其中的設(shè)計(jì)缺陷來解密數(shù)據(jù)payload(類似BREACH攻擊和CRIME攻擊)。
HEIST技術(shù)可以利用新的API(Resource Timing和Fetch)來計(jì)算出目標(biāo)主機(jī)發(fā)送的傳輸幀和窗口的數(shù)量。在整個(gè)處理過程中,研究人員可以利用一段JavaScript代碼來確定HTTPS響應(yīng)信息的實(shí)際大小。然后,惡意HEIST代碼就可以配合BREACH技術(shù)來從用戶的請(qǐng)求數(shù)據(jù)中提取出加密信息了。
具體的攻擊流程圖
據(jù)了解,在周三的演示過程中,安全研究人員將會(huì)演示如何利用紐約時(shí)報(bào)官網(wǎng)中的惡意廣告來精確測(cè)量出經(jīng)過加密處理的響應(yīng)信息大小。在整個(gè)過程中,安全研究人員將會(huì)使用一個(gè)虛擬的第三方網(wǎng)站(targetwebsite.com)來發(fā)送加密信息。除此之外,他們還將會(huì)演示如何從用于防止跨站請(qǐng)求偽造攻擊的安全令牌中推測(cè)出數(shù)據(jù)信息。
雖然目前一些網(wǎng)站部署了基本的安全措施,但是大多都不能夠預(yù)防HEIST攻擊,所以這類攻擊方式在最近這幾年或許會(huì)變得頻繁起來。目前針對(duì)HEIST攻擊的預(yù)防方法,要么禁用第三方的cookie,要么禁止javascript腳本。但是第三方的cookie和javascript都是普通用戶訪問web的基本要求,所以這兩名研究人員也希望通過Black Hat大會(huì)一同尋找和制定一個(gè)合理有效的解決方案。