从攻击事件所花费的响应时间及遭受的损失成本来看,对智能合约进行安全审计完全是属于低投资高回报率的行为。

近日,总部位于西雅图的成人娱乐平台SpankChain遭遇了一次智能合约安全漏洞,导致损失约38,000美元。

据悉,该成人娱乐平台SpankChain基于以太坊的智能合约使用了一种名为BOOTY的智能令牌,而由于此次安全漏洞,该公司共计损失成本高达约28,000英镑。

根据该公司发布的声明介绍,在太平洋标准时间星期六(10月13日)下午6点,一名匿名攻击者设法从该平台的支付渠道智能合同中窃取了165.38 ETH的股份(价值约3.8万美元)。此外,安全漏洞还导致SpankChain公司内部名为BOOTY的令牌被冻结,价值4,000美元。

不过,直到事发第二天(星期天晚上7点),该平台才意识到此次匿名攻击事件。鉴于事件的严重程度,该公司暂停了其所有在线服务,同时采取措施试图控制该问题继续蔓延发展。

目前,SpankChain已经暂停了其网站,同时重新部署了支付渠道的智能合约,并提供了安全补丁以阻止进一步攻击。除此之外,该公司还积极补偿所有遭受此次攻击影响的用户。

SpankChain方面回应

该公司在一份名为“We Got Spanked: What We Know So Far”(我们被黑了:这是我们目前所知道的一切)的帖子中表示:攻击者利用了一个“重入”漏洞,与2016年闹得沸沸扬扬的TheDAO事件如出一辙。

事实上,从TheDAO事件起,以太坊的智能合约开发者大部分都认识到了“重入”漏洞这类严重问题,而且自那以后也很少有重入漏洞导致资产被窃取的事件。不曾想,时隔两年后,悲剧在SpankChain身上重演了。

根据 SpankChain 的调查显示,黑客利用了一个重入漏洞创建伪装成 ERC20 令牌的恶意合同,通过转移功能多次回调到支付渠道合同中,每次都提取一些以太坊(ETH)。

攻击者先调用了支付通道合约的createChannel函数,并转入了5个以太坊,然后重复调用支付通道合约的LCOpenTimeou函数,并一直获取以太坊,每调用一次获取5个以太坊,一共调用了32次,最终将总金额32*5=160 ETH转到了攻击者账户中。

其中,createChannel函数主要用于创建一个“安全支付通道”,其原理是先把需要转出的资金存到支付通道合约中,只有在规定时间内收款方才可以收款。一旦超出规定时间,发起方就可以将转账撤回。LCOpenTimeou函数则相当于提款函数,允许发起方快速撤回尚未被收款方收取的转账。

SpankChain方面承认,此次事故主要责任方在他们,因为他们觉得Zeppelin开价的17,000美元的安全审计费用太过昂贵,而放弃了对智能合约的安全审计工作。

好在幸运的是,在经历此次入侵事件后,SpankChain方面已经得到了教训,并体会到:与攻击事件所花费的响应时间及遭受的损失成本相比,对智能合约进行安全审计所花费的成本完全是值得的!

加密货币及区块链的火爆,引发了各种各样的黑客攻击事件。虽然智能合约在理论上是“非常难以入侵的”,但目前它仍然是一种年轻的技术,且很容易出现漏洞,这些安全漏洞可能很容易就被攻击者利用。希望此次事件能为业界敲响警钟,不让TheDAO的惨案再次重演。

声明:本文来自安全牛,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。