TokenInsight:数十万EOS被盗真相复盘推演

北京时间 2018 年 12 月 19 日凌晨,EOS 网络中,包括 BetDice 在内的数个游戏 DApp 遭受黑客攻击,损失数十万枚 EOS 通证。

TokenInsight 认为本次事件是由于部分游戏 DApp 为增强游戏体验,在自建节点中运行 DApp,导致链上数据同步时出现错误。

因为部分代码和数据未被公开,攻击的重现难度较高。据 TokenInsight 推演,黑客可能的攻击手段如下:

EOS 被盗流程推演图

TokenInsight:数十万EOS被盗真相复盘推演

来源:TokenInsight

1. 黑客向 DApp 发送参与游戏的请求;

2. 黑客直接向 BP 节点发送取消游戏的请求,或使账户余额不足而导致转账失败;

3. DApp 将黑客的游戏请求发送至 BP 节点,并在自建节点上运行黑客的游戏结果,若运算出玩家胜利的结果,则向 BP 节点发送给予玩家奖励的请求;

4. BP 节点先后收到“黑客取消游戏”请求、“DApp 发送游戏”请求、“DApp 给予游戏奖励”请求。因为时间顺序和转账冲突的原因,“黑客取消游戏”请求被执行,而“DApp 发送游戏”请求执行失败,“DApp 给予游戏奖励”请求被执行。

5. 黑客收到 DApp 的转账,一次攻击完成。

首先,应对该种攻击手段,可将 DApp 读取的状态数据改为 read-only 模式,read-only 模式下数据库包含传入区块的更改,但不影响 speculative 交易处理。

此外,关于此次 EOS 的安全事件,Anchain CEO Victor 指出,Anchain 在 Ethereum 以及 EOS 有关安全的问题上有着较丰富的经验与技术积累,并且也提供有关代码的安全检测服务,这次的安全事件是完全可以避免的。比如,DApp 可以使用 ref_block 功能,在给玩家发放奖励前,判断用户是否真的转账成功。同时,Victor 还指出,这个安全问题背后还暴露出了在 EOS 中更加严重的问题,相较于其他部分公有链,EOS 区块链并不记录失败的交易,浏览器也无法查询,这是 EOS 在架构设计方面的缺陷。

本文来自TokenInsight,本文观点不代表格时财经立场,转载请联系原作者;如有侵权,请联系编辑删除。

免责声明:作为区块链信息平台,本站所提供的资讯信息不代表任何投资暗示。鉴于中国尚未出台数字资产相关政策及法规,请中国大陆用户谨慎进行数字货币投资。

发表评论

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

分享本页
返回顶部