1. 程式人生 > 其它 >區塊鏈是否真的安全?黑客盜取價值6億美金數字貨幣

區塊鏈是否真的安全?黑客盜取價值6億美金數字貨幣

2021年8月10日,Poly Network 發推文宣佈,PolyNetwork 在@BinanceChain@ethereum@0xPolygon上遭到了黑客攻擊,黑客利用區塊鏈跨鏈協議Poly Network的技術漏洞盜取了超過6億美金價值的數字貨幣。這是有史以來Defi(中心化金融)遭到的最大黑客攻擊。

Poly Network是一個用於在多個區塊之間開展代幣交換的協議,由包括NeoOntologySwitcheo在內的多個區塊鏈平臺背後的團隊聯合組建。其架構設計如下圖:

(圖片來自 SlowMist)

之後Poly Network釋出推文稱:經過初步調查,造成該事情的原因是黑客利用了智慧合約呼叫之間的漏洞。

(圖片來自Poly Network 推特)

同時,Poly Network團隊還在推特上稱將採取法律手段,要求黑客儘快歸還被盜的數字貨幣。

(圖片來自Poly Network 推特)

在攻擊當天不久,黑客公開表示要歸還所盜的數字貨幣,動機不明,黑客稱“我對錢不是很感興趣”,“為了好玩”。

在攻擊發生幾個小時內,SlowMist團隊稱通過區塊鏈追蹤關聯發現了攻擊者的郵箱、IP 及裝置指紋等資訊。這可能是黑客歸還所盜資產的原因之一,黑客隨後陸續進行了歸還的操作。

(圖片來自Poly Network 推特)

目前黑客已經歸還了超過一半的被盜數字貨幣。

根據SlowMist團隊分析的攻擊過程,涉及攻擊的地址如下:

(圖片來自 SlowMist)

根據SlowMist團隊的分析,被攻擊的原因有:

1、源鏈沒有檢查發起的跨鏈操作

2、目標鏈沒有檢查解析的目標呼叫合約和呼叫引數

3、EthCrossChainData合約的所有者是EthCrossChainManager

4、bytes4(keccak256(abi.encodePacked(_method,“(bytes,bytes,uint64)”)))可以被雜湊碰撞攻擊

攻擊過程:

1、攻擊者在源鏈上精心構造一個操作來修改目標鏈的Keeper

2、使用官方Relayer正常提交目標鏈資料,替換Keeper

3、攻擊者使用被替換的Keeper地址來簽署操作,並將其提交給'EthCrossChainManager'進行驗證。

4、驗證Keeper是否未被攻擊者替換的地址。如果是,則將資產轉移到攻擊者指定的地址。

5、獲利

此次攻擊主要是因為EthCrossChainData合約的keeper可以被EthCrossChainManager合約修改,EthCrossChainManager合約的verifyHeaderAndExecuteTx函式可以執行使用者通過_executeCrossChainTx函式傳入的引數,因此,攻擊者利用該函式傳入精心構造的引數來修改EthCrossChainData合約的keeper

根據SlowMist團隊的分析,本次攻擊總損失超過 6.1 億美元,詳情如下:

(圖片來自 SlowMist)

這次Poly Network攻擊主要是智慧合約的漏洞造成的,雖然區塊鏈本身很安全,但是智慧合約卻存在各種安全問題。

智慧合約是被部署在區塊鏈上可自動執行的數字化協議,也是可按照預設合約條款自動執行的計算機程式,主要包含相關程式碼和資料集。通過智慧合約可以靈活嵌入各種資料和數字資產,安全高效地交換資訊、管理資產。

智慧合約存在的漏洞有:緩衝區溢位、隨機數問題、合約本身的漏洞、合約函式漏洞、合約重入等。

在最近幾年發生的 ETH DApp攻擊事件中,大部分就是智慧合約漏洞造成的:

(圖片來自:計算機學報《智慧合約的合約安全和隱私安全研究綜述》)

推薦實驗:區塊鏈安全入門最佳實踐 :通過本課程你將學習到區塊鏈,以太坊,智慧合約的相關知識,以及區塊鏈安全相關知識。

合天智匯:合天網路靶場、網安實戰虛擬環境