項目方的鍋!遊戲Vegas Town遭受攻擊損失數千EOS
3月10日凌晨,EOS遊戲Vegas Town (合約帳號 eosvegasgame)遭受攻擊,損失數千EOS。
慢霧安全團隊分析發現本次的攻擊帳號為 fortherest12,通過 eosq 查詢該帳號,發現首頁存在大量的錯誤執行交易,查看其中任意一筆交易,可以發現其中的失敗類型均為 hard_fail。
安全團隊稱:「根據之前對EOS黑名單攻擊手法的分析其原理基本類似,區別在於沒有對下注交易的狀態進行分析。本次攻擊有兩點值得注意:一個是 hard_fail,第二個是時間延遲。此次攻擊中的延遲竟達到了 2 個小時之久。」
他們認為,本次的攻擊發生和 EOS 的機制相關,當交易的延遲時間不為0的時候,不會立馬校驗是否執行成功,對延遲交易的處理是push_schedule_transaction,而交易的延遲時間等於 0 的時候,會直接 push_transaction,這兩個的處理機制是存在區別的。
安全團隊針對這兩個要點進行分析:
(1) hard_faild
一般來說,fail 有兩種類型,分別是 soft_fail 和 hard_fail,此次攻擊中呈現出的是後者。
在官方描述中,hard_fail被稱作「客觀的錯誤並且錯誤處理器沒有正確執行」。通俗來說,就是出現錯誤但是沒有使用錯誤處理器(error handler)處理錯誤,比方說使用 onerror 捕獲處理,如果說沒有 onerror 捕獲,就會 hard_fail。
(2) 延遲時間
安全團隊發現,fortherest12 屬於普通帳號,這使得攻擊者可以輕易通過 cleos 中的一個參數設置來對交易進行延遲。根據官方文檔的描述,和非合法賬號實現延遲最大的區別在於hard_fail會在鏈上出現記錄。
本次攻擊是因為項目方沒有對 trx 的 status 狀態進行校驗,只是對 trx 是否存在作出了判斷,進而導致了本次攻擊的發生。
在此安全團隊建議,在項目方進行開獎的時候,需要注意下注訂單的執行狀態,除了要判斷交易是否存在,還要判斷下注訂單是否成功執行。雷鋒網
參考來源:慢霧科技
※回顧Facebook經典CTR預估模型
※小鵬汽車招募資深售後專家羅炳春 任售後高級總監
TAG:雷鋒網 |