漏洞的发现者“古河”在其个人微博中解释,在64位系统中,攻击者要实现远程代码执行是非常困难的,因为在远程攻击进程中一般缺乏漏洞利用所需的内存布局/多次读写过dep/aslr的手段。
简单来说,这是两道关卡,dep是对恶意代码的检查手段,如果攻击者突破了这道关口,还会遇到aslr这第二道关口,它通过增加攻击者预测目标的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。
但是,EOS 为了加快合约执行速度而引入的wasm虚拟机,让他们可以绕过这两道关卡。宅客频道猜想,文中开头所提到的EOS的 TPS 性能优势,正是建立在牺牲安全性的条件下。
大家应该都听过“牵一发而动全身”,区块链是把 N 个点联在一起的,而攻击者就是其中的一个点,他会构造并发布包含恶意代码的智能合约,随后,EOS 超级节点在执行这个恶意合约的过程中,会触发其中的安全漏洞。紧接着,攻击者再利用超级节点将恶意合约打包进新的区块,进而导致网络中所有全节点(备选超级节点、交易所充值提现节点、数字货币钱包服务器节点等)被远程控制。
这样造成的结果是,由于已经完全控制了节点的系统,攻击者可以“为所欲为”,如窃取 EOS 超级节点的密钥,控制 EOS 网络的虚拟货币交易;获取 EOS 网络参与节点系统中的其他金融和隐私数据,例如交易所中的数字货币、保存在钱包中的用户密钥、关键的用户资料和隐私数据。
甚至,攻击者可以将 EOS 网络中的节点变为僵尸网络中的一员,发动网络攻击或变成免费“矿工”,挖取其他数字货币。
360表示,虽然之前以太坊上也发生过智能合约的漏洞,但从未达到过远程执行任意代码的程度。(即可以通过远程攻击,直接控制和接管链上运行的所有节点)
此前一直专注于区块链安全的团队“慢雾科技”在今天接受金色财经的采访时表示,因为这个漏洞可以直接拿到EOS超级节点的服务器权限,所以“史诗级”漏洞的表述,并不过分。
用多长时间发现的?修复成本高吗? 周鸿祎在微博中透露,360从年初开始,已经在区块链安全方面做了很多研究,目前已经做了几个区块链的安全解决方案,EOS超级节点安全解决方案正是其中之一。
而在采访中,几位安全研究人员也表示,与传统软件领域的漏洞可能被利用来发起网络攻击,造成数据、隐私的泄露相比,数字货币本身是一套金融体系,在数字货币和区块链网络中的安全漏洞,往往会有更严重、更直接的影响,所以非常注重区块链安全的研究。
针对此次EOS的漏洞,他们是在本月初发现的,其后用了半个多月的时间来研究如何充分利用这个漏洞,28日晚间,他们把漏洞完整利用的演示视频和相关的代码细节提供给 EOS 团队,今日凌晨协助其进行了修复。