*本文作者:进击的大熊2018,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。
一、 币圈不眠夜
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亿美元。
各种高大上的金融操作暂且不论,这次主要侃侃事发源头——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.com、www.apple-icloud.com
4、Unicode编码
简单来说,就是利用Unicode编码方式,使得仿冒的域名跟官方的一模一样或者相似度达95%以上,比如以下两图就能找出跟英文字母相似或一样的字符,而它们分别是拉丁文、俄文。
【放到水里】
这里指的是传播的渠道,仿冒的网站,要想针对性的投放到用户群中,黑客们会使用这样的一些投放手法,例如
QQ、微信等即时聊天工具;
微博、博客等社交平台;
搜索引擎的广告投放;
直接发送钓鱼邮件;
手机短信发送网址链接等。
【坐等鱼上钩】
用户进入仿冒网站,通过网站内容,诱使用户输入账号、密码、验证码等信息,然后盗取用户的这些敏感信息。
三、此次Unicode钓鱼是怎样实现的
也许大家会奇怪,币安上不是有二次认证(手机短信或谷歌认证),那是怎么绕过的,答案是自动交易程序。本来每次交易都需要二次认证的,但是如果接入自动交易程序,那么只需要刚开始成功用API Key(可以理解为密码)接入,后续的操作则无须再通过账号密码、二次认证。配合Unicode钓鱼,小黑收割了不少币安账号,简述下流程:
Step 1
币安仿冒网站如下图,足以以假乱真,不放大图片看的话,你不会发现“binance”中间的两个“n”都有两个小点在“n”下面,跟英文字母“n”根本不是一回事,再加上页面内容跟币安官网的内容一模一样,人们根本不会注意到异常,于是输入了账号、密码。
图片来源于网络
Step 2
小黑在获取到账号、密码后,同步输入到官方的币安API接口,并申请接入自己的交易机器人,这时需要二次认证码;
Step 3
仿冒网站在输入账号、密码之后,要求用户输入二次认证码,在没有意识到异常的情况下,用户按照要求照做了。。。
Step 4
小黑得到了二次认证码,成功接入自己的自动交易程序,以便后续操作。
四、Unicode钓鱼模拟攻击
下面将通过仿冒 ape.com这个网站和其域名,来模拟Unicode钓鱼。
官网网站域名:ape.com
仿冒网站域名:◤аре.com◢
其中,前者的“ аре ”和后者的 “ ape ” 三个字母虽然看上去一样,但对于计算机来说都不一样,6个字母的编码如下表所示:
2、构造“ape”的Cyrillic编码
3、把构造得到的钓鱼网站◤аре.com◢复制到本机的Hosts文件中(注意是三个字母都编码的url),对应127.0.0.1(Hosts文件路径如下:C:\Windows\System32\drivers\etc)
这样一来,一旦通过浏览器进入◤аре.com◢ ,就会跳转到 127.0.0.1 默认web端口的默认页面,以模拟现实情况下网站钓鱼的情况。
4、把得到的仿冒网站域名◤аре.com◢复制到最新版的Firefox浏览器(版本号为59.0.1)中,单击回车键跳转,可以发现域名跟官方的一模一样,通过肉眼……真……的……看……不……出……来……
而实际上已经进到我自己的页面,嗯~同样是人畜无害的样子,不过为了区分,我在上面加了一行毫无违和感的大字。。。可以发现,跟127.0.0.1/inde.php上的网页一致,即成功骗自己进入了仿冒网站,后续的猥琐操作就不演示了。
为什么会出现这个漏洞呢?
目前,许多主流浏览器都能实现这样的功能:当域名包含多个不同语言的外文编码时,浏览器都能主动提示和防御。但是当整个钓鱼网站的IDN域都是由一种外文编码组成,例如上文的◤аре.com◢,火狐浏览器就识别不了了。。。
其它浏览器会出现这个问题吗?
目前测试了三个主流浏览器,其中65版本的Chrome、IE 11,都能自动完成识别,并将IDN域以“Punycode”的形式显示。原理也比较简单:当非 ASCII 字符出现在IDN域里,会用“ Punycode”进行 转码,结果就会出现“xn--”开头的一串字符。而最新版的火狐浏览器则还没解决这个问题。
五、针对域名钓鱼的防护方法
互联网世界的主机、软件就是这么单纯,并不像它的创造者那么复杂,创造者给的设定是怎样,它们就怎样执行,所以很容易被不法分子利用。安全的问题其实就是人与人之间的利益问题,只要利益存在,那么安全漏洞将会层出不穷。。。
一不小心唠叨了几句,回到正题,对于防护,建议如下:
1、注意浏览器状态栏的实际网址,而如果是链接形式跳转到网址,可右键鼠标,查看链接“属性”。
2、对于一些不得不访问,但是有所怀疑的网站,可以查网站域名的whois信息、排名情况(www.alexa.cn)、备案情况(工信部官网备案管理系统),一般钓鱼网站很难在这些信息上面面俱到。
3、保存关键、重要的网站地址到收藏夹,并尽量不要从其它渠道(邮件、搜索引擎等)进入。
4、升级浏览器,比如用最新Chrome浏览器,而如果是火狐浏览器用户,可以下载并使用IDN safe等相关插件,这将使Firefox以“Punycode”形式显示IDN域,从而可以识别恶意域名。
5、提高安全意识,涉及账号、密码、验证码的操作一定要谨慎再谨慎!
希望这次的事件,能引起大家对信息安全的重视。
时刻牢记安全无小事,防微杜渐是关键!
*本文作者:进击的大熊2018,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。
来源:freebuf.com 2018-03-26 09:30:10 by: 进击的大熊2018
请登录后发表评论
注册