风险提示:理性看待区块链,提高风险意识!
EOS竞猜类游戏遭黑客攻击背后:Block.one官方悄然更新
首页 > 币界资讯 > 区块链新闻 2019-01-07 22:30:51
摘要
12月05日,新上线的又一款EOS竞猜类游戏 Fastwin 遭到黑客攻击,区块链安全公司 PeckShield 态势感知平台捕捉到了该攻击行为并率先进行了安全播报披露。数据显示,当天凌晨03:18—04:15之间,黑客(ha4tsojigyge)向Fastwin游戏合约(fastwindice3) 。
币界网报道:

block.one_

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

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

block.one

(图一:PeckShield 与 Block.one 邮件沟通)

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

“内联反射(inlineReflex)”攻击原理

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

DApp运行流程_w

(图二:竞猜游戏正常转账流程)

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

内联反射攻击原理图_w

(图三:攻击者内联调用自身合约开奖)

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

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

修复方法

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

eosio_dispatch_w

(图四:系统EOSIO_DISPATCH代码)

 

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

上一篇: ETC和ETH的爱恨纠葛
下一篇: 加密货币市场跌至2017年11月以来最低水平
推荐专栏
Boss Wallet Web3 Econom Pass
专注币圈最新资讯
通俗浅显地聊透Web3大事小情
读懂区块链生态与未来,尽在币界网!
热门币种
更多
币种
美元价格
24H涨跌幅
BTC比特币
60,963.61 USDT
¥435,103.38
-2.72%
ETH以太坊
3,368.69 USDT
¥24,042.67
-0.3%
BNB币安币
570.68 USDT
¥4,073.00
-0.28%
USDT泰达币
1.02 USDT
¥7.25
-0.19%
SOL
135.96 USDT
¥970.36
+7.66%
USDC
1.00 USDT
¥7.15
-0.01%
TON
7.59 USDT
¥54.14
+4.55%
XRP瑞波币
0.47720 USDT
¥3.41
+0.48%
DOGE狗狗币
0.12210 USDT
¥0.87140
+2.43%
ADA艾达币
0.39050 USDT
¥2.79
+3.88%
热搜币种
更多
币种
美元价格
24H涨跌幅
Solana
180.72 USDT
¥1,310.49
+0.29%
比特币
66129.12 USDT
¥479,535.31
-0.07%
Curve
0.2568 USDT
¥1.86
-0.43%
Filecoin
4.3437 USDT
¥31.50
-1.79%
FTX Token
1.3892 USDT
¥10.07
-2.35%
比特币SV
51.0769 USDT
¥370.38
-0.68%
狗狗币
0.1252 USDT
¥0.91
-2.03%
柚子
0.5812 USDT
¥4.21
+1.82%
Yield Guild Games
0.474 USDT
¥3.44
-2.03%
奇亚
18.7015 USDT
¥135.61
-0.22%
Conflux
0.167 USDT
¥1.21
+1.09%
Shiba Inu
1.632E-5 USDT
¥0.00
-1.33%
最新快讯
更多
贝莱德以太坊ETF资金流入量排行今年所有新ETF的前15名
2024-07-31 10:53:40
50,00万枚USDC在USDC国库铸造
2024-07-31 10:52:58
链上数据分析平台Arkham集成Blast链数据
2024-07-31 10:48:39
MellowProtocol已经接入OKXWeb3钱包
2024-07-31 10:41:48
Doubler完成DoublerLitev2升级,将于8月1日在MantaNetwork上发布新版本
2024-07-31 10:41:00
Paradigm于8小时前将39,068枚ETH存入托管平台AnchorageDigital
2024-07-31 10:38:36
ZKX24小时跌逾34%
2024-07-31 10:34:00
下载币界网APP