CertiK:DeFi專案Walletreum內部操作攻擊事件分析

馬克思曾在資本論中引用一句名言:“如果有10%的利潤,它就保證到處被使用;

有20%的利潤,它就活躍起來;

有50%的利潤,它就鋌而走險;

為了100%的利潤,它就敢踐踏一切人間法律;

有300%的利潤,它就敢犯任何罪行,甚至絞首的危險。”

對於區塊鏈來說,去中心化是一切的本質,更是區塊鏈世界和生態的標杆。

無論是什麼形式的去中心化,它的本質實際上指的都是權力從頂層中心化機構到基層個體的下沉。

這個下沉趨勢隨著世界的發展不斷的惠及每一個個體。區塊鏈所言的“去中心化”同樣是隨著經濟和科技發展,迎合社會發展本質上的一類。鑄幣權便是其中之一。

這裡的鑄幣權指的是將其下放至專業及安全的團隊或個體手中,透過健康的社羣治理,達到實現區塊鏈領域願景的目的。

然而如同早年間的鑄幣行為在傳統金融中屢禁不絕,區塊鏈領域內的惡意鑄幣行為也是無休無止。

一個專案其違背去中心化的本質,透過擁有者的極大許可權進行惡意鑄幣,不僅僅損害了專案的良勢發展,更是損害了每一位投資者與專案支持者的切身利益。

北京時間11月16日,certik安全研究團隊發現defi專案walletreum被專案團隊透過內部操作,惡意鑄造5億個walt代幣。截止11月16日早5時,惡意鑄造的代幣量已約合近190萬人民幣。

certik安全研究團隊透過分析其智慧合約程式碼,發現其智慧合約程式碼中心化風險極高,存在安全隱患,專案擁有者擁有許可權向任意地址鑄造任意數目的代幣。

完整技術分析如下:


攻擊詳情分析

專案擁有者地址:0xa5e552e3d643cc89f3b1ceccfd6f42c5c1aee775

圖一:內部操作攻擊交易資訊

圖一是walletreum專案中walttoken智慧合約被內部操作,鑄造額外5億個walt代幣的交易資訊。

該交易雜湊值為0xc0f3b0576f18a714d78b822754489d4201c9e36fb0ce4b2f53a93217564710e5。

certik天網系統 (skynet) 檢測到區塊1126401出現異常交易資訊後,立刻向certik安全研究團隊發出警示。

certik安全研究團隊在對該專案智慧合約進行快速分析後,認為該專案為當前一典型的由於智慧合約高中心化而導致的攻擊。

圖二:walttoken智慧合約mint()函式

 圖二為遭受內部操作攻擊智慧合約中被惡意呼叫的函式mint()。

從666行的程式碼實現中可以看出,任何擁有minter許可權、可以透過onlyminter修飾符限制的外部呼叫者均可以呼叫該函式。

該函式的作用是透過667行程式碼向任意賬戶(account)鑄造任意數目的代幣(amount)。

透過圖三中619行onlyminter修飾符的邏輯實現,以及615行建構函式中給與智慧合約部署者minter許可權的邏輯實現,智慧合約部署者擁有了可以執行圖二中mint函式的許可權。

圖三:onlyminter修飾符以及給與專案管理者minter許可權的建構函式

圖四:專案擁有者擁有minter許可權

查詢專案擁有者是否擁有minter許可權的結果如圖四所示。

至此,專案擁有者擁有執行mint函式的權利,最終惡意鑄造了5億個walt代幣,致使專案投資者遭受損失。


安全建議

certik安全團隊透過研究認為,目前大多數defi專案中均存在類似於walletreum專案的風險。

該類mint函式以及minter許可權的實現表明了當前defi專案中專案擁有者許可權過大,中心化風險較高。

這會導致內部操作等情況的發生完全依賴於專案擁有者個人或者團隊的“個人素質”與選擇。

certik團隊此前分析過同樣存在中心化風險的mercurity.finance專案,而類似此次walletreum專案被內部操作攻擊的情況以後想必也依舊會發生。

在此,certik團隊發出建議:

如要防範此類內部操作,應當注重提高社羣治理的程度,並在專案實現上儘可能降低中心化許可權,對任意重要操作均需要透過社羣投票或者運用timelock延時限制機制。

迄今為止,certik已為超過200名機構使用者提供了優質服務,保護了超過80億美元的數字資產與軟體系統免受安全損失。

歡迎點選certik公眾號底部對話方塊,留言免費獲取諮詢及報價!


免責聲明:

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

推荐阅读