一名來自 FingerprintJS 的安全研究人員 Konstantin Darutkin 近來發現一個名為 Scheme Flooding 的漏洞。此漏洞允許網頁可以跨多個不同的桌面瀏覽器追蹤用戶,包括 Safari、Chrome、Firefox、Microsoft Edge 和 Tor。而這會對跨瀏覽器的匿名性構成威脅。
此方式是以自定義 URL 作為攻擊媒介,它可以利用當事人電腦上已安裝的應用程序信息為用戶分配永久唯一識別碼,即使使用者切換瀏覽器、使用無痕模式或是透過 VPN 連網也是如此。
攻擊手法
首先,駭客可以檢查用戶常用的 32 個流行應用程式列表,確認用戶是否安裝其中應用程式,來產生 32 位元跨瀏覽器裝置識別碼,整個辨識過程需要數秒鐘,可以在桌面Windows、Mac 和 Linux 作業系統上執行。
網站為了要檢查是否安裝應用程式,會使用瀏覽器內建的URL方案處理程式,像是在瀏覽器網址列中輸入skype://,就可查看功能運作狀況,當用戶安裝了Skype,瀏覽器便會開啟確認對話框,詢問用戶是否要啟動應用程式。這個功能稱為深度連結,在行動裝置中被廣泛使用,而桌面瀏覽器也擁有此功能,裝置中所安裝的應用程式都可以註冊自己的方案(Scheme),並允許其他應用程式呼叫開啟。
利用此漏洞需要四個步驟:
準備要測試的應用程序 URL 方案列表;
將測試每個應用程序的網站上添加腳本;
使用此排列生成永久的跨瀏覽器識別碼;
為了收集有關網站訪問者的更多信息,可以使用演算法來猜測用戶的職業,興趣和年齡。
此漏洞在各瀏覽器的實作方法不同,但是基本概念大同小異,都是要求瀏覽器在彈出視窗中顯示確認對話框,並利用 JavaScript 程式碼來偵測彈出視窗,確認要偵測的應用程式是否存在。
Darutkin 已向 Safari,Chrome 和 Firefox 的開發人員提交了報告,並發布了所有數據的利用和存儲庫演示,希望能夠盡快修復。
參考資料:
https://www.ithome.com.tw/news/144424
https://threatpost.com/scheme-flooding-website-tracking/166185/