天天看點

項目方的鍋!遊戲Vegas Town遭受攻擊損失數千EOS

3月10日淩晨,EOS遊戲Vegas Town (合約帳号 eosvegasgame)遭受攻擊,損失數千EOS。

慢霧安全團隊分析發現本次的攻擊帳号為 fortherest12,通過 eosq 查詢該帳号,發現首頁存在大量的錯誤執行交易,檢視其中任意一筆交易,可以發現其中的失敗類型均為 hard_fail。

項目方的鍋!遊戲Vegas Town遭受攻擊損失數千EOS

安全團隊稱:“根據之前對EOS黑名單攻擊手法的分析其原理基本類似,差別在于沒有對下注交易的狀态進行分析。本次攻擊有兩點值得注意:一個是 hard_fail,第二個是時間延遲。此次攻擊中的延遲竟達到了 2 個小時之久。”

他們認為,本次的攻擊發生和 EOS 的機制相關,當交易的延遲時間不為0的時候,不會立馬校驗是否執行成功,對延遲交易的處理是push_schedule_transaction,而交易的延遲時間等于 0 的時候,會直接 push_transaction,這兩個的處理機制是存在差別的。

安全團隊針對這兩個要點進行分析:

(1) hard_faild

一般來說,fail 有兩種類型,分别是 soft_fail 和 hard_fail,此次攻擊中呈現出的是後者。

項目方的鍋!遊戲Vegas Town遭受攻擊損失數千EOS

 在官方描述中,hard_fail被稱作“客觀的錯誤并且錯誤處理器沒有正确執行”。通俗來說,就是出現錯誤但是沒有使用錯誤處理器(error handler)處理錯誤,比方說使用 onerror 捕獲處理,如果說沒有 onerror 捕獲,就會 hard_fail。

(2) 延遲時間

安全團隊發現,fortherest12 屬于普通帳号,這使得攻擊者可以輕易通過 cleos 中的一個參數設定來對交易進行延遲。根據官方文檔的描述,和非合法賬号實作延遲最大的差別在于hard_fail會在鍊上出現記錄。

本次攻擊是因為項目方沒有對 trx 的 status 狀态進行校驗,隻是對 trx 是否存在作出了判斷,進而導緻了本次攻擊的發生。

項目方的鍋!遊戲Vegas Town遭受攻擊損失數千EOS

在此安全團隊建議,在項目方進行開獎的時候,需要注意下注訂單的執行狀态,除了要判斷交易是否存在,還要判斷下注訂單是否成功執行。雷鋒網(公衆号:雷鋒網)

參考來源:慢霧科技

繼續閱讀