安全研究人員發現一個利用「雙次點選順序 (double-click sequence)」以便在主要網站進行點選劫持攻擊及帳號劫持,將不知情的用戶導向惡意網站。
安全研究人員 Paulos Yibelo 稱之為 DoubleClickjacking 。
他說明,新手法是使用滑鼠重複點選,而非常見的單次點選。雖然只多點了一次,卻開啟新的 UI 操控攻擊,繞過主要網站的滑鼠點選劫持防護措施,像是 X-Frame-Options header 或 SameSite: Lax/Strick cookie 。
點選劫持又被稱為 UI redressing,指的是誤導用戶以為他們點選合法網頁元素(如按鍵),實際上卻點進惡意元件,導致安裝惡意程式、敏感資料外洩等後果。
DoubleClickjacking 則是這種手法的變種,是利用開始第一次點選和結束第二次點選之間的時間,來繞過安全控制並取得帳號權限。
DoubleClickjacking 的手法如下:
- 首先,使用者透過開啟瀏覽器視窗或分頁,或是按了個按鍵瀏覽攻擊者控制的網站。
- 新視窗出現看似真的 CAPTCHA 驗證、要求使用者點二次來完成「驗證」。
- 在點選期間,主惡意網站利用 JavaScript Windows Location 物件將用戶偷偷導向惡意網頁(因為重複點選已同意了惡意 OAuth 應用程式執行)
- 同時間,假視窗關閉,使用者在不知情下已在確認對話框中同意惡意網站存取使用者帳戶。
Yibelo 表示,由於大部網頁 App 和框架都假設只有單一強迫點選是有問題的,不會去防雙點選的網頁。 DoubleClickjacking 就是利用這點。因此 X-Frame-Options 、 SameSite cookies 、 CSP 等,都防不了這類攻擊。 Yibelo 表示 DoubleClickjacking 是常見攻擊的變化版,利用重複點選的事件時間空白,在一眨眼時間內將合法的 UI 元件換成了惡意元件。
網站擁有人可以使用用戶端防護來避免攻擊:預設關閉按鍵,除非有偵測到滑鼠和按鍵動作。而一些服務,如 Dropbox 已能防禦雙點選劫持攻擊。
更長治久安的方法,是瀏覽器業者應採用像是 X-Frame Options 的新標準來防範 DoubleClickjacking 。
發現新手法的這名研究人員一年前也發現另一種點選劫持手法,稱為跨視窗劫持(cross windows 或稱手勢劫持 gesture-jacking)。它是誘騙受害者在攻擊者控制的網站上長按 Enter 或空白鍵以啟動惡意行為。這類攻擊是可讓原先已登入 Coinbase 和 Yahoo! 網站的用戶,長按 Enter/空白鍵後被導向惡意網站,並同意攻擊者設立的 OAuth 應用程式存取用戶帳號。
