跨鏈橋漏洞總結
隨着區塊鏈和鏈上項目的增長,對多鏈項目的需求正在變多,跨鏈橋業務也相應的在增加。哪裏有生意,哪裏就會有安全問題。跨鏈橋在為用戶提供便利的同時,也為黑客提供了便利,Poly Network被攻擊後,跨鏈橋的安全問題也隨之出現。
什么是跨鏈橋?
區塊鏈橋,也稱為跨鏈橋,其連接兩個區塊鏈,允許用戶從一個鏈向另一個鏈發送加密貨幣。
跨鏈橋通過兩個獨立平臺之間的代幣轉账、智能合約和數據交換等其他反饋和指令,實現了資金的跨鏈操作。
一種常見的跨鏈橋的操作如下:
用戶將資產A發送到原鏈上的一個存儲地址,並支付過橋費;
資產A被智能合約中隨機選擇的驗證者或受信任的托管人鎖定;
在目標鏈上發布相同數量的資產A1,並將資產A1發送到目標鏈上的用戶地址。
跨鏈橋存在漏洞
跨鏈橋常見漏洞
ChainSwap攻擊事件:
2021年7月,跨鏈資產橋項目ChainSwap遭到攻擊。跨鏈橋上的二十多個項目受到攻擊,損失了近800萬美元的資產,導致十多個項目暴跌99%。
這種攻擊主要是由於該協議沒有嚴格檢查籤名的有效性,攻擊者可以使用自己生成的籤名對交易進行籤名。
Factory 合約
上圖中接收方法的主要功能是將用戶跨鏈後的資金轉移到目標鏈的用戶地址,需要驗證發送鏈的籤名。當前待驗證籤名個數為1。
由於接收方法的邏輯和名為ecrecover 和_decreaseAuthQuota方法並不嚴格檢查籤名,攻擊者使用了自己產生的籤名,但後續合約邏輯沒有嚴格判斷映射值籤名和其他計算。使攻擊者成功地執行接收方法,為自己籤名轉账資金。
Poly Network攻擊事件
2021年8月,跨鏈互操作協議Poly Network突然遭到黑客攻擊。使用該協議的O3 Swap遭受了嚴重的損失。以太坊、幣安智能鏈、Polygon三大網絡上的資產幾乎被洗劫一空。1小時內,分別有2.5億、2.7億、8500萬美元的加密資產被盜,總損失高達6.1億美元。
這種攻擊主要是由於中繼鏈驗證者的公鑰被替換造成的。即由攻擊者代替跨鏈的中間驗證者,由攻擊者自己控制。
協議內部關系:
中繼鏈驗證者的公鑰存在於EthCrossChainData合約中;
EthCrossChainData合約所有者是EthCrossChainManager合約;
EthCrossChainData合約的putCurEpochConPubKeyBytes方法可以修改中繼鏈驗證者角色。
EthCrossChainManager合約:
在上面的圖中,_executeCrossChainTx方法沒有對傳入的參數施加嚴格的限制,這導致攻擊者傳入toContract,方法參數被攻擊者控制。由於協議的內部關系,攻擊者在哈希衝突後傳入與putCurEpochConPubKeyBytes方法相同的方法籤名。成功調用EthCrossChainData合約的putCurEpochConPubKeyBytes方法,直接修改中繼鏈驗證者的公鑰,使其變得可控,然後利用驗證者籤署惡意的進行資金轉移,獲取了大量資金。
Multichain (AnySwap) 攻擊事件
2022年1月,Multichain正式聲明協議的跨鏈橋存在安全風險,部分代幣存在被黑客攻擊的風險,並敦促用戶盡快取消授權。
事件的核心原因是:協議調用的底層代幣合約沒有實現permit方法,但包含一個fallback函數,因此調用permit方法的合約正常運行。
左邊是AnyswapV4Router合約,右邊是WETH9合約。
在上圖中的AnySwapOutUnderlyingWithPermit方法中,前三個參數都是由調用者傳入的,也就是說代幣和其他參數都是攻擊者控制的。當參數可控時,攻擊者部署攻擊合約來轉移受影響的代幣。合約地址被設置為基礎代幣參數。
核心問題是由於WETH9沒有permit方法,但是會調用WETH9的fallback方法進行充值操作,所以其不會有錯誤的調用(交易不會回滾),也就是說,當用戶授權到協議時,攻擊者會很快轉移用戶資金。
Qubit Bridge 攻擊事件
2022年1月,Qubit Finance跨鏈橋以太坊-幣安被黑客攻擊,損失超過8000萬美元。
核心問題:當deposit方法中的資金地址為address(0)時,不會出現safeTransferFrom錯誤,導致deposit功能正常執行。
QBridge合約
上圖中,存款是一種正常的存款方式。當在此方法中調用IQBridgeHandler(handler).deposit時,當用戶傳入的resourceID映射tokenAddress地址為0地址時,後續的tokenAddress.safeTransferFrom(depositer, address(this), amount);轉账將正常執行,導致方法和事件的正常運行,調用者可以成功進行存款。
這裏更重要的是,官方tokenAddress的ETH 0地址是官方所做的(官方已經聲明存款功能是一個被忽略的廢棄功能)。
Meter Bridge 攻擊分析
在2022年2月,Meter.io跨鏈協議並未阻止封裝的ERC20代幣與原生gas代幣的直接交互,導致損失約430萬美元。
該事件的核心問題是:存款方法在進行存款時不驗證WBNB的存款情況,導致攻擊者繞過判斷條件,不存款也可以正常獲取資金。
Bridge合約
在上圖中,deposit和depositETH方法都是存款方法,但是當用deposit方法存款時,並沒有驗證該存款是否為原生代幣。當攻擊者進行存款時,傳入WBNB地址。該方法不驗證WBNB存款,之後調用deposthhandler .deposit方法成功繞過判斷條件。最後,攻擊者利用該漏洞成功獲取大量資金。
Wormhole攻擊分析
2022年2月,以太坊和Solana兩大區塊鏈的重要橋(Wormhole)被黑客攻擊,損失超過3.2億美元。
該漏洞的核心原因是:verify_signatures調用的load_instruction_at方法沒有驗證指令的有效性,攻擊者可以通過僞造驗證籤名來獲取資金。
verify_signature.rs接口合約
上圖中的verify_signatures方法是跨鏈驗證過程中調用的籤名方法。由於verify_signatures方法調用load_instruction_at方法,所以在協議更新後,load_instruction_at方法是一個廢棄的方法。這種方法對傳入的指令沒有嚴格的檢查,這就導致攻擊者在傳入一個可控值後,利用這種籤名方式對自己的跨鏈請求進行籤名,獲得大量資金。
Li.Finance攻擊分析
2022年3月,以太坊上的分布式跨鏈協議Li.Finance遭到攻擊。攻擊者進行了37次調用傳入,在多個錢包中獲得了約60萬美元的資產(204 ETH)。
這種攻擊的核心問題是對傳入的外部數據沒有嚴格的限制,導致攻擊者傳入自己的可控調用邏輯。
CBridgeFacet合約
上圖中的swapAndStartBridgeTokensViaCBridge方法中,傳入的_swapData參數沒有嚴格限制。在同一個LibSwap.swap調用中,該值不受嚴格限制。因此,在swap方法中,_swapData可以成功地調用call方法來執行惡意操作。攻擊者利用此漏洞進行多次調用以獲取資金。
Ronin Network攻擊分析
在2022年3月,Axie Infinity側鏈Ronin驗證者節點和Axie DAO驗證者節點被破壞,導致在兩筆交易中從Ronin橋接了173600 ETH和2550萬美元的USDC。
攻擊原因:
Sky Mavis 的 Ronin 鏈目前由 9 個驗證者組成。為了識別存款事件或取款事件,需要9個驗證者中的5個籤名。攻擊者控制了四個Sky Mavis的Ronin驗證者和一個由Axie DAO運行的第三方驗證者。(2021年11月至12月,Axie DAO 允許 Sky Mavis 代表其籤署各種交易,在事件停止後沒有撤銷白名單訪問權限,攻擊者獲得了對 Sky Mavis 系統的訪問權限,並使用來自 Axie DAO 驗證器的 gasless RPC 來獲取籤名)。
總結和建議
從以上跨鏈橋攻擊事件可以發現,從去年到今年已經發生了幾次跨鏈橋攻擊。跨鏈橋攻擊的數量明顯在增加,被盜資金也相當多。黑客已經盯上了跨鏈橋這塊肥肉。從總結來看,攻擊主要發生在跨鏈前和籤名處,一般都是合約漏洞,也有由於官方疏忽造成的盜竊事件。針對越來越多的跨鏈項目和項目合約安全,建議如下:
在項目上线前完成合約安全審計
合約調用接口需要嚴格檢查其適配性
版本更新時,需要重新評估相關接口和籤名的安全性
需要對跨鏈籤名者進行嚴格的審查,以確保籤名不受惡意人員的控制
Source:https://medium.com/coinmonks/cross-chain-bridge-vulnerability-summary-f16b7747f364
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
COW 單日翻倍領漲 DeFi 賽道,V 神最愛的 swap 有什么本領?
隨着特朗普的勝選,加密資產全线普漲,但最為矚目的項目當屬剛剛上线幣安的 COW,最高漲幅204%。...
今日推薦|DeFi 代幣飆升 30%,交易員預計在特朗普領導下 DeFi 將迎來“更友好”的環境
DeFi 公司擔心在美國證券交易委員會的監督下為其代幣實施“價值累積機制”——但隨着當選總統唐納德...