摘要:前段时间,知名加密货币交易所Binance(币安)遭受黑客攻击,被盗707418枚比特币。一个用来“钓鱼”的假Binance登录界面通常被盗取的信息是用户API密钥,这使得攻击者能够以编程的方式与交易所进行交互,就好像他们自己就是用户一样。...
前段时间,知名加密货币交易所 Binance(币安)遭受黑客攻击,被盗7074.18枚比特币。
尽管其创始人赵长鹏在多次AMA中披露了一些黑客盗币的细节,并承诺使用“SAFU基金”全额承担本次用户的损失,此后也出现了“回滚交易”的争议讨论,但这7074.18枚比特币究竟如何被盗?如今又被转移到哪里?业界并没有详细的深究与讨论。
但国外的这位小哥用 Google BigQuery 好好深扒了一下,发现了不少猫腻。丢掉的7074.18枚比特币还能不能找回来?一起往下看!
事情是怎样的?
如果你了解整个事件,可选择跳过这部分。
对于这次“灾难”,Binance 没有对外发表太多言论。虽然他们已经分享了关于盗窃的一些细节,但对于更细微的细节,他们却仍在保持沉默。
根据他们最近(5月10日)更新的博客,他们正在努力保持最高程度的透明度,但担心分享太多的安全细节会让黑客感到不安,并最终削弱他们自己的安全。
尽管如此,我仍旧认为让社区真正了解到底发生了什么是十分有必要的,因此我将在本文中深入探讨。
活动时间表
以下是我们对事件发生时间的了解。
5月7日下午5:15(世界协调时),7074.18枚比特币从 Binance 热钱包中抽出。
5月7日下午7:00(世界协调时),Binance 关闭了非预定维护的存款和取款。 Cz 向用户保证,基金是 SAFU,交易不会中断。
5月7日11时36分(世界协调时),Binance 宣布了一个安全漏洞,并证实黑客能够从 Binance 热钱包中提取7074.18枚比特币。
5月8日下午12时42分(世界协调时),Binance 限制所有现有 API 密钥只允许交易,并宣布所有现有 API 密钥将在 UTC 时间下午1:30删除。
5月8日下午1:30(世界协调时),Binance 删除所有现有 API 密钥。
这次盗窃和之前有何相似之处?
无论是最近、还是过去的攻击都涉及到 Binance 的 API 和网络钓鱼。
黑客通过将自己伪装成值得信赖的实体,然后欺骗用户泄露敏感信息。
一个用来“钓鱼”的假 Binance 登录界面
通常被盗取的信息是用户 API 密钥,这使得攻击者能够以编程的方式与交易所进行交互,就好像他们自己就是用户一样。
在 Binance 上有3个不同级别的 API 权限:
- 读取ー获得有关持币、交易历史和市场数据的能力。
- 交易 - 执行交易的能力
- 提取ー取出资金的能力
当用户创建一组 API 密钥时,一般情况下,读取和交易权限默认开启,提取权限则被禁用。由于提取权限可能会带来高风险,Binance 要求用户首先设置双重身份验证和 IP 白名单。
在 SYS 和 VIA 攻击期间,攻击者大部分时间都只得到了纯交易访问API密钥。因为攻击者不能从只有交易访问权限的账户中提取资金,所以他们必须首先重新分配资金。
他们是这样做的:
- 首先,在攻击之前,攻击者将目标对准一个易于操纵的交易所。 通常情况下,被攻击目标有着交易量小、订单量也少的特点。黑客会提前购买一些这样的数字货币。
- 然后,攻击者发出限价订单,以荒谬的价格(通常是正常价格的万倍以上)出售他们的数字货币。
- 随后,攻击者利用盗取账户的 API 发送大量购买订单,并以万倍以上的价格在市场的另一边购买自己的数字货币。完成这一步后,他们就有效地将财富从仅具有交易访问权限的帐户转移到了具有提取权限的帐户。
- 最后,攻击者试图从 Binance 取出“战利品”。一旦取出并存入其他地方,就几乎没有人可以扭转交易了。
你可以在 Binance 交易历史中找到证明上述方法的证据。在2018年的 API 黑客攻击中,攻击者通过以提高 SYS 和 VIA 的价格的方式,试图转移前面提到的资金。
如下图,在2018年7月3日和2018年3月6日,SYS / BTC 和 VIA / BTC 的价格和成交量分别出现了异常。
这次有什么不同?
这一次,攻击方式有所不同。根据 Binance 的官方声明,黑客能够获得大量的用户 API 密钥、谷歌验证 2FA 码和一些其他敏感信息。
通过 2FA 码,黑客完全可以启用提取权限,同时禁用 IP 白名单。这一次,黑客不需要冒着被人怀疑的风险而提高数字货币价格,进行多次交易,然后将资金转移,这次攻击更容易。
为了证实这一推理,我从 Binance 的 API 中提取了上个月每小时的交易数据。
如果 API 密钥被用来操纵交易,交易量和货币价格将会出现异常峰值。
交易数据比较
我计算了黑客攻击前30天交易量和价格的每小时最大值,还计算了黑客攻击当天的交易量和价格的每小时最大值。
目的是比较两者,看看黑客攻击当天的每小时价格和交易量是否有所上升。
成交量比较
下表按攻击当天每小时最大值(1D_max)和攻击前30天每小时最大值(30D_max)之间的百分比差排序。
交易量
可以看到,LINK/PAX 在黑客攻击当天的每小时交易量出现了大于3倍增长,但这个数字还没有大到能引起怀疑,特别是考虑到事实上,链接 / pax 的价格没有飙升以及。
价格比较
在黑客入侵的当天,在最极端的情况下,我们也只看到价格上涨了34%。
这进一步说明,此次攻击中黑客没有操纵价格。
交易价格
虽然攻击者可能会在周围进行交易而不会引起注意,但我认为这是不可能的。在不影响价格和交易量的前提下,要转移7074.18枚比特币,需要许多账户,或者说,需要很长时间。
如果是这样的话,长时间的交易活动很可能会引起原始账户所有者的怀疑,用户会觉察到自己的资金正慢慢耗尽。一旦有用户向 Binance 投诉,这将会给黑客们带来灾难。
黑客仍在逍遥法外
比特币的价值和可靠性在很大程度上归功于账本的不可变性。但这也意味着,一旦成功提款,基本上就不可能追回被盗资金。
Binance 证实,黑客能够在这一次交易中提取7074.18枚比特币。我使用 Google BigQuery 查询与黑客有关的交易,并绘制出被盗资金的动向图如下。
圆圈代表钱包地址,线条代表被盗资金流向。圆圈和线宽与两地址间发送的比特币数成正比。
被盗比特币能被追回吗?
据我所知,还不存在 Depth>4 的交易。黑客们正“清洗”被盗的比特币,并将其存在一些固定的地址中。
下面是一个更大的可视化图像,标注了单个钱包地址。
从某种程度上来说,追踪这些比特币的来源是非常不可行的,因为涉及这些被盗比特币的交易数量将呈指数级增长。
目前,有3种常见追踪受污染数字货币的方法。
- Poison(污染):用3枚被盗比特币和7枚正常比特币一起进行交易,取出10枚「被盗」比特币;
- Haircut(削发):用3枚被盗比特币和7枚正常比特币一起进行交易,10个中有30%被标记为「被盗」;
- FIFO(先进先出):用3枚被盗比特币和7枚正常比特币一起进行交易,最先出来的三个被标记为「被盗」。
从长远来看,我认为这些方法都不能奏效。给受污染的货币贴上标签或者加入黑名单,从根本上削弱了比特币的可替代性和抗审查性。我不支持那些试图追回或将被盗比特币列入黑名单的想法。
无独有偶,2019年1月,黑客攻击了新西兰的虚拟货币交易所 Cryptopia,盗取了以 ETH 为主的数字资产(当时价值1,600万美元左右)之后销声匿迹。
近日,随着币价的攀升,该黑客在沉寂了数月后,开始密集的洗钱行动。据 PeckShield 数字资产护航系统(AML)数据显示,近两天来,该黑客已经将4,787个 ETH 转入了火币交易所,而且仍有26,003个 ETH 等待被洗时机。
一图概览黑客洗钱全过程
从上图中可以看到,黑客先将部分数字资产转移到一个地址,再伪装成买家和卖家,在去中心化交易所 EtherDelta 中买卖交易,试图逃避追踪,之后将资产再次汇聚到一起,然后进入火币交易所。进一步的细节如下:
第一步:资产转移
在交易所等巨额资产出现安全问题后往往引来无数媒体关注,所有人都会紧盯资产流向,而此时黑客通常会沉寂数月乃至一年。在认为避开风头之后,抓住一个最佳时机,开始销赃洗钱。
此次黑客估计是被市场回暖唤醒,先将5,000个 ETH 以每笔1,000个的方式转入一个新地址,并以此为起点,开始一轮洗钱操作。如果仔细地看这五笔交易,会发现它们共间隔16小时,而且是在每转出一笔后,再进入后续的伪装成买家卖家操作。可见黑客格外的小心翼翼,先探探头,试试水再说。
第二步:伪装买卖
黑客为了逃避资产追踪,一般会将大额资产,以小额多笔的形式分散到大量的地址中,再在各个地址上进行频繁的分散汇聚。而此次黑客采用了一种新方式,通过伪装成去中心化交易所的买家和卖家,试图以正常的挂单配对交易来逃避追踪。
黑客将每次收到的1,000 ETH,再分散成以约500个 ETH 一笔进入去中心化交易所,开始买卖。从以上两图中发现,黑客以普通用户的方式,不是仅用一两笔,而是通过大量多笔的交易,完成从买家到卖家的资产转移。
伪装买家卖家,买卖 BAT、ELF 代币
下图中可以看到黑客控制多个帐号伪装成买家和卖家将资产倒手,图中是黑客成交的多笔 ELF 和BAT 代币的订单。
具体来看买家在去中心化交易所 EtherDelta 合约上的一条交易(trade)记录
https://etherscan.io/tx/0x15ad9bac4391f5a6e57393ec3dc2418e73790eefb663a219fb1628501f1a31a6
在上图中可以看到买家与卖家的配对交易,紧接着卖家做了提现(withdraw)操作,对应着链上的交易记录截图如下:
https://etherscan.io/tx/0x72917f72dfdfac50ff228f72a402a592ff79934bc5f3d138fd2c1f6c53091192
第三步:再次汇聚,进入交易所
通过去中心化交易所的倒手交易后,黑客已认为能够避免资产被追踪,又将获得的 ETH 汇总到一个地址,并分批次进入火币交易所。
至此,黑客最初的5,000枚 ETH,分批汇聚再进入去中心化交易所,经过倒手买卖,再次汇聚进入火币,看似天衣无缝的操作,实则在链上留下了诸多痕迹。
白帽黑客:一切链上行为皆可循
截至发文时,黑客共计将4,787个 ETH 转入了火币交易所,PeckShield 正协助火币交易所对涉及赃款实施封堵。
目前尚有26,003个 ETH 控制在黑客手中,存在进一步洗钱的可能。PeckShield 正持续追踪黑客下一步的洗钱行踪。
今年1月份 Cryptopia 交易所遭黑客攻击损失共计30,790个 ETH。时隔4个月,当时的 ETH 行情价格也已经翻番了,黑客觉得时机差不多成熟了,开始活跃出来洗钱了。
整体来看,黑客此次行动还是很小心谨慎的,通过分散转移账号、伪装买卖等多种手段来逃离追踪,但区块链世界,一切链上行为都有迹可循,安全公司更道高一丈。
附:黑客主要的洗钱地址:
文章来源:区块链大本营,有删减和新增