研究人員發現,駭客能夠透過釣魚攻擊,並結合推特封鎖功能造成頁面載入的時間差,關聯出使用者線下名稱與線上身分,而這將造成部分地區的使用者很大的風險,現在推特不只增加參照檢查,更聯合瀏覽器廠商共同修正這個問題。

早稻田大學與NTT研究人員透過漏洞獎勵計畫,向推特回報名駭客可利用名為Silhouette的技術,對用戶進行追蹤。網站能以JavaScript利用標準瀏覽器API,在後臺向推特發出頁面請求,該請求會被要求使用Cookie登入憑證,因此當使用者登入了推特,該請求便會以使用者身分進行。

也就是說,當用戶點擊來自電子郵件或是推文上的釣魚連結時,惡意網站就有機會能夠取得使用者的推特身分進行追蹤,或是找出與其他帳戶之間的關係。特別是當駭客能夠把使用者線下名稱跟線上身分關聯時,在特定地區會特別危險。

雖然推特網站以CSRF保護POST請求,以確保請求是由本人操作,防止其他程序代替使用者發送推文的行為。瀏覽器也會基於安全理由,對跨來源的請求有所限制,像是另一個來源無法讀取回應內容,以保護使用者的資訊安全。

不過,由於請求頁面可以決定頁面載入的時間,Silhouette技術便是利用了網頁頁面載入時間的可變性,操控用戶的請求回應時間,駭客便能透過時間資訊追蹤出特定使用者身分。通常推特網頁載入的時間很難被預測,因為載入的時間取決於瀏覽頁面上的推文內容。但是推特的封鎖功能卻讓頁面載入時間變得可操控,當使用者A被使用者B封鎖,使用者A在瀏覽使用者B的推特個人頁面時,網頁不會載入使用者B的個人資料,並且顯示空白的推文時間軸。

顯示空白的頁面比顯示充滿推文的頁面還要快上許多,根據官方的測試,空白頁面載入只需要約200毫秒,一般完整的頁面則要約500毫秒。因此駭客可以利用這點,影響用戶瀏覽特定網址的載入時間。研究人員可以透過精心安排多個帳號,並設計特別的封鎖關係,就能夠使用極低的請求數,從一大群用戶裡追蹤出特定使用者。推特提到,研究人員只要設立20個存在特定封鎖關係的推特帳號,就能從一百萬個帳號群中,追蹤特定人士。

當然駭客也可以使用魚叉式釣魚法,向使用者發送惡意網站連結,藉此追蹤該用戶,但是研究人員揭露的Silhouette技術,使用者則是在預設隱私的狀態下被追蹤,而且對大部分的用戶都能發生效果。要解決這個問題並非簡單的事,推特前後試驗了各種方法,同時在瀏覽器的規範以及應用程式上下手。

推特提到,最理想的解決方案是在登入Cookie中使用SameSite屬性,讓其他網站對推特網站的請求,不會被視為登入請求,不是登入請求就無法被偵測身分。但是SameSite屬性是過期的規範草案,只有Chrome有實作,推特提到,雖然Chrome是最多用戶使用的瀏覽器,但是仍需要顧及其他瀏覽器的安全性。

推特先採取了較可行的全面解決方案,推特的CSRF保護機制,用來確保POST請求的原始以及參照標頭都源自於推特,推特現在把這個機制應用在GET請求上,便能有效解決Silhouette漏洞。但這個機制卻會阻擋推特網站的初始載入,為了解決這個問題,他們在twitter.com上創建了一個空白頁面,這個網頁僅執行重新載入的動作,而重新載入後,參照來源便會設置為twitter.com,頁面也就可以正確載入,而非推特網站也就無法在重新載入後進行追蹤。這個空白頁面非常小,雖然會增加往返的負載,但是對載入時間不會有太大影響。

推特在進行網站修正的同時,也與瀏覽器主要廠商討論Cookie屬性SameSite的可行性,現在所有主流瀏覽器包括Chrome、Firefox、Edge、Internet Explorer 11和Safari都實作了該規範。推特在使用SameSite Cookie和參照檢查後,已經可以確定推特用戶免於Silhouette技術影響。但是官方提到,除了推特,其他網站也會受Silhouette技術威脅。

熱門新聞

Advertisement