关注网络安全
和行业未来

新型钓鱼攻击:在Chrome、Firefox和Opera的眼皮下暗度成仓

中国信息安全研究人员@郑旭东发现了一种新的“几乎不可能检测到的”钓鱼攻击。他宣称,该漏洞甚至可以骗过互联网上最谨慎的用户。黑客可以利用Chrome、Firefox和Opera浏览器中的已知漏洞使他们的假冒域名显示为合法网站,如苹果、谷歌或亚马逊,以此从用户那里窃取登录信息、财务凭证或其他敏感信息。

通常情况下,对钓鱼攻击最好的防御手段是检查浏览器地址栏,看是否为有效的HTTPS链接。但这样真的就安全了吗?请看下图:

你可能会说,欸这人家域名看起来没毛病,还带着安全链接标记,怎么就成钓鱼网站了?

但这恰恰就是个冒牌货呀!“不仔细检查网站的URL或SSL证书的话,就无法看出网站是否为假冒的了。”郑旭东在博客中说道。

如果你的浏览器地址栏显示带有安全SSL标志的“apple.com”,而页面内容却来自另一个服务器(就像上图显示的那样),那说明你的浏览器易受同形异义字攻击。

来自Wordfence的安全专家还创建了另一个概念验证网站来证明浏览器的这一漏洞。这个网站假冒的是“epic.com”域。

同形异义字攻击在2001年开始为人所知,浏览器厂商一直在试图解决这个问题。它是一种伪装攻击,网站地址栏看上去是合法的,但其实不是。因为地址中的一个或几个字符被伪装的Unicode字符替换了。

对这一点你了解多少并不重要,任何人都可能变成这种“几乎不可能检测到的”钓鱼攻击的受害者。

在国际化域名中,很多代表希腊、西里尔和阿美尼亚字母表的Unicode字符,不仔细看的话,看上去与拉丁字母没有区别,但计算机却会按照完全不同的网址进行处理。

例如,西里尔字母“а”(U+0430)和拉丁字母“a”(U+0041)会被浏览器作为不同字符处理,但在地址栏中都显示为“a”。

默认情况下,很多浏览器使用“Punycode”编码系统在URL中表示unicode字符,以防止同形异义字钓鱼攻击。Punycode是一种特殊的编码系统,浏览器使用这种编码系统将unicode字符转化为国际域名系统支持的ASCII(A-Z,0-9)有限字符集。

例如,中文域“短.co”在Punycode中表示为“xn--s7y.co”。

按照郑旭东的说法,造成该漏洞的原因是,如果有人选择将域名的所有字符都使用某一种外文字符集,并且与目标域极其相似,那么浏览器将以该种语言而不是Punycode形式返回域名。

这一漏洞使得研究人员可以注册一个xn--80ak6aa92e.com这样的域名,并绕过防御系统,在具有该漏洞的所有浏览器中,都会显示为“apple.com”,这样的浏览器包括Chrome、Firefox和Opera,而IE、Microsoft Edge、Apple Safari、Brave和Vivaldi浏览器没有这一漏洞。

这里xn前缀是指ASCII兼容编码前缀,告诉浏览器这个域使用“punycode”编码系统来表示Unicode字符,因为作者使用西里尔字母“а”(U+0430)而不是ASCII字符“a”(U+0041),所以浏览器的防御机制未能奏效。

郑旭东在今年一月向受影响的浏览器厂商报告了这个发现。目前,Mozilla仍在讨论修复程序,而谷歌已在其试验版Chrome Canary 59浏览器中修复了这一漏洞,并将在稳定版Chrome 58中推出永久性修复程序,该版本定于本月晚些时候发布。

同时,他还建议数百万面临这一难以检测到的复杂钓鱼攻击威胁的互联网用户,在其浏览器中关闭Punycode支持,以临时缓解受攻击的风险,并指出了某些钓鱼域名。

目前,Firefox用户可以在设置中手动关闭Punycode URL转换:

  1. 在地址栏输入about:config并按回车。
  2. 在搜索栏输入Punycode
  3. 浏览器设置将显示参数名:IDN_show_punycode,双击或右击并选择切换,将此参数的值由false改为True

在Chrome或Opera浏览器中没有类似的设置来手动关闭Punycode URL转换,所以Chrome用户只能等待几星期后发布的稳定版Chrome 58去修复这一漏洞。

尽管如此,还是可以在应用商店找到一些第三方Chrome扩展/插件,用户可以安装这些扩展/插件,这样他们每次访问域名中包括Unicode字符的网站时,浏览器就会发出警告。

此外,对于像Gmail、Facebook、Twitter、Yahoo或银行网站等重要网站来说,避免误入钓鱼网站的最佳方法,是在地址栏手动输入网站URL,而不建议通过点击某些网站或电子邮件上的链接,以避免遭受这类攻击。

 

稿源:the hacker news\ xudongz.com\ Graham Cluley

评论 抢沙发