5月29日,360公司Vulcan(伏尔甘)团队宣布发现了区块链平台EOS的一系列高危安全漏洞。经验证,其中部分漏洞可以在EOS节点上远程执行任意代码,即可以通过远程攻击,直接控制和接管EOS上运行的所有节点。这样,攻击者利用漏洞可以“为所欲为”,如窃取EOS超级节点的密钥,控制EOS网络的虚拟货币交易。
点评:
EOS这种面向应用设计的平台,为了保证其面向多种应用场景的灵活性,其复杂度是很大的,那么必然会带来很多的安全漏洞。
目前看来,有可能是同EOS这种无gas消耗的机制有关。在比特币或者以太坊中,每笔交易都要消耗手续费或者gas的,这样一方面可以避免黑客通过大量微额交易发起攻击,也可以让恶意代码或者缺陷代码有停机的机会。
而在EOS中,声称其交易时是不需要消耗手续费之类的东西,这样模式下运行的智能合约就存在“图灵停机”问题,一段恶意的智能合约代码可能一直循环下去,导致节点的资源被耗尽,从而堵塞交易。
具体的漏洞描述:
“攻击中,攻击者会构造并发布包含恶意代码的智能合约,EOS超级节点将会执行这个恶意合约,并触发其中的安全漏洞。攻击者再利用超级节点将恶意合约打包进新的区块,进而导致网络中所有全节点(备选超级节点、交易所充值提现节点、数字货币钱包服务器节点等)被远程控制。”而且在360召开的EOS漏洞发布会上声称,漏洞就涉及到一行代码,那么最大可能是存在缓冲区溢出,然后会被黑客利用攻击。
“缓冲区溢出攻击”就是利用程序中的类似拷贝函数没有限制边界的情况进行攻击,在这种情况下,黑客通过执行攻击代码可以很快的得到操作系统的控制权,从而操纵系统做自己想做的任何事情。