本文讲的是
如何使用Unicode域名进行网络钓鱼攻击?,
如果我告诉你这可能是一个网络钓鱼网站,你会相信吗?来看下这个POC
Punycode是可以注册具有外来字符的域名,它是通过将单个域标签转换为仅使用ASCII字符的替代格式来工作。例如,域“xn--s7y.co”等效于“短.co”。
从安全角度来说,Unicode域可能是有问题的,因为许多Unicode字符难以与常见的ASCII字符区分开来。可以注册诸如“xn--pple-43d.com”的域,这相当于“аpple.com”。乍看起来可能不是很明显,但是“аpple.com”使用 Cyrillic(U + 0430)而不是ASCII“a”(U + 0041)。这被称为同源攻击。
幸运的是,现代浏览器通常都具有限制IDN同形体攻击的机制。 Google Chrome浏览器中的页面IDN突出显示了以其原生Unicode格式显示IDN的条件。在Chrome和Firefox中,如果域标签包含来自多种不同语言的字符,Unicode表单将被隐藏。如上所述的“аpple.com”域将作为“xn--pple-43d.com”以其“Punycode”形式出现,以限制与“apple.com”的混淆。
但不幸的是,当每个字符都被替换为单一外语的类似字符时,Chrome(和Firefox的)同形异义保护机制其实是失败的。注册为“xn--80ak6aa92e.com”的域“аррӏе.com”只能使用Cyrillic字符绕过过滤器。你可以使用Chrome或Firefox在POC中自我检验。在许多情况下,Chrome和Firefox中的字体使这两个域在视觉上无法区分。在不仔细检查网站的URL或SSL证书的情况下,是无法将该网站识别为欺诈。这个程序很好地展示了两组人物之间的区别,Internet Explorer和Safari则幸运的并不容易受到攻击。
截图:Chrome,Firefox,Firefox SSL
这个问题是在2017年1月20日被报告给Chrome和Firefox,并于3月24日在Chrome 59(当前在Canary)的中继线被修复。Chrome团队自此决定将修补程序包含在Chrome 58中,应该可以在4月25日左右发布,但Firefox仍然未解决这个问题,因为这一问题的具体范围仍然未定。 Bugzilla将问题最初标记为“RESOLVED”和“WONTFIX”,尽管它已被重新进行了解读,并且被公开,但他们仍然只是给出了“sec-low”关键字。
我们的IDN威胁模式特别排除了全部脚本同形异义,因为它们无法以编程方式进行检测,我们的“TLD白名单”方法在面对大量新TLD时并未进行扩展。如果你在没有适当的防欺诈保护(如.com)的注册表中购买域,那么可能需要感到遗憾的是,域名的所有者有责任检查整个脚本的同形异义并进行注册。
目前Firefox用户可以通过以下方式限制他们对此漏洞的访问:配置并将network.IDN_show_punycode设置为true。这将迫使Firefox始终以其“Punycode”形式显示IDN域,从而可以识别恶意域名。
事实上还有一个简单的方式来限制这种问题的损害——就是始终使用密码管理器。 一般来说,用户必须非常小心,并在输入个人信息时注意URL。 我希望Firefox会考虑实施这个问题的解决方案,因为即使是那些非常注意网络钓鱼的人也会引起严重的混淆。
原文发布时间为:2017年4月18日
本文作者:Change
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。