數十年來,網站絞盡腦汁使用各種巧妙的技術,企圖隱密地追蹤訪客的瀏覽歷史、裝置指紋,以及即時的鍵盤和滑鼠移動。即使是 Meta 和 Yandex 等公司,近期也被發現加入這場侵犯隱私的亂象。
現在,網站有了監控訪客的新方法:測量與固態硬碟(SSD)的細微互動。這項名為 FROST(fingerprinting remotely using OPFS-based SSD timing)的技術,能讓網站監控訪客正在瀏覽的其他網站,以及裝置上開啟的應用程式。
這項技術詳述於一篇研究論文中,它利用了側信道(side channel)。側信道是一種洩漏形式,源於物理現象,例如電磁輻射、資料快取或完成任務所需的時間。透過測量這些物理現象,攻擊者可以解密加密流量並推斷其他機密資料。
FROST 所使用的攻擊稱為競爭側信道(contention side channel),它測量多個進程在使用(或競爭)特定資源時的互動。透過測量訪客使用的 SSD 的特定輸入/輸出(I/O)操作的時間,研究人員能夠判斷訪客在其他分頁(甚至其他瀏覽器)中開啟的網站,以及訪客裝置上開啟的應用程式。FROST 除了訪客開啟含有攻擊的網站外,無需訪客的任何互動。
「網頁瀏覽器已從簡單的文件檢視器演變成能夠運行複雜應用程式的平台,」論文作者寫道。「Google、Microsoft 和 Adobe 等公司開發了功能齊全的辦公室套件、照片和影片編輯器,甚至整合開發環境(IDE),這些都完全在瀏覽器中運行。」作者接著指出:「雖然這些功能增強了網頁應用程式的能力,並帶來了全新的使用案例,但它們也增加了瀏覽器的攻擊面,其中一些已被證明會引入新的漏洞。」
與先前針對 SSD 的競爭側信道攻擊不同,FROST 完全在瀏覽器中運行。它使用與 OPFS(origin private file system)互動的 JavaScript。OPFS 是一個分配的儲存空間,專門為特定網站保留,用於運行完成特定任務所需的程式碼。網站可以在無需訪客互動的情況下創建一個 OPFS。
雖然每個檔案系統都經過沙盒化處理,意味著它與其他網站和裝置系統本身隔離,但 JavaScript 仍能測量 I/O 互動。然後,透過將這些互動輸入一個預先訓練好的卷積神經網路(convolutional neural network)——一種使用深度學習分析文字、音訊和圖像的系統——攻擊者就可以推斷出裝置上開啟的各種應用程式和網站。
「攻擊者透過從一個大型 OPFS 檔案執行隨機讀取來持續測量 SSD 競爭,」研究人員解釋道。「由使用者活動引起的 SSD 競爭會導致這些讀取操作產生可測量的延遲差異。透過在這些軌跡上訓練卷積神經網路(CNN),攻擊者可以透過分類新的軌跡來識別主機系統上的使用者活動。」
這項技術有其限制。首先,OPFS 檔案必須非常大——可能需要一個 gigabyte 或更多。這個要求意味著大規模的攻擊不可避免地會被許多使用者偵測到。此外,OPFS 檔案必須儲存在訪客使用的 SSD 上。對於追蹤開啟的網站來說,這通常不是問題,因為 OPFS 檔案儲存在瀏覽器的預設位置。如果應用程式使用獨立的 SSD 驅動器來運行應用程式,那麼 FROST 就無法偵測到這些應用程式。
防止 FROST 攻擊的最佳方法之一是及時關閉不再需要的網頁分頁。較為精通技術的使用者可以監控未知網站分配的 OPFS 檔案的創建和大小。研究人員提出了讓瀏覽器製造商關閉此側信道的方法。其中一種方法是限制允許的此類檔案的最大大小。目前沒有跡象表明 FROST 攻擊已在實際中被使用。
研究人員在 M2 Mac 上執行了完整的 FROST 攻擊。在 Linux 上,他們證明了底層機制(從 JavaScript 測量 SSD 存取延遲軌跡)是可行的,但沒有執行完整的攻擊。
「然而,由於該機制在 macOS 和 Linux 之間的性能相似,我們預計完整的分類性能也會相似,」共同作者之一的 Hannes Weissteiner 在電子郵件中寫道。「原則上,可以在任何可靠產生 SSD 存取的系統活動上訓練模型。」
研究人員沒有測試 Windows。
上述論文提供了更多技術細節。該研究預計將於七月在 DIMVA 會議上發表。