數(shù)十萬(wàn) EOS 被盜真相復(fù)盤推演 | TokenInsight區(qū)塊鏈
北京時(shí)間2018年12月19日凌晨,EOS網(wǎng)絡(luò)中,包括BetDice在內(nèi)的數(shù)個(gè)游戲DApp遭受黑客攻擊,損失數(shù)十萬(wàn)枚EOS通證。
北京時(shí)間 2018 年 12 月 19 日凌晨,EOS 網(wǎng)絡(luò)中,包括 BetDice 在內(nèi)的數(shù)個(gè)游戲 DApp 遭受黑客攻擊,損失數(shù)十萬(wàn)枚 EOS 通證。
TokenInsight 認(rèn)為本次事件是由于部分游戲 DApp 為增強(qiáng)游戲體驗(yàn),在自建節(jié)點(diǎn)中運(yùn)行 DApp,導(dǎo)致鏈上數(shù)據(jù)同步時(shí)出現(xiàn)錯(cuò)誤。
因?yàn)椴糠执a和數(shù)據(jù)未被公開(kāi),攻擊的重現(xiàn)難度較高。據(jù) TokenInsight 推演,黑客可能的攻擊手段如下:
EOS 被盜流程推演圖
來(lái)源:TokenInsight
1. 黑客向 DApp 發(fā)送參與游戲的請(qǐng)求;
2. 黑客直接向 BP 節(jié)點(diǎn)發(fā)送取消游戲的請(qǐng)求,或使賬戶余額不足而導(dǎo)致轉(zhuǎn)賬失敗;
3. DApp 將黑客的游戲請(qǐng)求發(fā)送至 BP 節(jié)點(diǎn),并在自建節(jié)點(diǎn)上運(yùn)行黑客的游戲結(jié)果,若運(yùn)算出玩家勝利的結(jié)果,則向 BP 節(jié)點(diǎn)發(fā)送給予玩家獎(jiǎng)勵(lì)的請(qǐng)求;
4. BP 節(jié)點(diǎn)先后收到“黑客取消游戲”請(qǐng)求、“DApp 發(fā)送游戲”請(qǐng)求、“DApp 給予游戲獎(jiǎng)勵(lì)”請(qǐng)求。因?yàn)闀r(shí)間順序和轉(zhuǎn)賬沖突的原因,“黑客取消游戲”請(qǐng)求被執(zhí)行,而“DApp 發(fā)送游戲”請(qǐng)求執(zhí)行失敗,“DApp 給予游戲獎(jiǎng)勵(lì)”請(qǐng)求被執(zhí)行。
5. 黑客收到 DApp 的轉(zhuǎn)賬,一次攻擊完成。
首先,應(yīng)對(duì)該種攻擊手段,可將 DApp 讀取的狀態(tài)數(shù)據(jù)改為 read-only 模式,read-only 模式下數(shù)據(jù)庫(kù)包含傳入?yún)^(qū)塊的更改,但不影響 speculative 交易處理。
此外,關(guān)于此次 EOS 的安全事件,Anchain CEO Victor 指出,Anchain 在 Ethereum 以及 EOS 有關(guān)安全的問(wèn)題上有著較豐富的經(jīng)驗(yàn)與技術(shù)積累,并且也提供有關(guān)代碼的安全檢測(cè)服務(wù),這次的安全事件是完全可以避免的。比如,DApp 可以使用 ref_block 功能,在給玩家發(fā)放獎(jiǎng)勵(lì)前,判斷用戶是否真的轉(zhuǎn)賬成功。同時(shí),Victor 還指出,這個(gè)安全問(wèn)題背后還暴露出了在 EOS 中更加嚴(yán)重的問(wèn)題,相較于其他部分公有鏈,EOS 區(qū)塊鏈并不記錄失敗的交易,瀏覽器也無(wú)法查詢,這是 EOS 在架構(gòu)設(shè)計(jì)方面的缺陷。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來(lái)源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請(qǐng)轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來(lái)源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會(huì)經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。