蘋果 Safari瀏覽器新漏洞敲響跨站用戶跟蹤的警鐘
防欺詐軟件公司 FingerprintJS 日前披露,Safari 15中的IndexedDB API執行漏洞已經被惡意網站利用,它可能被用于跟蹤用戶的網絡瀏覽數據。更糟糕的是,這個漏洞甚至有暴露用戶的身份的風險。
FingerprintJS公司將該漏洞命名為IndexedDB Leaks, 并于2021 年 11 月 28 日向蘋果公司報告了該問題。
IndexedDB是網絡瀏覽器提供的低級 JavaScript 應用程序編程接口 (API),用于管理結構化數據對象(如文件和 blob類型數據)的NoSQL 數據庫。
Mozilla組織在其API文檔中指出:“和大多數網絡存儲解決方案一樣,IndexedDB遵循同源策略,因此用戶可以在一個域中訪問存儲的數據而不能在不同的域中訪問數據。”
同源機制是一種基本的安全機制,它確保從不同來源獲取的資源彼此隔離。也就是說,URL的方案(協議)、主機(域)和端口號是相互隔離的。通過限制一個源加載的腳本如何與另一個源加載的資源交互可以防止流氓網站運行任意JavaScript代碼從另一個域(如電子郵件服務)讀取數據,從而隔離潛在的惡意腳本,減少潛在的攻擊矢量。
然而,Safari瀏覽器處理跨 iOS、iPadOS 和 macOS 系統中的 Safari IndexedDB API 的方式并非如此。每次網站與數據庫交互時,都會在同一瀏覽器會話中的所有其他活動框、選項卡和窗口中創建一個具有相同名稱的新的空數據庫。
這種侵犯隱私的處理方式允許了網站獲取用戶在不同選項卡或窗口中訪問的其他網站。這就更不用說在 YouTube 和 Google 日歷等 Google 服務上準確識別用戶了。因為這些網站創建的IndexedDB數據庫包含了經過認證的谷歌用戶ID,這是唯一標識單個 Google 賬戶的內部標識符。
這不僅意味著不受信任的或惡意網站可以了解用戶的身份,而且還允許網站將同一用戶使用的多個單獨賬戶鏈接在一起。
雪上加霜的是,如果用戶是從瀏覽器窗口的同一選項卡中訪問多個不同的網站的,那么即使他使用的是Safari 15瀏覽器中的隱私瀏覽模式也并不能幸免于難。
“這是一個巨大的漏洞,”谷歌 Chrome 瀏覽器的開發者倡導者 Jake Archibald 在推特上寫道。“在 OSX 操作系統上,Safari 用戶可以暫時切換到另一個瀏覽器以避免他們的數據跨源泄漏,可是iOS 用戶沒有這樣的選擇,因為蘋果禁止其他瀏覽器引擎。”