交易所内心OS:为什么被盗的总是我?

钱包攻

交易所

合约

被盗

区块链

加密币:我被盗,我也很绝望

基于目前世界各国对加密货币的态度不尽一致,在区块链货币领域黑客几乎可以为所欲为很猖獗。加密货币就不断遭遇黑客的攻击,很是令人头痛。

继前些天币安被盗风波后,昨天又被爆出CoinPark比特币被盗,虽然二者前后都澄清说是谣言,不过交易所被盗被黑事件全球范围内还是屡见不鲜的。

无独有偶,我们邻国7月11日消息,由于没有采取足够措施帮助阻止加密货币交易所遭受黑客攻击,韩国政府受到民众批评。监管机构相关数据显示,在经过政府检查后,三家加密货币交易所发生黑客事件,造成近1亿美元的损失。

很多人表示疑问:区块链不是号称最安全的技术嘛?为何会被黑客攻击如此频繁,并屡试不爽?

其实一般来说,区块链系统由数据层、网络层、共识层、激励层、合约层和业务服务层组成。

注释解析:

l数据层封装了底层数据块区以及相关的数据加密和时间戳等技术;

l网络层则包括分布式组网机制、数据传播机制和数据验证机制等;

l共识层主要封装网络节点和各类共识算法;

l激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;

l 合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;

l业务层则封装了区块链的各种应用场景和案例。

该模型中,基于时间戳的链式块区结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。

经过对区块链技术的各个层面进行纵向剖析,并针对上述层次的不同“角色”进行安全性分析后,我们发现目前攻击者通常从两个点出发:

1. 交易平台、在线钱包等。

2. 智能合约、共识机制等。

总的来说除了交易所黑客爱光顾攻击之外,在智能合约和数字钱包领域神出鬼没,同样影响深远。

黑客攻击这几项除了有利可图以外,也因为相对于其他层面说来这几项可钻入的空隙更多

就拿数字钱包来说:

数字钱包从设计、发布、下载、安装、运行的途中但凡出现问题,均有可能中招。

比如,是否通过官方渠道下载钱包,如果从第三方软件平台下载,会不会下载到有恶意插件的?即便通过官方渠道,是否处于安全的wifi环境?即便网络环境没问题,官方渠道的下载地址会不会遭到攻击?就算这些雷一一避开,数字钱包本身是否可靠?厂商有没有为了使用便捷而忽略安全运维?厂商是否具备安全存储用户私钥的能力?

每一环都可能成为致命的伤害。

交易平台、智能合约:

交易平台和智能合约很大问题是硬伤,技术存在很大漏洞并且和利益有直接的牵扯,在黑客眼里那就是垂涎欲滴的大肥肉。金库里开了个小口诱惑你,你能忍住不去把小口挖大再进去偷钱?

举例:

以太币的历史上,出现的第二次被盗的重大事件(上一次是DAO项目被盗)。黑客的帐户已经从三个知名的ICO项目中窃取了153,037个以太币,他们分别是Edgeless Casino,Swarm City,æternity blockchain。该漏洞最初由Parity团队报告,受影响的是多重签名的钱包合约。

漏洞解释

黑客向每个有漏洞的合约发送了两笔交易

第一笔交易用来获取多重签名钱包的拥有权限,第二笔交易是转移合约上的全部资金。

我们可以看到第一笔交易调用了函数initWallet(WalletLibrary的第216行):

这个函数可以为将多重签名钱包的初始化过程转移到walletLibrary中。这和我们过去所讨论的代理库模式一样,钱包合约将没有匹配到的函数通过delegatecall转发到walletLibrary中。代码在wallet的第424行中:

这使得walletLibrary中的公共函数可以被任何人调用。包括initWallet函数(它可以改变合约的拥有者)。更加不幸的是,initWallet没有做任何检查,防止黑客在合约初始化后再次调用它。黑客利用这一点,只需将合约的m_owners变量(记录合约拥有者)更改为包含黑客地址的一个列表,只需要一个确认就可执行任何交易。

之后,剩下的事情就是调用execute函数将合约上的所有资金发送到黑客控制的帐户上。

这次调用是被自动授权的,因为黑客是多重签名合约的的唯一拥有者。

结论

这个智能合约犯了2个重大错误,一,没有杜绝重复调用合约构造函数。二,使用了delegatecall这种完全转发机制。

关于区块链安全性的话题不会中止,只会随着区块链的火热引起更广泛的讨论,讨论区块链是否安全,讨论为何黑客选择攻击,讨论如何应对黑客攻击,这些都将随着技术的更新而进一步得到解答,得到完善解决,我们拭目以待。

欢迎大家在评论区踊跃发表自己的看法或观点

九哥可聊可撩! 可正经可搞笑,有干货也有废话!

JGY

九个亿财经

服务号

带您进入

区块链的世界

欢迎关注

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180711B1BQ1T00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券