概述
最近,層疊樣式表(CSS)的Web標(biāo)準(zhǔn)中又增加了一些新的功能,這些功能是如此強(qiáng)大,以至于安全研究人員可以濫用這些功能往衷,對(duì)演示站點(diǎn)的訪問(wèn)者實(shí)施去匿名化攻擊,從而暴露他們的Facebook用戶(hù)名严卖、頭像以及是否喜歡特定的Facebook頁(yè)面席舍。
通過(guò)這種攻擊泄露的信息,可以幫助某些廣告商將IP地址或廣告資料與現(xiàn)實(shí)生活中的人對(duì)應(yīng)起來(lái)哮笆,從而對(duì)用戶(hù)的在線隱私構(gòu)成嚴(yán)重威脅来颤。
該漏洞的影響范圍并不僅限于Facebook,而是所有允許通過(guò)iframe將其內(nèi)容嵌入其他網(wǎng)頁(yè)的網(wǎng)站疟呐。
漏洞存在于瀏覽器中脚曾,而非網(wǎng)站中
實(shí)際上,該漏洞的根本原因启具,不在于網(wǎng)站本讥,而在于瀏覽器對(duì)名為"mix-blend-mode"的CSS特性的實(shí)現(xiàn),該特性是于2016年引入CSS3 web標(biāo)準(zhǔn)的鲁冯。
mix-blend-mode特性允許Web開(kāi)發(fā)人員將Web組件疊放在一起拷沸,并控制其混合效果。
正如該特性的名稱(chēng)所暗示的那樣薯演,這些效果是受Photoshop撞芍、Gimp、Paint.net等照片編輯軟件中的混合模式的啟發(fā)而來(lái)的跨扮。其中序无,常見(jiàn)的混合模式為疊加、變暗衡创、變亮帝嗡、顏色減淡、正片疊底璃氢、反轉(zhuǎn)等哟玷。
CSS3的mix-blend-mode特性支持16種混合模式,其中Chrome瀏覽器(自從v49版本開(kāi)始)和Firefox瀏覽器(自從v59版本開(kāi)始)對(duì)這些模式提供了全面的支持一也,而Safari瀏覽器則只提供了部分支持(從macOs系統(tǒng)上的v11版本和從iOS系統(tǒng)上的v10.3版本開(kāi)始)巢寡。
研究人員使用DIV堆疊來(lái)重建iframe內(nèi)容
在今天發(fā)布的研究報(bào)告中,谷歌安全工程師Ruslan Habalov與安全研究員 Dario Wei?er一起曝光了攻擊者是如何濫用CSS3的mix-blend-mode特性通過(guò)其他站點(diǎn)來(lái)泄漏用戶(hù)信息的椰苟。
這個(gè)漏洞的局限性在于抑月,攻擊者必須設(shè)法誘導(dǎo)用戶(hù)訪問(wèn)一個(gè)惡意網(wǎng)站,然后在惡意網(wǎng)站里面嵌入iframe來(lái)加載其他網(wǎng)站舆蝴。在上面提及的兩位研究人員給出的示例中爪幻,雖然兩個(gè)嵌入的iframe加載的都是Facebook的頁(yè)面菱皆,但其他網(wǎng)站也容易受到這個(gè)安全問(wèn)題的影響。
具體攻擊手法為挨稿,在iframe之上疊加大量的DIV層,并且每一層都使用不同的混合模式京痢。實(shí)際上奶甘,每一層只是一個(gè)1x1像素的圖片,換句話(huà)說(shuō)祭椰,每一層只能覆蓋iframe的一個(gè)像素臭家。
Habalov和Wei?er表示,根據(jù)渲染所有DIV堆棧所需的時(shí)間方淤,攻擊者可以確定用戶(hù)屏幕上顯示的像素顏色钉赁。
研究人員說(shuō),通過(guò)逐一將這種DIV“掃描”層放到iframe上面携茂,“就可以確定iframe的內(nèi)容你踩。”
正常情況下讳苦,攻擊者是無(wú)法訪問(wèn)這些iframe的數(shù)據(jù)的带膜,這主要得益于瀏覽器和允許其內(nèi)容通過(guò)iframe進(jìn)行加載的遠(yuǎn)程站點(diǎn)中實(shí)現(xiàn)的反點(diǎn)擊劫持和其他安全措施的限制。
兩個(gè)令人印象深刻的演示示例
通過(guò)兩個(gè)在線發(fā)布的演示示例(這里和這里)鸳谜,研究人員能夠獲取用戶(hù)的Facebook名稱(chēng)膝藕、低分辨率版本頭像以及喜歡的站點(diǎn)。
對(duì)于現(xiàn)實(shí)中的攻擊來(lái)說(shuō)咐扭,獲取用戶(hù)名只需20秒左右芭挽;而500毫秒足以用來(lái)檢查用戶(hù)對(duì)所有頁(yè)面的喜歡/不喜歡狀態(tài);如果花上20分鐘左右的時(shí)間的話(huà)蝗肪,就可以獲取Facebook用戶(hù)的頭像袜爪。
這種攻擊很容易實(shí)現(xiàn)隱身,因?yàn)閕frame可以輕松移出屏幕穗慕,或隱藏在其他元素下面(請(qǐng)參閱下面的演示gif動(dòng)畫(huà)演示饿敲,這里的攻擊是以貓照片為掩護(hù)的)。 此外逛绵,通過(guò)讓用戶(hù)完成某些在線測(cè)試或閱讀一篇長(zhǎng)文怀各,誘騙用戶(hù)在網(wǎng)站上駐留幾分鐘并非難事。
適用于Chrome和Firefox的修復(fù)程序
Google和Mozilla的工程師在收到研究人員的漏洞報(bào)告后术浪,已經(jīng)為Chrome 63和Firefox 60修復(fù)了這個(gè)安全漏洞瓢对。
“這個(gè)安全問(wèn)題是通過(guò)向量化混合模式計(jì)算來(lái)解決的,”據(jù)Habalov和Wei?er稱(chēng)胰苏。由于Safari瀏覽器的混合模式操作已經(jīng)被矢量化硕蛹,所以,Safari的CSS3 mix-blend-mode特性實(shí)現(xiàn)不會(huì)受到該漏洞的影響。
除此之外法焰,另一位名叫Max May的研究人員也獨(dú)立發(fā)現(xiàn)了該漏洞秧荆,并于2017年3月向Google提交了相應(yīng)的報(bào)告。
如果演示網(wǎng)站打不開(kāi)埃仪,可以通過(guò)此地址下載源碼乙濒。
如果本篇文章對(duì)你有幫助,麻煩給個(gè)star
原文鏈接
如果喜歡本文的話(huà)卵蛉,歡迎關(guān)注我的訂閱號(hào)颁股,前端玩法,期待未來(lái)共同學(xué)習(xí)成長(zhǎng)傻丝。