鑄幣疑雲 —— Paid Network 被盜細節分析

買賣虛擬貨幣

據訊息,以太坊 dapp 專案 paid network 遭受攻擊。攻擊者透過合約漏洞鑄造近 1.6 億美元的 paid 代幣,並獲利 2000 eth(約 300 萬美元)。慢霧安全團隊在第一時間跟進並分析,現在將細節分析給大家參考。


攻擊細節分析



以上是整個攻擊過程的呼叫流程細節。


可以看到整個攻擊過程非常的簡單,攻擊者透過呼叫代理合約中函式簽名為(0x40c10f19)的這個函式,然後就結束了整個攻擊流程。由於這個函式簽名未知,我們需要查閱這個函式簽名對應的函式是什麼。



透過查閱這個函式簽名,我們發現這個簽名對應的正是 mint 函式。也就是說,攻擊者直接呼叫了 mint 函式後就結束了攻擊過程。那麼到這裡,我們似乎可以得出一個 mint 函式未鑑權導致任意鑄幣的漏洞了。透過 etherscan 的代幣轉移過程分析,似乎也能佐證這個猜想。



但是,事實真是如此嗎?


為了驗證未鑑權任意鑄幣的這個想法,我們需要分析合約的具體邏輯。由於 paid network 使用的是合約可升級模型,所以我們要分析具體的邏輯合約(0xb8...9c7)。但是在 etherscan 上查詢的時候,我們竟然發現該邏輯合約沒有開源。


這個時候,為了一探究竟,我們只能使用反編譯對合約的邏輯進行解碼了。透過 etherscan 自帶的反編譯工具,可以直接對未開源合約進行反編譯。在反編譯後,我們卻發現了一個驚人的事實:



透過反編譯,我們不難發現,合約的 mint 函式是存在鑑權的,而這個地址,正是攻擊者地址(0x187...65be)。那麼為什麼一個存在鑑權的函式會被盜呢?由於合約未開源,無法檢視更具體的邏輯,只能基於現有的情況分析。我們分析可能是地址(0x187...65be)私鑰被盜,或者是其他原因,導致攻擊者直接呼叫 mint 函式進行任意鑄幣。


總結


本次攻擊過程雖然簡單,但是經過細節分析後卻有了驚人的發現。同時這次的攻擊也再次對許可權過大問題敲響了警鐘。如果這次的 mint 函式給到的鑑權是一個多簽名地址或是使用其他方法分散許可權,那麼此次攻擊就不會發生。


參考連結:


攻擊交易:

https://etherscan.io/tx/0x4bb10927ea7afc2336033574b74ebd6f73ef35ac0db1bb96229627c9d77555a0

免責聲明:

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

推荐阅读

;