數十萬 EOS 被盜真相覆盤推演 | TokenInsight

weixin_34321977發表於2018-12-21

北京時間 2018 年 12 月 19 日凌晨,EOS 網路中,包括 BetDice 在內的數個遊戲 DApp 遭受黑客攻擊,損失數十萬枚 EOS 通證。

TokenInsight 認為本次事件是由於部分遊戲 DApp 為增強遊戲體驗,在自建節點中執行 DApp,導致鏈上資料同步時出現錯誤。

因為部分程式碼和資料未被公開,攻擊的重現難度較高。據 TokenInsight 推演,黑客可能的攻擊手段如下:

EOS 被盜流程推演圖

11810655-e60818cf1b8e6e3f

來源: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 在架構設計方面的缺陷。

相關文章