网络钓鱼能让坚定的技术拥趸抓狂。一次错误点击,可能就是几千万的金钱损失,或者造成公司数据泄露。而且,网络钓鱼进化频繁。
最近出现的一个例子就是,狡猾的新漏洞利用程序,可以让恶意网络钓鱼网站具备与已知可信网站一模一样的URL。
现在大家都知道要检查浏览器地址栏的绿色小锁头,看看是否启用了TLS加密。看到这个小锁头,你就知道没人能窃听你提交的任何数据了——这对金融和医疗网站而言是一个特别重要的考量。但是,能够冒充合法URL并绘制小锁头的恶意网站,就几乎不会给出你正在访问冒充者的任何提示了。
同形异义字
该漏洞利用了很多域名没有使用拉丁字母(比如中国汉字或斯拉夫语)的事实。基于英文的浏览器遇到这些URL时,会用Punycode域名编码,从在线文本标准Unicode维护的标准字符编码库中,对每个字符进行渲染。这个转换过程就被攻击者利用了。
网络钓鱼者可以给出看起来很熟悉但实际上指向不同URL和Web服务器的域名。因为站点看起来可信,诱骗用户加载了虚假页面的攻击者,可以更容易地说服他们回答问题或提供个人信息。
此类URL字符操纵行为,被称为同形异义字攻击,而且数年前便出现了。互联网网络号分配机构之类的组织与浏览器开发商合作,创建包括Punycode自身在内的防御机制,让URL欺骗更难进行。
但是,该攻击的新变体层出不穷。Web开发者郑旭东(音)在今年1月向谷歌和Mozilla报告了该漏洞利用,并于上周五进行了公开演示,创建了虚假Apple.com网站,在没打补丁的浏览器中看起来就是合法安全网站。
苹果Safari、微软Edge和IE对此攻击有了防护。本周放出的Chrome版本59也修复了该漏洞。但火狐开发商Mozilla还在衡量是否要发布补丁。该公司尚未就评论请求做出回复。
在此之前,你可以通过复制粘贴URL到文本编辑器中,来检查网站的有效性。冒充的URL仅仅是看起来熟悉,实际上却用的是以“www.xn--”开头的地址,在浏览器地址栏外面就能看到。比如说,郑旭东演示的虚假苹果网站,其地址就是 www.xn--80ak6aa92e.com。想要让这个地址获得“https”安全可信状态,郑旭东需要做的,仅仅是从 Let’s Encrypt 这样的实体申请TLS加密。
在地址栏输入“about:config”,出现的属性列表中搜索“network.IDN_show_punycode” ,右键点击唯一的搜索结果,选择第一个菜单项“Toggle”,将偏好值从默认的“false”改为“true”。
去钓鱼吧
鉴于网络渔夫对www.app1e.com之类域名的钟爱,Punycode招数看起来似乎攻击效力强大。但网络钓鱼研究和防御公司PhishMe首席技术官艾伦·西格比称,他的公司并未发现该骗术的任何野生实例。该公司检查过的暗网预制网络钓鱼工具包中,也没有发现任何用于执行该骗术的工具。
这并不是说此漏洞利用就真的销声匿迹了,可能只是网络渔夫觉得这招不太可靠而已。因为浏览器自动填充机制和口令管理器不会自动补全被冒充的网站。即便用户没发现,此类工具也知道URL不对劲。
总会有种针对每个网络钓鱼技术的技术性控制,而该控制措施最终也会被骗。网络钓鱼的生存空间就在于此。
随着该攻击方式的公开,其使用可能会迎来一波激增,对更具创造性版本的进一步研究也会增加。因此,在Chrome更新之前,盯紧自己的URL,以及网站试图呈现给你的任何诡异的东西。