一、 币圈不眠夜

3月7日,女生节,同时也是一个不平凡的日子。晚上,小白在电脑面前无聊地上网冲浪,偶尔看看区块链的行情。

大概23点左右,他发现VIA币的行情成了一条垂直向上的红线,仔细一看,VIA币居然涨了100倍!这是什么概念呢,如果之前手上有一千 RMB的VIA,那么它现在是十万,如果是一万软妹币,那么现在变成一百万……还没等小白反应过来,两分钟之后,红线垂直跌落,回到了之前的水平。小白一脸黑人问号,这是神马情况!

而他不知道的是:在世界上的另一个角落,有那么一群黑客正打开香槟庆祝。。。

那么,这到底是怎么一回事呢?下面将从上帝视角还原整个事情的过程:

1. 埋伏草丛

3月7日之前,黑客们(下称“小黑”)做了很多工作,来为攻击做准备。

Step 1——在一两个月前,小黑通过Unicode钓鱼的方式盗取了很多币安账号(下称“肉鸡”)与相对应的API Key,并绑定了自己的自动交易程序(API Key可以理解为绑定自动交易程序所需的密码),以便后续操作。

Step 2——在3月7日之前,VIA一直属于小币种,没什么人关注,价格也比较低,大概是0.0015 RMB的单价,于是小黑持有了大量的VIA币,以便后续操作。

Step 3——小黑把持有的这些VIA币分别充值到31个币安账号里,然后都挂出很高价格的卖单,比如一个VIA卖它个0.15 RMB的比特币,100倍的天价,虽然肯定被骂SB,但也是以便后续操作。

2. 全军出击

晚上23点左右,在简短的祈福仪式之后,小黑戴上必胜头巾,开始操作:

Step 1——启动自动交易程序,通过自动化下单的方式,将肉鸡们所有小币种全部换成比特币。

Step 2——批量将肉鸡们的比特币高价买入大量VIA币,这时之前挂的高价VIA币卖单被“抢购一空”,小黑31个账号上的VIA币顺利以100倍的价格换成比特币。

Step 3——秀了一把操作之后,小黑本可以马上提币离场,留下一个深藏功与名的背影,但是2分钟内的VIA/BTC对交易异常,触发了币安的自动风控机制:于是,币安暂停了提币功能——小黑31个账号上的比特币被冻结了。

3. 去中心化攻击

正当大家都以为小黑将无功而返时,没有人发现,在币安这个全球第二大交易所的行情影响下,其它交易所VIA的价格也被同步拉高,而比特币则应声暴跌。。。

而小黑在全军出击之前,已经考虑到B方案:在其它交易所“做空单”。

【举个栗子说明“做空单”】

比如我预测比特币将会下跌,那么我可以通过“借”的方式借来10个比特币(比如这时价格是十万一个,总价是一百万),并承诺借期到达之时,归还2%的利息。借到之后我就全部卖出去,得到一百万。借期达到,比特币果真跌了20%(这时价格是八万一个,总价是八十万),那么,我用八十万买回10个比特币,再还回去,这时收益就是获利的20万减去利息。

最终小黑在其它交易所的“做空单”顺利完成,而根本不需要在币安上提币,就能完成收割。此次攻击的中心为币安,但却从其它交易所获利,可谓是去中心化攻击

据币圈人士大胆猜测,小黑当晚交易了超过一万个比特币。按照当时的市价,相当于七亿人民币!而受此事影响,比特币暴跌10%。目前世界上共1700万个比特币,换句话说,在小黑的逆天操作下,比特币这个“公司”一夜蒸发了170亿美元。

去中心化攻击.jpg 

各种高大上的金融操作暂且不论,这次主要侃侃事发源头——Unicode钓鱼

二、有哪些姿势“钓鱼”

先说下钓鱼,钓鱼就是三步走:准备诱饵,放到水里,坐等鱼上钩。对比学习下网站钓鱼:

【准备诱饵】

开发仿冒的网站域名,欺骗用户。举几个例子就明白了:

1、链接欺骗

经常会看到这样的钓鱼信息:恭喜您的淘宝账号中奖了,奖品是Iphone X一台!

点击此处查看详细信息    ——其实点击之后跳转到百度

或者如下

https://www.taobao.com/?spm=a21bo.2017.201859.2.5     ——其实点击之后跳转到百度

2、相似字符

仿冒:taoba0.com、goog1e.com、applechinaid.com ……

官方:taobao.com、google.com、apple.com……

3、子域名欺骗

taobao.abc.com、www.apple.w-dis.com

www.app-icloud.comwww.apple-icloud.com

4、Unicode编码

简单来说,就是利用Unicode编码方式,使得仿冒的域名跟官方的一模一样或者相似度达95%以上,比如以下两图就能找出跟英文字母相似或一样的字符,而它们分别是拉丁文、俄文。

七亿元学费,教你Unicode钓鱼攻击七亿元学费,教你Unicode钓鱼攻击

【放到水里】

这里指的是传播的渠道,仿冒的网站,要想针对性的投放到用户群中,黑客们会使用这样的一些投放手法,例如

QQ、微信等即时聊天工具;

微博、博客等社交平台;

搜索引擎的广告投放;

直接发送钓鱼邮件;

手机短信发送网址链接等。

【坐等鱼上钩】

