一行代码造成的漏洞,蒸发了64亿元人民币。

发布时间:4个月前热度: 312 ℃评论数:

4月22日中午,有黑客利用以太坊 ERC-20智能合约中BatchOverFlow漏洞攻击BEC(美链的代币“美蜜”)智能合约,成功向两个地址转出了天量级别的 BEC代币,导致市场上海量BEC被抛售。此事使得当日BEC的价值几乎归零。64亿人民币瞬间蒸发。




4月25日,仅仅三天后,另一个智能合约SmartMesh(SMT)曝出漏洞,交易所表示,因SMT出现异常交易,各交易平台暂停SMT的充提和交易。




现实世界里,财物失窃尚能够通过立案侦查追回损失。但是在互联网的世界里,尽管数字货币“钱途”无量,一旦被黑却血本无归。


01


1小时,币值跌94%



智能合约,是指以数字形式定义的承诺,合约参与方可以在上面执行这些承诺的协议。简单来说,就是利用区块链的技术,大家共同约定,当一定条件被满足的情况下,可以被自动执行的合约。目前区块链最常用的智能合约平台是以太坊,谁都可以根据以太坊的ERC20标准分发代币(Token)。

 






美链BEC于2018年2月在虚拟数字币交易平台OKEx上线,曾被业内认为是美图发行的数字货币,但美图否认了这点,只承认有合作。但因有此渊源,上线后,价格一度暴涨40倍。出现异常的4月22日,BEC当天最高价为2.27元,最低价0.137元,价格最高浮动率达94%。





浙江台州的蒋先生进入币市5年,接触数字货币十余种。此次BEC合约漏洞被攻击,也是蒋先生第一次遭遇这类事情。4月22日中午,蒋先生以每个币0.32美元的价格入手了2000个BEC币(价值约4000人民币),没想到时隔不到一个小时,币价跌近0元。


   


据《IT时报》记者了解,这是基于ERC20标准的代币首次出现智能合约漏洞,而造成如此大损失的原因仅仅是程序编写者自身不严谨,调用函数时一行非常简单的代码写错所致。


   


从事区块链安全防护的众享比特市场总监陈鸿刚告诉记者,在智能合约中,设计者一般会在代码中插入一笔转账函数,这个函数应当保证转出的账目小于等于钱包中原有账目。但是此次BEC出现的漏洞,使转账者在设计一笔特大转账数额时,函数计算结果为0,这就导致黑客可以向自己的钱包中转入任意巨额的数字货币。




02


智能合约不安全?



针对此次攻击,OKEx官方网站表示,将采取发行另一种新币的对策,对原有BEC按照一比一比例兑换,用户账户状态将依照被攻击前的网站映射进行还原,原有合约永久废除。“就像你的车子坏了,厂家根据原来的汽车配置给你造一辆新车。”陈鸿刚颇为形象地比喻。





据腾讯玄武实验室的信息安全人员宋凯透露,其实很多虚拟货币交易在过程中都出现过安全问题,事后的解决方案大多是回滚,也就是将交易数据回溯到攻击之前的状态。这样的补救措施只能使用户账户中拥有同样数量的新币,但因为攻击导致BEC币价大跌,事实上,用户并没能真正挽回损失。


   


此事发生后不久,PeckShield团队利用自动化系统扫遍了以太坊上诸多智能合约并对它们进行分析。结果发现,有超过12个ERC-20智能合约都存在BatchOverFlow安全隐患。




4月25日,OKEx官微发出“关于暂停SMT交易和提现的公告”,指出当日4时左右,SMT出现异常交易。截至发稿,平台尚未给出异常交易的具体情况。


03


根源:“天下代码一大抄”




之所以如此多的智能合约出现同类漏洞,其背后是混乱的数字代币发行现状。




尽管国内早已严格禁止ICO(数字货币发行),但这反而让一些“有心人”在国外找到了躲避监管的方式,而通过智能合约发行代币的代价,已经低之又低。




一位从事区块链技术的创业者告诉《IT时报》记者,一个程序员只要花5分钟,从网上抄一些智能合约代码,稍做修改,就可以发行一个代币。如果再写个白皮书,找几个知名顾问站台,就可以在数字货币交易所里发行几千万甚至上亿的项目。




由于这些数字货币交易所注册在海外,国内很难对其进行监管,因此显而易见的是,上交易所发行代币变得越来越容易,以往对发币团队相对严格的审核,现在都被有意无意地忽略了。




既没有交易所的监管,又抱着“一夜暴富”的期待,这些发币团队的技术实力、对安全的防范意识,自然很难得到保证。




陈鸿刚认为,好的代码应当经过非常严格的测试,倘若投资者无从判断代币发行团队的水平,就要尽可能选择相对主流的币,或者经过一段时间市场考验的币来进行投资。但是在数字货币的世界里,各种漏洞都潜伏其中,投资者需要做好漏洞随时暴露的心理准备,同时,平台自身的资质,也是投资者需要仔细考虑的重要因素。

一行,代码,漏洞,人民币

手机扫码访问