ERC20代币合约漏洞频发,只是因为这届黑客666吗?

SMT各项指标综合起来,也并非不堪一击的渣滓工程。但SMT依然出现了与BEC同样的低端漏洞。

 |  猎豹全球智库

币圈近日人心惶惶。BEC之后,SmartMesh(SMT)又中招。4月25日,各大交易所纷纷发出公告,暂时停止所有ERC20的币种充值和提现。猎豹评级大数据通过对以太坊智能合约进行扫描,发现了多达十几个其他合约也使用了transferProxy这个引起BatchOverFlow 漏洞的函数,该漏洞让攻击者可以根据需要创建天量代币。

基于猎豹评级大数据的基础数据支持,区块链酋长(id: cmcmbc)今天就来和大家一起好好了解下漏洞是如何发生的,又该如何避免损失,避当接盘侠。

一、熟悉的配方,一样的BatchOverFlow漏洞

ERC20协议是目前数字货币交易体系中较为主流的一种协议体系。ERC20规定了代币名称、代号、发行量、转账等一系列常用的代码规范,只要按照这个规范来设计的代币智能合约,就能在绝大多数以太坊钱包上使用。这个标准使用起来非常方便,几十行代码即可实现完整功能的代币。

在BEC事件中,我们已经了解到,黑客利用以太坊 ERC20 智能合约中 BatchOverFlow 漏洞中数据溢出的漏洞攻击智能合约,就可以成功地转出天量级别的代币,导致该数字货币价值归零,给市场交易带来了毁灭性打击。

而SMT的以太坊智能合约存在与美链BEC代币类似的安全漏洞,遭到与BEC类似的溢出攻击,然后价格跳水。

由于发币容易,目前市面上绝大多数都是ERC20代币。显而易见的是,会有越来越多的黑客盯上这些基于以太坊ERC20的币的漏洞,币圈因此将迎来的震动可见一斑。

二、问题根源:复制粘贴,缺乏审查与测试

以太坊智能合约安全问题,体现出以太坊本身设计上的不够完善,但究其根本是项目团队自身的问题。漏洞事件集中爆发,暴露出币圈项目“代码抄袭”的普遍性和其中的隐患。与此同时,这些低级漏洞的存在也说明了很多项目在编写代币合约时都没有进行代码安全审查和测试。

将地址0x55F93985431Fc9304077687a35A1BA103dC1e081的SMT合约字节码放入猎豹评级项目的安全审计工具检测发现如下结果:

"predictions": [ [ "Bug", 92.8 ], [ "Benign", 7.2 ] ] }

这表示该智能合约代码的Bug概率高达92.8%。

抄袭代码、无安全监测意识和能力的项目想必从表象上就很容易一望而知是山寨货,但此次出事的SMT也有些不大一样的地方。

SMT是由创始人王启亨发起,称将通过结合区块链和无网通信技术,以手机等设备作为其中的共享节点,构建一个去中心化的,并且兼容有网和无网络两种情况的点对点分布式网络。即未来即使没有WiFi和4G,大家也可通过彼此的手机或者其他的 IOT 设备本身进行连接。

就在前不久,SMT入选了由硅谷知名IT首席信息官杂志《APAC CIOoutlook》评选的“2018年度Top10区块链技术提供商”排行榜(简称“世界十大区块链项目排行榜”),被看作是区块链项目中的一匹黑马。

三、SmartMesh项目大起底

酋长在阐述BEC被盗事件的文章中,归纳过判断区块链项目优劣应遵循的几项基本标准。其中包括从官网信息和白皮书中充分了解项目及团队背景,关注项目的社群活跃度和代码实现等等。从这几个方面看SMT项目,可以总结出以下几点:

1. 项目愿景大,实现方案阐述不足

SMT计划通过比特币的Lightning Network解决速度慢的问题,通过以太坊的Raiden Network解决小额支付手续费占比太高的问题,Lightning Network和Raiden Network本身都还不成熟,在SMT白皮书中也没有给出具体的更详细的说明。整体而言,SMT项目的愿景很大,但实现方案阐述不足。

2. 社区建设较好,公关反应迅速

SMT的Telegram人数为4340,根据猎豹评级大数据显示,Telegram人数和发言活跃度在所有加密货币排前30%。而SMT的Medium维护的也比较好,项目的进度和项目相关的事件都会在SMT上沟通。此次漏洞事件SMT也非常及时通过官方微博等渠道发布公告,公布最新进展。

3. 代码实现

SmartMesh在GitHub上有多个项目,包括Spectrum(主网)、SmartRaiden(Raiden Network)以及SmartMesh_Android和Ozone(钱包和接口)。GitHub上的说明显示4月30日上线主网Spectrum项目是基于Ethereum的,主要修改共识算法和区块链奖励规则,并添加IoT的功能。

Spectrum在2017年12月第一次提交到GitHub,有五位贡献者,共完成了131次提交,发布了8个版本。对比猎豹评级大数据中其他项目的GitHub活跃度数据,Spectrum的活跃度排前30%。

总结:

客观来讲,SMT各项指标综合起来,也并非不堪一击的渣滓工程。但SMT依然出现了与BEC同样的低端漏洞。

这也说明,安全漏洞问题在所有项目中都不能100%规避,好项目也同样会出问题,大家还是应该多多关注合约漏洞,仔细甄别各种可见维度,加强自我安全意识。酋长再次友情提醒大家,币圈有风险,谨慎再谨慎!