星球日报
搜索
手机客户端
iPhone · Android
微信公众号
微信公众号

iPhone · Android

微信公众号

DAPP中奖率如何提高?黑客用了这种方法

2019-01-17

一种可能有点难的方法。

1 月 16 日,据慢雾、PeckShield 等安全公司披露,近期针对 EOS DApp 遭遇“交易排挤攻击”(也称“交易阻塞攻击”)的持续性威胁情报监测:EOS.WIN、FarmEOS、影骰、LuckBet、GameBet、Fishing、EOSDice、STACK DICE、ggeos 等知名 DApp 陆续被攻破,该攻击团伙( floatingsnow 等)的攻击行为还在持续。

“交易排挤攻击”是一种新型攻击手法,攻击者首先发起正常的转账交易,然后使用另一个合约帐号检测中奖行为。如果不中奖,则发起大量的 defer 交易(延迟交易,即在指定未来某个时间执行的交易),将项目方的开奖交易“挤”到下一个区块中,此次攻击源于项目方的随机数算法使用了时间种子,使攻击者提升了中奖几率,导致攻击成功。

关于为何 EOS 竞猜类游戏很难免疫这种新型攻击手法时,PeckShield 硅谷研发中心负责人 Jeff 表示:“所有竞猜类游戏基本都包含随机数的游戏机制,但本质上随机数和区块链网络要求所有分布式节点运算结果保持一致存在内在矛盾。现有随机数解决方案(链上开奖)都采用的是链上数据(可能加上了未来等时间因素),一定程度上可以实现伪随机,但黑客可以抢先算出结果进而实现攻击。”

在这种攻击中,我们首先要提到随机数生成方式。DVP 区块链安全研究人员表示,随机数对于区块链技术来说非常关键,生成任何人不可知的真随机数是目前区块链生态存在的一个很难解决的问题,所以目前 EOS 竞猜类 DApp 都是通过各种各样的种子(有时候也叫熵源)生成伪随机数

在伪随机数里,一旦黑客知道了生成随机数的方案和取的种子,就有可能预测到结果,形成随机数预测攻击。伪随机数生成方案分为链上和链下随机种子随机数生成方案两种。

据了解,链上随机数种子生成方案即将区块数据或区块时间等链上数据作为种子,这种方案由于不需要用户提供种子,更方便,对用户门槛较低,因此即使有安全风险,也成为是目前 EOS 生态内最普遍方案。而 EOS 官方推荐的链下随机种子随机数生成方案,指的是种子来源于双方用户,不依赖于物理或链上数据,技术上更为安全,但对用户不够友好。

另外有些竞猜类 DApp 使用链外数据,即非链上数据,但也不来自用户。这种方法虽然解决了用户门槛和随机数攻击问题,但由于链外数据可能是公司用服务器生成的随机数,有黑箱操作的风险,有失公平。

区别于此前用到的随机数预测攻击,即通过破解随机算法和随机种子、黑随机数的方法进行攻击,EOS DAPP 最近正遭受的“交易排挤攻击”则是利用 EOS 底层的问题来攻击的手法。据慢雾安全团队介绍,通过延时交易攻击者可以变相影响随机数进行攻击。

DVP 区块链安全研究人员解释说,一般的交易发送与执行过程是用户通过 cleos 客户端或其他方式将交易请求发送给 API 节点,在 API 节点处理后,最终到达超级节点进行打包出块。问题在于,EOS 公链允许正在执行的交易里发送延迟交易,从而绕过 API 节点的验证,直接加入超级节点待执行队列,同时会将这些交易信息同步给其他超级节点。因此,攻击者可以先下注,然后通过部署合约运算,进而从 API 节点中得到结果,如果没中奖,就发送延时交易,直到中奖为止。

Jeff 表示该攻击是指攻击者算出了随机数结果对其不利,所以采取阻塞攻击让 EOS 网出的块里只包含垃圾交易,没有合法交易,进而进行随机数预测攻击。其本质是区块链目前的随机数机制产生的结果可以被猜出,进而被攻击。

关于攻击的解决方案,DVP 、慢雾和 PeckShield 都提到应采用官方推荐的链下随机种子随机数生成方案、采用完备的风控机制。慢雾还提到可以通过场景学习构建最合适的异常告警通知机制。

dappradar.com 统计,EOS DApp 中竞猜类占比 62%。所有的竞猜类 DAPP 都用到随机数,所以防范攻击非常重要。据 DVP 区块链安全研究人员,除竞猜类 DApp 之外,该攻击甚至还可以直接让 EOS 主网瘫痪,但目前 EOS 主网已经修复该问题,DAPP 仍没有。

我是Odaily星球日报记者遂心(微信号wsuixin12),加好友烦请备注姓名、单位、职务和事由。

原创文章,作者:遂心。转载/内容合作/寻求报道请联系 report@odaily.com ;违规转载法律必究。

参与讨论

登录后参与讨论

遂心

新锐作者

遂心

WeChat:wsuixin12 。加好友烦请注明原由。

总文章数: 105


分享至

微信扫一扫分享

0
金融区块链