Google為了讓網站無法偵測用戶是否以無痕進行瀏覽,在Chrome 76修正檔案系統(FileSystem)API的漏洞,但現在有研究人員發現,Chrome 76的檔案系統API的寫入速度,在無痕模式比一般模式還要快,因此網站還是能用寫入的速度差異,來偵測使用無痕模式的訪客,達成時序攻擊(Timing Attack)。

Chrome 75以前的版本,無痕模式會禁用檔案系統API,以避免在裝置留下任何活動痕跡,而檔案系統API的漏洞,會讓網站在檢查檔案系統API的可用性時,回傳錯誤訊息,因此網站便能得知用戶正在使用無痕模式,Google提到,由於不少媒體網站採用計次付費牆(Paywall)收費模式,當用戶瀏覽超過一定數目的文章,才會要求登入付費帳號,因此為避免用戶使用無痕模式規避計次付費牆機制,網站便會使用檔案系統API的漏洞,偵測用戶是否正使用無痕模式,決定給予相對應的用戶體驗。

而在7月的時候,Google宣布要落實無痕模式隱私原則,會在Chrome 76中,修正檔案系統API的漏洞,但現在研究人員Jesse Li發現,即便是最新的Chrome 76,仍然可以透過量測API寫入儲存中介的速度,來偵測瀏覽器的無痕模式,而Jesse Li也在GitHub中發表了概念性驗證實作。

Chrome 76為了避免網站根據檔案系統API的可用與否偵測無痕模式,因此即便在無痕模式,Chrome仍然會寫入API的資料,只是資料寫入的目標是記憶體而非磁碟,如此便不會在磁碟上留下操作痕跡,對網站來說,檔案系統API都一致可用,那就不存在之前以API可用與否,判斷瀏覽器無痕模式的問題,不過這卻產生另一個問題,由於記憶體寫入速度比磁碟更快,兩者仍存在差異。

利用這樣的差異,網站就能推測出用戶是否使用無痕模式。由於記憶體比磁碟快上許多,網站只要重複寫入大量的字串,量測檔案系統需要時間,建立出基準測試,就能用來判斷訪客是否使用無痕模式。

Jesse Li進行了一百次的迭代,共花費數分鐘做出基準測試。基準測試結果顯示,在一般模式下的檔案系統,寫入磁碟的尖峰時間約落在3,000到4,000毫秒之間,相較於無痕模式寫入記憶體,尖峰落在1,000毫秒,時間只有三分之一到四分之一而已,無痕模式平均耗費792毫秒,而一般模式平均則要2,281毫秒,是前者的2.8倍。

Jesse Li解釋這種偵測無痕模式與一般模式的時序攻擊有其限制,除了需要花上數分鐘或是數十秒的時間,才能獲得有用的資料之外。偵測的結果跟使用者裝置的配置有關,行動裝置與桌上型電腦的記憶體和磁碟速度都不一樣,也會跟裝置同時執行的工作有關,而對統計資料產生雜訊。

這種方法並非直接偵測無痕模式,而是偵測檔案系統的第二儲存中介,進而推斷使用者瀏覽器正在執行的模式,但當磁碟即是記憶體的時候,便會產生誤判。不過,Jesse Li提到,這種方法相對難以修補,因為其攻擊的手段是漏洞修補的技術基礎,因此用戶要完全避免被偵測出使用無痕模式,必須要在兩種裝置使用相同的儲存中介,寫入速度相同也就沒有被偵測的疑慮。


Advertisement

更多 iThome相關內容