用户进入仿冒网站,通过网站内容,诱使用户输入账号、密码、验证码等信息,然后盗取用户的这些敏感信息。

三、此次Unicode钓鱼是怎样实现的

也许大家会奇怪,币安上不是有二次认证(手机短信或谷歌认证),那是怎么绕过的,答案是自动交易程序。本来每次交易都需要二次认证的,但是如果接入自动交易程序,那么只需要刚开始成功用API Key(可以理解为密码)接入,后续的操作则无须再通过账号密码、二次认证。配合Unicode钓鱼,小黑收割了不少币安账号,简述下流程:

Step 1

币安仿冒网站如下图,足以以假乱真,不放大图片看的话,你不会发现“binance”中间的两个“n”都有两个小点在“n”下面,跟英文字母“n”根本不是一回事,再加上页面内容跟币安官网的内容一模一样,人们根本不会注意到异常,于是输入了账号、密码。

七亿元学费,教你Unicode钓鱼攻击

                                                                                    图片来源于网络

Step 2

小黑在获取到账号、密码后,同步输入到官方的币安API接口,并申请接入自己的交易机器人,这时需要二次认证码;

Step 3

仿冒网站在输入账号、密码之后,要求用户输入二次认证码,在没有意识到异常的情况下,用户按照要求照做了。。。

Step 4

小黑得到了二次认证码,成功接入自己的自动交易程序,以便后续操作。

四、Unicode钓鱼模拟攻击

下面将通过仿冒 ape.com这个网站和其域名,来模拟Unicode钓鱼。

官网网站域名:ape.com

仿冒网站域名:◤аре.com◢

 其中,前者的“ аре ”和后者的 “ ape ” 三个字母虽然看上去一样,但对于计算机来说都不一样,6个字母的编码如下表所示:

七亿元学费,教你Unicode钓鱼攻击

1、先来看看官方网站,嗯~人畜无害的样子:

七亿元学费,教你Unicode钓鱼攻击

2、构造“ape”的Cyrillic编码

七亿元学费,教你Unicode钓鱼攻击 

3、把构造得到的钓鱼网站◤аре.com◢复制到本机的Hosts文件中(注意是三个字母都编码的url),对应127.0.0.1(Hosts文件路径如下:C:\Windows\System32\drivers\etc)

这样一来,一旦通过浏览器进入◤аре.com◢ ,就会跳转到 127.0.0.1 默认web端口的默认页面,以模拟现实情况下网站钓鱼的情况。

七亿元学费,教你Unicode钓鱼攻击

4、把得到的仿冒网站域名◤аре.com◢复制到最新版的Firefox浏览器(版本号为59.0.1)中,单击回车键跳转,可以发现域名跟官方的一模一样,通过肉眼……真……的……看……不……出……来……

而实际上已经进到我自己的页面,嗯~同样是人畜无害的样子,不过为了区分,我在上面加了一行毫无违和感的大字。。。可以发现,跟127.0.0.1/inde.php上的网页一致,即成功骗自己进入了仿冒网站,后续的猥琐操作就不演示了。

七亿元学费,教你Unicode钓鱼攻击

七亿元学费,教你Unicode钓鱼攻击

为什么会出现这个漏洞呢?

目前,许多主流浏览器都能实现这样的功能:当域名包含多个不同语言的外文编码时,浏览器都能主动提示和防御。但是当整个钓鱼网站的IDN域都是由一种外文编码组成,例如上文的◤аре.com◢,火狐浏览器就识别不了了。。。

其它浏览器会出现这个问题吗?

目前测试了三个主流浏览器,其中65版本的Chrome、IE 11,都能自动完成识别,并将IDN域以“Punycode”的形式显示。原理也比较简单:当非 ASCII 字符出现在IDN域里,会用“ Punycode”进行 转码,结果就会出现“xn--”开头的一串字符。而最新版的火狐浏览器则还没解决这个问题。

七亿元学费,教你Unicode钓鱼攻击

五、针对域名钓鱼的防护方法

互联网世界的主机、软件就是这么单纯,并不像它的创造者那么复杂,创造者给的设定是怎样,它们就怎样执行,所以很容易被不法分子利用。安全的问题其实就是人与人之间的利益问题,只要利益存在,那么安全漏洞将会层出不穷。。。

一不小心唠叨了几句,回到正题,对于防护,建议如下:

1、注意浏览器状态栏的实际网址,而如果是链接形式跳转到网址,可右键鼠标,查看链接“属性”。

2、对于一些不得不访问,但是有所怀疑的网站,可以查网站域名的whois信息、排名情况(www.alexa.cn)、备案情况(工信部官网备案管理系统),一般钓鱼网站很难在这些信息上面面俱到。

3、保存关键、重要的网站地址到收藏夹,并尽量不要从其它渠道(邮件、搜索引擎等)进入。

4、升级浏览器,比如用最新Chrome浏览器,而如果是火狐浏览器用户,可以下载并使用IDN safe等相关插件,这将使Firefox以“Punycode”形式显示IDN域,从而可以识别恶意域名。

5、提高安全意识,涉及账号、密码、验证码的操作一定要谨慎再谨慎!

希望这次的事件,能引起大家对信息安全的重视。

时刻牢记安全无小事,防微杜渐是关键!

*本文作者:进击的大熊2018