JavaScript代碼可欺騙瀏覽器標籤頁以窺探瀏覽內容

計算機科學家展示邊信道攻擊技術,該技術可繞過最新隱私防護措施,跟蹤瀏覽器用戶訪問網址。科學家的研究結論是:

單個Web瀏覽器標籤頁中的惡意JavaScript代碼可監視其他已打開標籤頁,獲取用戶正在訪問的網站信息。

JavaScript代码可欺骗浏览器标签页以窥探浏览内容

該信息可用於根據你的興趣愛好推送針對性廣告,或者找出你感興趣的東西收集起來以備後用。

來自以色列、澳大利亞和美國三所知名大學的幾位研究人員開發了一種基於處理器緩存的網站指紋攻擊,利用JavaScript代碼收集數據以識別訪問過的網站。

關於該技術的論文最近預發佈在ArXiv上,題為《基於緩存佔用通道的健壯網站指紋獲取》。

該攻擊通過找出用戶訪問過的網站來獲取人們的秘密,可供攻擊者獲悉用戶的性向、宗教信仰、政治觀點、健康狀況等。

該攻擊不像遠程任意代碼執行或遠程暴露內核內存之類的攻擊那麼嚴重,但不排除被人改進為可獲取加密密鑰或已安裝脆弱軟件之類計算秘密的攻擊方式。

無論如何,該攻擊可能會給堅信Tor可以保住網站瀏覽秘密的用戶造成嚴重後果。

邊信道攻擊(或者“瞬態執行攻擊”)觀察計算系統的一部分以收集可被用於推斷特權信息的一些指標。今年披露的幽靈、熔斷和預兆漏洞都有痛感邊信道攻擊技術加以利用的可能性。

本次披露的攻擊方法比幽靈更底層,在幽靈無法執行的地方運作(比如,跨進程邊界),針對幽靈的CPU補丁對此無效。但另一方面,幽靈攻擊恢復出來的信息精度更高。

緩解這些攻擊的方法之一是限制對高精度計時器的訪問(訪問高精度計時器可獲取邊信道數據)。幽靈和熔斷漏洞首次披露時,Mozilla就表示將禁用或降低其Firefox瀏覽器中時間源的精度。

但該最新瀏覽器指紋技術不需要高精度計時器,而是瞄準了處理器緩存佔用。

緩存佔用衡量整個緩存在一定時間內被訪問的百分比。瀏覽器的內存佔用是非常大的,因為它要從網絡接收大量數據,還要往屏幕上繪製各種輸出。這就意味著瀏覽器在加載頁面時會用到大量緩存。

另外,該方法不依賴緩存佈局,也就讓緩存佈局隨機化技術毫無用武之地。而且,當瀏覽器從其響應緩存而不是從網絡上取來數據時,或者使用了網絡流量整形時,針對基於網絡的指紋的防禦措施也影響不到該攻擊。

自動發現

該指紋攻擊利用JavaScript測量網站被加載時處理器的緩存訪問延遲,再通過深度學習技術與攻擊者之前收集的基線做對比,自動識別其間相似性以識別是在訪問哪個網站。換句話說,通過瀏覽器訪問CPU緩存獲取並渲染Web頁面內容的方式,是有可能確定用戶正在瀏覽的網站的。某個標籤頁中的惡意JavaScript代碼可以監視緩存訪問以識別模式,標定其他標籤頁當前瀏覽網站。

“經典”機器學習技術需要人類專家找出數據的哪種“特性”對攻擊有用。關於執行其他類型的攻擊時能用的最佳特性,目前已經有了很多研究成果。深度學習領域,計算機本身就是專家,會自行查找這些特性,用戶可以直接從數據到結果。或許研究人員可以找出比當前深度學習算法找到的更好的特性,改進此類攻擊。

研究人員考慮了兩個應用場景:100個緩存延遲測量值匹配100個網站的封閉數據集和100個敏感網頁必須從5000個其他網站中分辨出來的開放數據集。

在封閉數據集上使用主流瀏覽器,研究人員能夠精準識別70%-90%的網站訪問。應用到Tor瀏覽器上,準確率僅為47%,但如果考慮到其他數據,準確率可以提升至72%。在開放數據集上應用的結果與之類似,主流瀏覽器網站訪問識別率還是70%-90%,Tor瀏覽器的識別率可達83%——如果研究人員不僅考慮首位結果,還查看是否屬於前5個檢測結果之一的話。

如果目標只是確定訪問的網站是否敏感,開放數據集上的識別準確率可達99%以上。

研究人員表示,通過減少對精確計時的訪問來抵禦邊信道攻擊的方法是徒勞的。研究結果表明這種防禦方法完全是無用功,因為該攻擊根本不需要高精度計時器。同樣地,某些防禦幽靈攻擊的方法將網站分隔到多個進程中,但數據結果顯示:這麼做還不夠。攻擊者可以從一個瀏覽器標籤頁窺探另一個標籤頁,甚至從一個瀏覽器窺探同一臺計算機上另一個瀏覽器訪問的內容。

研究人員的結論是,不能在任意時間點都只運行單一瀏覽器標籤頁就有潛在隱私風險:你打開第二個標籤頁,JavaScript就能窺探那另一個標籤頁。完全禁用JavaScript可以阻止該攻擊,但同時也關閉了瀏覽很多網站的通路——很多網站都要靠JavaScript功能運行。另外,虛擬化只應被看做一種便利的功能而不應被當做安全功能看待。

研究人員甚至表示:如果你想同時瀏覽敏感和非敏感網站,那就建議用兩臺電腦。


分享到:


相關文章: