Cocos-BCX白帽案例 | Dice回滾攻擊

買賣虛擬貨幣
在加密貨幣領域,維護系統安全的工作需要“外包”,對此大家已經形成了一種默契。HackerOne 這個網站已經成為了駭客的聚集地,他們不再希望利用系統漏洞發起攻擊,反而更願意透過修復漏洞來獲得獎勵,而由 Cocos-BCX 開發者社羣發起的 COCOS Bug Bounty 正是提供了這樣的機會。
COCOS Bug Bounty 是一個邀請全球開發者參與 Cocos-BCX 的公鏈安全計劃。Cocos-BCX 會將鏈程式碼和工具產品程式碼有節奏、有計劃地開源,接受全球開發者的檢驗。開發者發現 Bug 後透過郵箱提交,不僅可以根據貢獻等級來獲得豐厚的獎勵,其所做貢獻還會使得 Cocos-BCX 公鏈更加完善。在提升公鏈的安全性、可靠性的同時,也會使得周邊工具的體驗不斷最佳化和改善。2019年12月24日,Cocos-BCX 技術團隊就收到了一名白帽子針對 Cocos-BCX 主網遊戲 Dice Dapp 提交 contract.dicegame 合約的漏洞,幸運的是,該白帽駭客找到漏洞後主動歸還了該遊戲賬戶上被轉移的近30萬的 COCOS。因該白帽駭客所提交 Bug 符合 COCOS Bug Bounty 二級 Bug 獎勵要求:對使用者財產、私鑰、賬號的安全問題,鏈系統敏感資訊洩露等問題,最終獲得了 B+ 級獎勵,總額 100,000 COCOS。Bug 漏洞詳情顯示,由於 dicegame 合約中下注和開獎邏輯放在一起,攻擊者就可以利用這個漏洞進行攻擊。具體的 dice 合約原始碼見:https://github.com/Cocos-BCX/smart-contract-practice/blob/master/code/dicegame.lua
基本的攻擊手法如下:· 攻擊者透過指令碼註冊大量賬號以獲取 COCOS 原始積累;· 攻擊者部署一個回滾攻擊合約。· 在攻擊合約中下注,下注結束後如果輸了,就透過 assert 中斷合約執行,如果贏了,就順利走完所有的合約;· 不斷重複過程2,就能把原來的dice合約中所有的cocos都薅走。具體的攻擊合約見 :https://github.com/Cocos-BCX/smart-contract-practice/blob/master/code/rollbackattact.lua
目前,Cocos-BCX 技術安全團隊已經聯絡到該遊戲開發方通報漏洞並暫停相關合約進行維護,同時提供了兩種防禦方法:1、下注和開獎介面分開;2、排除掉下注為人為合約的情況。實際上在 Cocos-BCX 鏈系統中已有做出對應設計,若是該遊戲開發者對可信執行環境的設計有足夠了解,在上面的攻擊案例中,他可以採取 Cocos-BCX 智慧合約中的函式多籤特性,來回避非開發者應用的合約函式執行請求,這是對可信執行環境的一種延展實現。在更新的版本中,這個特性進一步升級為可以宣告具體的某個函式要求多籤。Cocos-BCX 的發展離不開大家的支援和關注,感謝各位開發者給我們提出的寶貴建議。希望 Cocos-BCX 主網版本和將來的每一次更新都能給大家帶來不一樣的體驗,感恩有你!針對本次的漏洞發現,該發現者獲得Cocos-BCX基金會提供的100K COCOS Token作為激勵。最後,歡迎開發者關注並參與 COCOS Bug Bounty,豐厚獎勵等你來拿~具體獎勵機制請檢視:https://bounty.cocosbcx.io/static/Cocos_bug_bounty_details.pdf

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;