如下圖,這一漏洞主要發生在智慧合約的 resolveTimedOutDuel(uint256,uint256) 方法中。
作為一款格鬥遊戲, Cheeze Wizards 允許玩家發起一個 “單邊揭示“ 的交易,當一位玩家已經揭示了招式,另一位玩家一直不揭示招式直到時間截止 (90 分鐘)時,正常玩家可以呼叫 resolveTimedOutDuel() 方法,以此來奪走不揭示招式玩家的能量。而問題的關鍵在於誰先呼叫並如何呼叫該方法。
玩家正常呼叫和惡意呼叫的例子如下。
正常呼叫:resolveTimedOutDuel(WIZARD-A,WIZARD-B)
惡意呼叫:resolveTimedOutDuel(WIZARD-A,WIZARD-A)
由於合約開發者預設為傳入的兩個 wizard id 不同,所以沒有進行相關效驗,而該方法是公開的,任何玩家都可以設定 wizard id,一個懷有惡意的玩家,透過傳入相同的 wizard id 以此來凍結誠實玩家的能量。
修復此漏洞的方法很簡單,只需要在方法體內加上如下判斷。
PeckShield 點評:智慧合約開發者在實現相關方法時,要特別注意公開介面的相關引數,應考慮各種異常情況,做好防禦限制。
跑路事件
10月份,經媒體報道多起資金盤專案涉及傳銷和詐騙,例如被立案調查的趣步,暫停維護的 ICC 等。
PeckShield 旗下的 CoinHolmes 推出的視覺化的數字資產追蹤服務也一直監控著跑路和被盜資產的異動情況。
其中 CoinHolmes 監測到 Cryptopia 部分被盜資產流入了 Uniswap 去中心化交易所和知名 DeFi 專案 Compound。資產流向示意圖如下:
鑑於資金盤跑路詐騙事件頻發, CoinHolmes 為廣大使用者提供了爆料入口,使用者可以透過(https://forms.coinholmes.com)提交關聯鏈上地址(可點選左下角閱讀原文進入),實時查詢數字資產流向情況。
PeckShield 點評:除了傳統中心化交易所,駭客也在不斷尋求新的洗錢方式,例如此次駭客轉移資金至 Compound, 主要目的是利用 DeFi 借貸平臺進行混淆資金洗錢,同時不排除“理財生息”的可能。除 DEX 之外,當前有著較好流通性的 DeFi 借貸平臺也成了駭客洗錢的新選擇。
釣魚攻擊等其他類安全事件
除上述之外,10月份還有一些安全事件同樣值得警惕:
1)Telegram 搬磚套利騙局八天內詐騙金額高達750枚 ETH;
2)MEET.ONE 提醒 EOS 使用者警惕 DApp 詐騙釣魚。
PeckShield 點評:因使用者安全意識欠缺且操作規範性造成的各類安全隱患一直層出不窮,釣魚攻擊、搬磚套利等各類事件就是典型。在此提醒,參與數字資產投資的使用者應謹慎保管各類私密資訊,任何小的疏忽都可能造成不可挽回的損失。