EOS频爆漏洞,密码学家Sirer和智能合约之父萨博警示EOS安全漏洞

5月29日,由于中国网络安全公司奇虎360发现了一个严重的漏洞,EOS主网推出被推迟了。康奈尔大学教授,著名的密码学家Emin
Gun
Sirer批评EOS开发人员没有寻求共识协议专家的帮助。在EOS主网发布之后,Sirer和其他加密专家,包括智能合同致富尼克.萨博(Nick
Szabo)都谴责了EOS的代码和中心化问题。Sirer说EOS的问题会变得更糟。在今年5月的一份官方报告中,奇虎360与EOS首席技术官丹尼尔•拉雷默(Daniel
Larimer)分享了他们的谈话,披露了EOS不受约束的写入漏洞。奇虎360团队表示,该漏洞使黑客能够利用和攻击EOS超级节点。在解析WASM文件时,我们发现并成功地利用了EOS中的缓冲区越界写漏洞。通过利用该漏洞,攻击者可以将恶意的智能协议上传到节点服务器,在节点服务器解析该协议后,恶意协议可以在服务器上执行并控制该服务器。在控制了节点服务器后,攻击者可以将恶意合约打包到新的块中,进一步控制EOS网络的所有节点。奇虎360的报告还说,团队最初在5月11日发现了这个漏洞,并在5月28日加以利用。奇虎360向EOS团队披露了这一漏洞,该团队随后“修复”了该漏洞,并在Github上结束了这一问题。然而,5月29日,奇虎360发现漏洞并非完全修复,于是向公众发布了报告。

.wqpc_wechat_view *{max-width: 100%!important;box-sizing:
border-box!important;-webkit-box-sizing: border-box!important;
word-wrap: break-word!important;} 微信号 功能介绍
EOS又爆出重大安全漏洞,与智能合约无关,且官方尚未完全修复。昨天(5月29)中午,360安全卫士官方微博发布消息称,
360公司Vulcan(伏尔甘)团队发现了区块链平台EOS的一系列高危安全漏洞。经验证,其中部分漏洞可以在EOS节点上远程执行任意代码,即可以通过远程攻击,直接控制和接管EOS上运行的所有节点。周鸿祎随后在微博表示,360从年初开始,已经在区块链安全方面做了很多研究,已经做了几个区块链安全解决方案,也包括EOS超级节点安全解决方案。近几个月以来,市场上的公有链项目和虚拟币集中爆发出了一批漏洞,最严重的BEC被直接“归零”,其他遭受严重损失的项目还包括SMT等其他一大批沿用ERC20体系的项目。实际上,在该漏洞被曝光之后,业界还发现了以太坊上多达十几个其他合约也使用了transferProxy这个引起BatchOverFlow
漏洞的函数,该漏洞让攻击者可以通过数据溢出的手段,根据需要创建天量代币,从而将整个代币系统击溃。这次攻击发生在上个月,而就在上周,EDU和BAI也遭遇了黑客攻击。在EDU的智能合约中transferFrom
函数内,未校验 allowed[_from][msg.sender] >= _value 并且函数内
allowed[_from][msg.sender] -= _value; 没有使用
SafeMath,导致无法抛出异常并回滚交易,且由于合约没有 Pause
设计,无法及时止损。黑客利用该漏洞获得了30亿token并成功转手。BAI则表示受到了类似的攻击,而且这个问题可能依然会影响到所有ERC20项目。这已经不是以太坊智能合约第一次出问题了,2016年,the
DAO事件中,黑客利用the DAO智能合约中的漏洞,大规模盗取原the
DAO智能合约中的以太币,对以太坊造成了巨大的打击。这几次攻击事件让整个以太坊和ERC20体系遭遇了前所未有的重大打击。由于所有的漏洞都集中在智能合约上,智能合约又是区块链技术能否进入商业应用(或被称为区块链3.0)阶段的关键,以太坊和ERC20币价也在几天内呈现出下跌的趋势。智能合约频频出现问题的原因很多,但主要可以归结为几点:首先,智能合约是不可逆的,这意味着一旦智能合约被部署,基金会就无法升级或修改它们。因此在部署和使用智能合约之前,需要保证一切都不会出错。其次,智能合约是可公开访问的,存储在智能合约里的内容对任何人可见,而且每个人都可以调用智能合约里的方法,这也让智能合约成为了区块链鸡蛋上的缝。另外,只有上帝写的代码才没有bug。无论多么小心谨慎,让智能合约真正无懈可击几乎是不可能的。最后,在以太坊和ERC20体系中,由于EVM本身的特性,智能合约往往会缺乏形式化验证。这也让智能合约的安全性受到了更大的挑战。在外界纷纷猜测EOS是否出现了和ERC20类似的漏洞时,今天晚些时候,360更新了其技术博客,发布了该漏洞的具体细节。根据技术博客的内容,5月11日360就发现了这个漏洞,并在5月28日将漏洞报告给了EOS。29日,EOS修复了该漏洞,但根据反馈,目前修复了64位,32位仍未修复。在博客中,360表示,这是一个std::vector函数溢出导致的漏洞。在libraries
/ chain / webassembly / binaryen.cpp(第78行)中,函数binaryen_runtime
:: instantiate_module:在POC中,只需设置| offset |
字段设置为0xffffffff,函数就会溢出并崩溃。攻击者可以利用此漏洞在nodeos进程中实现远程代码执行,方法是将恶意合约上传到受害节点,并让节点解析恶意合约。在攻击中,攻击者首先会向EOS主网络发布恶意合约。EOS超级节点解析恶意合约,然后触发漏洞,攻击者即可控制解析合同的EOS超级节点。攻击者可以窃取超级节点的私钥并控制打包的内容。更重要的是,攻击者可以将恶意合约打包成一个区块并发布,最终导致整个网络中的所有节点都受到攻击者的控制。TASChain创始人吴轶群告诉链得得,“这是小毛病,但会造成大问题。这种问题修复起来很简单,但造成的后果可能非常严重。”量子链创始人帅初在朋友圈表示,此次漏洞应该和webassembly新的虚拟机和无gas模型有关,远程代码被vm编译后,被无限执行。他认为,该漏洞在支持虚拟机的合约平台上容易发生,智能合约无限的灵活性也留下了无限的隐患。任何一个小的共识协议的疏忽,都会有机会ddos整个区块链网络。而此次漏洞的根本原因是“ETH和EOS,都不是面向货币的设计,面向区块链平台的设计,复杂度很高,也蕴含更多安全隐患。之前unlimited
btc,也是因为一个共识bug,网络就会被ddos瘫痪。”快的创始人、泛城投资创始人陈伟星则在朋友圈炮轰EOS,称“EOS堪称区块链毒瘤,毫无理想主义的极致炒作圈钱者,区块链共识的最大破坏者”、“一个花几千万人民币就能搞定的技术真的有必要让大家炒的那么欢?”他还列举了EOS的四宗罪:1.募集近30亿美元,完全不知去向;2.ico一年365天,不知投向与目的;3.dpos过度中心化,技术漏洞百出与过度包装;4.绝大部分炒币与所谓超级节点来自国内,而超级节点本质是一群利益共同体的炒作;本次漏洞事件EOS官方还没有将漏洞完全修复,360则表示手里还有不少EOS的漏洞。EOS会如何度过这次危机?我们拭目以待。(本文首发链得得App,作者丨大文)

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注