互聯(lián)網(wǎng)時代,瀏覽器隱私問題是時候引起關(guān)注了!
編者按:對系統(tǒng)與網(wǎng)絡(luò)安全的研究,主要是探討如何評估和增強現(xiàn)實中重要系統(tǒng)的安全性,所以其研究成果往往與人們的現(xiàn)實生活聯(lián)系緊密。比如,人們經(jīng)常使用的瀏覽器軟件,它的架構(gòu)、協(xié)議標準和實現(xiàn)細節(jié)極其復雜,而且它的安全與隱私問題也已經(jīng)變成了一個很大的挑戰(zhàn)。因此,對瀏覽器核心機制所帶來的隱私泄露問題進行深入研究十分有必要。
微軟亞洲研究院可信系統(tǒng)研究組一直對系統(tǒng)與網(wǎng)絡(luò)安全領(lǐng)域保持著密切關(guān)注。針對上述問題,微軟亞洲研究院實習生靳子豪(清華大學在讀博士)和孔子喬(即將赴 ETH Zurich 讀研)在微軟亞洲研究院首席研究員陳碩和清華大學段海新教授的指導下,對 site isolation 機制進行了深入研究,其研究成果已經(jīng)被計算機安全領(lǐng)域的頂會 IEEE Symposium on Security and Privacy(S&P)收錄。
在很長的歷史中,瀏覽器一直是一個單進程的應用程序,這就導致其在可靠性和安全性上有很大的弱點。比如,一旦瀏覽器訪問一個網(wǎng)站時崩潰或掛起,則整個瀏覽器必須退出和重啟;如果惡意網(wǎng)站利用內(nèi)存漏洞獲取了進程控制權(quán),那么這個受控的瀏覽器就可以攻擊網(wǎng)絡(luò)上的任意一個網(wǎng)站。針對這個問題,學術(shù)界從2008年開始提出了多進程瀏覽器的體系結(jié)構(gòu)。Google Chrome(以及開源瀏覽器 Chromium)是第一個采用多進程結(jié)構(gòu)的主流瀏覽器。不過在最初十年,多進程結(jié)構(gòu)主要用于隔離不同的標簽(tab),而不同的非本地網(wǎng)站并沒有放在不同進程中加以隔離。針對這一弊端,Google Chrome 團隊在2018年實現(xiàn)了完整的多進程機制,即 site isolation,并在 Chrome 瀏覽器中缺省啟動,使得絕大多數(shù)用戶使用的 Chrome 瀏覽器都受到了保護。
然而,微軟亞洲研究院的研究員們發(fā)現(xiàn),雖然 site isolation 為安全而設(shè)計,但是它導致了一個嚴重的隱私問題——它使得一個攻擊者網(wǎng)站可以監(jiān)視用戶的瀏覽行為。換言之,如果用戶訪問了包含攻擊者腳本的網(wǎng)頁,攻擊者就可以快速檢測瀏覽器的其它標簽是否正在訪問“敏感網(wǎng)站黑名單”中列出的網(wǎng)站,其準確率高達99%。并且,攻擊者還可以更進一步判斷這些敏感網(wǎng)站中哪一個在前端標簽(即用戶正在交互的網(wǎng)站),而哪些在后端標簽。這使得攻擊者能夠?qū)τ脩舻臑g覽行為進行實時的監(jiān)控。這就像你在瀏覽網(wǎng)頁的時候,身后有一雙眼睛在監(jiān)視你都訪問了哪些“敏感”網(wǎng)站。
研究團隊制作的視頻演示
導致這個問題的主要原因是 site isolation 引入了一個非常可靠的時長側(cè)信道(timing side-channel),能夠被攻擊者跨站利用。因此,微軟亞洲研究院的研究員們針對這個問題進行了相關(guān)研究,并在計算機安全領(lǐng)域的頂會 IEEE Symposium on Security and Privacy(S&P)上發(fā)表了論文“Site Isolation Enables Timing-Based Cross-Site Browsing Surveillance”。
論文****:https://www.microsoft.com/en-us/research/publication/site-isolation-enables-timing-based-cross-site-browsing-surveillance/
(由于與 Microsoft Edge 和 Google Chrome 團隊正在評估多種解決方案,所以目前論文只公布了摘要部分,正文將在以后上傳到該****。)
進程在操作系統(tǒng)中是昂貴的稀缺資源,所以瀏覽器在使用多進程的時候必須盡量節(jié)約進程數(shù)量。site isolation 的設(shè)計目標是保證不同網(wǎng)站的內(nèi)容由不同進程處理,但是由于進程的稀缺性,它只能采用一種激進的進程重用策略,使得相同網(wǎng)站的內(nèi)容有很大可能性由同一個進程處理,即使這些內(nèi)容顯示在不同的標簽中。這種跨標簽的重用使得“時長(timing)”變成隱私泄露的側(cè)信道(side channel)。
圖1展示了利用“時長”側(cè)信道泄露隱私的情景。瀏覽器中打開了三個標簽:從左到右分別顯示 victim1.com、victim2.com 和攻擊者(attacker)網(wǎng)頁。在 attacker 網(wǎng)頁中有一個 iframe 和一個計時的 JavaScript 代碼。假設(shè)這個 iframe 也訪問 victim1.com,根據(jù)進程的策略,瀏覽器不需要重新創(chuàng)建新進程,因此 JavaScript 會發(fā)現(xiàn)這次的 iframe 訪問很快就完成了,這說明該用戶的瀏覽器中已經(jīng)訪問了 victim1.com。相反,如果 iframe 訪問 victim500.com,瀏覽器就必須創(chuàng)建一個進程(因為沒有現(xiàn)存的進程可以重用)。也就是說,當 JavaScript 發(fā)現(xiàn) iframe 需要較長時間完成訪問,它就能斷定 iframe 所訪問的網(wǎng)站在瀏覽器中并不存在。
圖1:跨標簽的時長側(cè)信道
以上介紹的是這種隱私泄露的最基本原理。為了把它的嚴重性完全展現(xiàn)出來,研究員們主要對以下五個方面進行了深入研究:
1. 如何定義一種“相對時長”,使得在不同性能的用戶機器訪問同一網(wǎng)站的測量結(jié)果基本一致;
2. 如何完全消除網(wǎng)絡(luò)訪問對時長測量的干擾,使得時長單純反映本地進程的速度;
3. 瀏覽器渲染前端標簽的時長是否取決于所訪問頁面的復雜度;
4. HTML解析的時長是否會因網(wǎng)頁剛剛被加載而不同;
5. 由于前端標簽進程優(yōu)先級高于后端,所以是否可以通過測量時長來判斷優(yōu)先級,進而區(qū)分前端或后端。
研究員們對此展開了實際攻擊,并且證明了這種側(cè)信道確實有極為可靠的可利用性。如圖2所示,利用這些時長特征,研究員們對 Alexa top 3000 網(wǎng)站進行了“相對時長”的測量。藍點表示該網(wǎng)站不存在于瀏覽器中(not-present);紅點表示該網(wǎng)站在后端標簽中(background);綠點表示該網(wǎng)站在前端標簽中(foreground)??梢悦黠@地看出,紅藍點能被很好的區(qū)分開,且大多數(shù)綠點與紅藍點也能輕易區(qū)分開。對于不易區(qū)分的紅綠重疊和藍綠重疊,研究員們設(shè)計了更精細的二次測量,使得它們也能夠區(qū)分,請見圖2中下側(cè)的兩張小圖。統(tǒng)計結(jié)果顯示:not-present 與 background 的區(qū)分度是99.26%;not-present 與 foreground 的區(qū)分度是99.08%;foreground 與 background 的區(qū)分度是95.23%。
圖2:Alexa top 3000 網(wǎng)站“相對時長”分布
該論文所揭示的瀏覽隱私泄露問題具有普遍性。由于 site isolation 是 Chromium 引擎的機制,因此使用該引擎的 Chrome 和 Edge 都有同樣的問題。Firefox 瀏覽器近年來也在開發(fā)類似于 site isolation 的機制,項目名字為 Project Fission,目前處在試驗階段。研究員們也對開啟了 Fission 機制的 Firefox 做了初步測量,發(fā)現(xiàn)時長側(cè)信道也能夠有極大概率判斷一個網(wǎng)站是否存在于瀏覽器中。如圖3所示,紅藍點的分布可以輕易分開。
圖3:針對開啟了 Fission 機制的 Firefox 的測量
目前,微軟亞洲研究院的研究員們已經(jīng)將這個隱私問題報告給了 Microsoft Edge 和 Google Chrome 團隊,并得到了兩團隊的確認。經(jīng)過溝通和交流,兩團隊認為研究員們提出的建議能在一定程度上減少時長側(cè)信道的可靠性和可觀察性。Google Chrome 團隊也提出了一種改進進程重用策略的設(shè)想。研究員們希望這些改進能夠幫助保護大眾的網(wǎng)絡(luò)瀏覽隱私。
微軟亞洲研究院可信系統(tǒng)研究組同時也在開展其它與網(wǎng)絡(luò)安全相關(guān)的研究,希望未來能夠做出更多有益公眾和業(yè)界的成果,推動實際的變革。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。
高壓發(fā)生器相關(guān)文章:高壓發(fā)生器原理