竞猜类游戏 Fastwin 遭黑客攻击背后:Block.one 官方悄然做了重大更新

12月05日,新上线的又一款EOS竞猜类游戏Fastwin遭到黑客攻击,区块链安全公司PeckShield态势感知平台捕捉到了该攻击行为并率先进行了安全播报披露。数据显示,当天凌晨03:18—04:15之间,黑客向Fastwin游戏合约发起124次攻击,共计获利1,929.17个EOS。PeckShield安全人员分析发现,该攻击行为是黑客利用Fastwin的合约在校验合约调用方时存在的漏洞,导致「内联反射」攻击成功。

据研究,截止11月底,已经发生了超27起EOSDApp安全事件,主要集中在假EOS攻击、随机数问题等攻击方式,且在不断升级演变。而这次看似较小的攻击事件背后却暴露出了一个较以往危害性可能更大的新型漏洞:EOSIO官方系统对调用合约自身函数存在不校验权限的问题。

声音 | Beosin(成都链安)预警:某EOS竞猜类游戏遭受攻击 损失超1200枚EOS:根据成都链安区块链安全态势感知系统Beosin-Eagle Eye检测发现,今日上午 8:53:15开始,黑客yunmen****对EOS竞猜类游戏th****sgames发起攻击。截止到现在,该黑客已经获利超过1200枚EOS。Beosin建议游戏项目方应该加强项目运维工作,在收到安全公司的安全提醒之后第一时间排查项目安全性,才能及时止损,同时也呼吁项目开发者应该重视游戏逻辑严谨性及代码安全性。Beosin提醒类似项目方全方面做好合约安全审计并加强风控策略,必要时可联系第三方专业审计团队,在上链前进行完善的代码安全审计,防患于未然。[2019/4/3]

图一,PeckShield与Block.one邮件沟通

动态 | 竞猜类游戏playgames遭受攻击:据降维安全实验室智子区块链监控系统监测到,知名竞猜类游戏playgames被恶意用户niyoubudou33持续攻击,截至发稿时已被攻击295次,获利2158个EOS,目前攻击还未停止。降维安全实验室在此提醒广大开发者应高度警惕,及时做好安全布控及攻击测试,排查潜在攻击的风险。[2019/1/16]

PeckShield认为这是一个非常严重的漏洞,并第一时间通知了Block.one团队。Block.one官方团队接受了该漏洞提议,并告知我们有其他研究团队也事先独立汇报了该漏洞,最终于周四更新了紧急补丁以补救防御,同时次日新发布1.5.1和1.4.5两个版本,完成了该漏洞修复,避免了更多攻击事件的发生及可能造成的资产损失。

动态 | PeckShield 安全播报: “假EOS”攻击再出现 又一EOS竞猜类游戏遭黑客攻击:据 PeckShield 态势感知平台11月21日数据显示:今天15:43 - 18:31之间,黑客(kuybupeykieh)向EOS竞猜游戏合约(vegasgame111)发起攻击,共计获利数百个EOS,追踪链上数据发现,为了防止资金流向被追踪,该黑客采用多达几十次的创建子账号操作来顺序转移所获资产。PeckShield 安全人员分析发现,该黑客利用的是“假EOS”漏洞实施攻击,这一漏洞在10月份较为普遍,不过随着多数开发者合约开发趋于规范,类似攻击事件已经很少。一些较小规模的游戏还可能还存在类似漏洞,PeckShield在此提醒广大游戏开发者和游戏玩家,警惕安全风险。[2018/11/21]

「内联反射(inlineReflex)」攻击原理

正常的转账流程如图所示:玩家通过调用系统合约(eosio.token),将EOS转账给游戏合约,触发游戏合约的分发逻辑(apply),进而调用相关函数实现开奖。

图二,竞猜游戏正常转账流程

而此次的攻击者(ha4tsojigyge),在自己帐号部署的合约中包含了与游戏合约相同的操作函数,在转账完成后,自行开奖获得奖金。如图所示:

图三,攻击者内联调用自身合约开奖

从图中可以看出,攻击者在自身合约的函数中,内联调用了与游戏合约开奖同名的函数,再通过通知的方式将信息发送到了游戏合约。此时游戏合约的分发逻辑没有过滤掉此信息,并调用了开奖函数。

总之,攻击者利用了EOSIO系统中对调用合约自身函数不校验权限的漏洞,进而使用游戏合约的帐号权限发起内联调用,致使绕过游戏合约在敏感函数中校验调用者权限的方法,从而获取了游戏合约发放的奖励。

修复方法

从上述分析能够发现,攻击者合约的通知信息中,实际调用的合约是攻击者合约,而非游戏合约,因此在游戏合约的分发逻辑中过滤掉此类信息即可。而且从系统定义的宏中能够看到,分发逻辑处理了此问题。因此PeckShield在此提醒开发者在定制化自己的分发逻辑时,需要特别注意其中的调用来源。

图四,系统EOSIO_DISPATCH代码

深层次及兼容性问题

需要强调的是:这个问题属于EOS公链层的较大漏洞,攻击者在内联调用中可以伪造任意帐号的权限执行,但这个修复可能会给部分开发者造成兼容性问题,如合约内联调用函数,而执行者帐号不是自己的时候,会导致整个交易执行失败,如需解决兼容性问题请给合约赋予执行者帐号的eosio.code权限。

本文来源于非小号媒体平台:

PeckShield

现已在非小号资讯平台发布1篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/3627092.html

游戏链游

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

区块链如何助力数据共享隐私保护?

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

以太坊交易所比特币还能上车吗?

文|嚯嚯 截至21日12时,经历小幅回调后,比特币价格依然坚挺,现报7922美元,相比去年年底3155美元的阶段性底部,涨幅达150%。目前,“定投”和“炒波段”是投资者在币圈金融市场搏杀的两个主要手段.

[0:15ms0-1:652ms