Paulos Yibelo
现今多数网站都已加入防范点击劫持(clickjacking)攻击手法的措施,不过安全研究人员揭露此类攻击的变种版,能绕过既有防护而攻击网站用户。
点击劫持攻击已流行逾十年,它又叫UI覆盖(UI Redressing)攻击,原理是攻击者将恶意页面或恶意视窗覆盖在正规页面或视窗上,让不知情的用户点入,以导向恶意网站或下载恶意程式。但近年现代浏览器都已经加入防制措施,它们将所有cookies预设为「SameSite: Lax/Strict」防止第三方网页cookies或Header预设加入「X-Frame-Options」防止内嵌不明网页等。这些能成功防止大部份点击劫持攻击。
研究人员Paulos Yibelo说明新的点击劫持,他命名为双点击劫持(DoubleClickjacking)。和原始攻击方法不同的是,这方法利用二次连续的点击,并说能绕过所有已知的点击劫持防护,不论是SameSite: Lax/Strict或是X-Frame-Options header,而且可能在许多网站都可行。
这手法原理是二次点击的时间点和顺序。首先,攻击者建立一个主要(恶意)网页,上有按键,诱骗用户按下读取回馈或看影片。当他按下按键时,会跳出新视窗盖住原有网页,新视窗要求使用者完成任务,例如CAPTCHA。同时间,攻击者声东击西,原有网页上的JavaScript将主要(恶意)网页换成攻击者想要登入的目标合法网站,例如网银或Gmail。
新跳出的CAPTCHA视窗会要求用户双击,这双击分别有作用。这视窗页会听取mousedown 事件,当它听到第一声点击即迅速关闭CAPTCHA视窗,曝露出已被置换的合法网站。用户的第二点击会让自己按到授权按键,他可能同意了某些事,但他并不知情。
Yibelo说,透过这攻击手法,攻击者可以让受害者同意安装外挂、让OAuth应用程式连到自己的帐号,或是关闭安全设定如多因素验证(MFA)、删除帐号、同意汇款、同意存取等目的。
DoubleClickjacking攻击能影响几乎所有网站。安全研究人员贴出的示范影片显示能劫持Slack、Shopify和Salesforce帐号。此外,新手法也能影响浏览器外挂,如加密货币电子钱包,或是VPN。
防范措施
最后,为防止新种点击劫持,研究人员说,加入用户端防护可避免攻击,像是预设关闭按键、上传键,除非侦测到用户滑鼠和按键动作,否则不得启动行为。研究人员说,已加入防护的网站包括Dropbox、Stripe 和GitHub。
研究人员表示,长期而言,浏览器应该要采用新的技术,例如第一代X-Frame-Options或 frame-ancestors防护第一代点击劫持。例如伺服器header要能告诉浏览器禁止在二次点击期间置换网页视窗、防止UI覆盖,云端业者的伺服器header也应考量此类情境。若浏览器业者还没有这类技术,处理OAuth验证、支付验证等高权限行为的网页开发则应加入防范script。