區塊鏈是否真的安全?黑客盜取價值6億美金數字貨幣
2021年8月10日,Poly Network 發推文宣佈,PolyNetwork 在@BinanceChain
、@ethereum
和@0xPolygon
上遭到了黑客攻擊,黑客利用區塊鏈跨鏈協議Poly Network
的技術漏洞盜取了超過6億美金價值的數字貨幣。這是有史以來Defi(中心化金融)
遭到的最大黑客攻擊。
Poly Network
是一個用於在多個區塊之間開展代幣交換的協議,由包括Neo
、Ontology
和Switcheo
在內的多個區塊鏈平臺背後的團隊聯合組建。其架構設計如下圖:
(圖片來自 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攻擊事件中,大部分就是智慧合約漏洞造成的:
(圖片來自:計算機學報《智慧合約的合約安全和隱私安全研究綜述》)
推薦實驗:區塊鏈安全入門最佳實踐 :通過本課程你將學習到區塊鏈,以太坊,智慧合約的相關知識,以及區塊鏈安全相關知識。
合天智匯:合天網路靶場、網安實戰虛擬環境