自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

為什么黑客如此“鐘愛”跨鏈橋

區(qū)塊鏈 黑客攻防
跨鏈橋通過在兩個(gè)獨(dú)立平臺(tái)之間啟用代幣轉(zhuǎn)移、智能合約和數(shù)據(jù)交換以及其他反饋和指令來進(jìn)行資金跨鏈操作。

1. 背景介紹

隨著區(qū)塊鏈及鏈上程序的增長,多鏈資金轉(zhuǎn)換需求迫切,跨鏈橋業(yè)務(wù)隨之增加,有業(yè)務(wù)的地方就會(huì)有安全問題,跨鏈橋?yàn)橛脩籼峁┍憷耐瑫r(shí),可能也為黑客提供了另一扇大門,Poly Network攻擊事件發(fā)生后,跨鏈橋安全問題也隨之顯露出來。

2. 什么是跨鏈橋?

區(qū)塊鏈橋,也稱為跨鏈橋,連接兩條區(qū)塊鏈,允許用戶將加密貨幣從一條鏈發(fā)送到另一條鏈。

跨鏈橋通過在兩個(gè)獨(dú)立平臺(tái)之間啟用代幣轉(zhuǎn)移、智能合約和數(shù)據(jù)交換以及其他反饋和指令來進(jìn)行資金跨鏈操作。

普通跨鏈橋運(yùn)行如下:

  • 用戶將資產(chǎn) A 發(fā)送到原始鏈上的一個(gè)存款地址并支付過橋費(fèi);
  • 資產(chǎn) A 被隨機(jī)選擇的智能合約中的驗(yàn)證者鎖定或受信任的托管人;
  • 在目標(biāo)鏈上發(fā)行等量的資產(chǎn)A1,并將資產(chǎn) A1 被發(fā)送到目標(biāo)鏈上的用戶地址;

貌似并不復(fù)雜的跨鏈資金轉(zhuǎn)移操作,但在多個(gè)跨鏈橋項(xiàng)目中,不同步驟均發(fā)生過安全漏洞。

3. 跨鏈橋發(fā)生過哪些漏洞

4. 跨鏈橋常見漏洞分析

(1) ChainSwap 攻擊事件

2021年7月,跨鏈資產(chǎn)橋梁項(xiàng)目ChainSwap遭到攻擊,該跨鏈橋上的二十多個(gè)項(xiàng)目遭到攻擊,損失了近 800 萬美元資產(chǎn),并使十多個(gè)項(xiàng)目暴跌 99%。

該攻擊事件主要由于協(xié)議未對(duì)signatures合法性進(jìn)行嚴(yán)格檢查,導(dǎo)致攻擊者使用自己生成的簽名可進(jìn)行簽名交易。

(2) Factory合約

上圖receive方法主要功能是將用戶跨鏈之后的資金轉(zhuǎn)移給目標(biāo)鏈用戶地址,需要驗(yàn)證發(fā)送鏈的簽名。當(dāng)前需要驗(yàn)證的簽名個(gè)數(shù)為1。

由于receive方法邏輯及調(diào)用的ecrecover,_decreaseAuthQuota方法未對(duì)調(diào)用的signatures做嚴(yán)格檢查,攻擊者傳入了自己生成的簽名,后續(xù)合約邏輯對(duì)signatures的映射值及其他計(jì)算時(shí),也并未有嚴(yán)格判斷,導(dǎo)致攻擊者成功執(zhí)行receive方法為自己轉(zhuǎn)移資金簽名。

(3) Poly Network 攻擊事件

2021年8月,跨鏈互操作協(xié)議 Poly Network 突遭黑客攻擊,使用該協(xié)議的 O3 Swap 損失慘重,在以太坊、幣安智能鏈、Polygon 三條網(wǎng)絡(luò)上的資產(chǎn)幾乎被洗劫一空,黑客在不到1小時(shí)時(shí)間內(nèi),分別盜走了 2.5 億、2.7 億、8500 萬美元的加密資產(chǎn),損失總額高達(dá) 6.1 億美元。

該攻擊事件主要由于中繼鏈驗(yàn)證人公鑰被替換。也就是跨鏈的中間驗(yàn)證人被攻擊者替換為自己可控。

協(xié)議內(nèi)部關(guān)系:

  • 中繼鏈驗(yàn)證人的公鑰存在 EthCrossChainData 合約;
  • EthCrossChainData 合約存在putCurEpochConPubKeyBytes 方法可以直接修改中繼鏈驗(yàn)證人公鑰;
  • EthCrossChainData 合約 owner 為 EthCrossChainManager 合約;
  • EthCrossChainData 合約的 putCurEpochConPubKeyBytes 方法可修改中繼鏈驗(yàn)證人角色。

EthCrossChainManager合約

上圖中,_executeCrossChainTx 方法未對(duì)傳入?yún)?shù)做嚴(yán)格限制,導(dǎo)致攻擊者傳入toContract,method參數(shù)均由攻擊者可控,由于協(xié)議內(nèi)部關(guān)系,攻擊者傳入經(jīng)過hash碰撞與putCurEpochConPubKeyBytes方法相同方法簽名,成功調(diào)用EthCrossChainData 合約的 putCurEpochConPubKeyBytes 方法直接修改中繼鏈驗(yàn)證人公鑰為自己可控,之后利用該驗(yàn)證人簽名惡意的資金轉(zhuǎn)移,獲取大量資金。

(4) Multichain(AnySwap) 攻擊事件

2022年1月,Multichain官方聲明協(xié)議跨鏈橋存在安全風(fēng)險(xiǎn),部分代幣存在被黑的風(fēng)險(xiǎn),督促用戶盡快取消授權(quán)。

事件核心原因:協(xié)議調(diào)用的底層代幣合約沒有實(shí)現(xiàn) permit 方法,但包含回退功能,所以調(diào)用 permit 方法合約正常運(yùn)行。

左AnyswapV4Router合約,右WETH9合約

上圖中anySwapOutUnderlyingWithPermit方法中,前三個(gè)參數(shù)均由調(diào)用者傳入,也就是from,token等參數(shù)均由攻擊者可控,當(dāng)參數(shù)可控后,攻擊者部署攻擊合約,將受影響的代幣合約地址設(shè)置為底層代幣參數(shù)。核心問題是,由于WETH9不存在permit 方法,但會(huì)調(diào)用WETH9的fallback方法進(jìn)行deposit操作,故調(diào)用不會(huì)發(fā)生錯(cuò)誤(交易不會(huì)回滾),所以當(dāng)用戶將資金授權(quán)給協(xié)議后,攻擊者會(huì)迅速將用戶資金轉(zhuǎn)移。

(5) Qubit Bridge 攻擊事件

2022 年 1 月,Qubit Finance 跨鏈橋Ethereum-Binance 被黑客入侵,損失超過 8000 萬美元。

核心問題:deposit方法中資金地址為address(0)時(shí)而safeTransferFrom未發(fā)生錯(cuò)誤,導(dǎo)致存款功能正常執(zhí)行。

QBridge合約

上圖中,deposit為正常存款方法,調(diào)用該方法中的IQBridgeHandler(handler).deposit時(shí),當(dāng)用戶傳入的resourceID映射tokenAddress地址為0地址時(shí),后續(xù)的tokenAddress.safeTransferFrom(depositer, address(this), amount);轉(zhuǎn)賬會(huì)正常執(zhí)行,導(dǎo)致方法及事件運(yùn)行正常,調(diào)用者可以成功存款。

這里比較重要的是官方 tokenAddress的ETH為零地址是官方所為(官方已聲明deposit功能為忽略的遺棄功能)。

(6) Meter Bridge 攻擊事件

2022 年 2 月 ,Meter.io 跨鏈協(xié)議遭到攻擊,合約并沒有阻止封裝的 ERC20 代幣與原生 gas 代幣的直接交互,損失約 430 萬美元。

事件核心問題:deposit方法進(jìn)行存款時(shí)未驗(yàn)證WBNB存款情況,導(dǎo)致攻擊者繞過判斷條件不進(jìn)行任何存款而正常獲取資金。

Bridge合約

上圖中,deposit和depositETH方法均為存款方法,而deposit方法存款時(shí),未驗(yàn)證存款為原生代幣的情況。攻擊者利用deposit存款時(shí),傳入WBNB地址,由于該方法未驗(yàn)證WBNB存款的情況,未進(jìn)行資金存儲(chǔ)轉(zhuǎn)移,之后調(diào)用depositHandler.deposit方法成功繞過判斷條件,最后攻擊者利用該缺陷,成功獲取大量資金。

(7) Wormhole 攻擊事件

2022 年 2 月 ,Ethereum和Solana兩大區(qū)塊鏈的重要橋接“蟲洞”(Wormhole)遭黑客攻擊,損失超過3.2億美元。

漏洞核心原因:verify_signatures調(diào)用的load_instruction_at方法中未驗(yàn)證instruction合法性,導(dǎo)致攻擊者可偽造,從而利用驗(yàn)證簽名獲取資金。

verify_signature.rs 接口合約

上圖中verify_signatures方法是跨鏈驗(yàn)證時(shí)所調(diào)用的簽名方法,由于verify_signatures方法調(diào)用了load_instruction_at方法,load_instruction_at方法為協(xié)議更新后的廢棄方法,該方法中未對(duì)傳入的instruction做嚴(yán)格檢查,導(dǎo)致攻擊者傳入了自己可控的值,攻擊者利用該簽名方法對(duì)自己的跨鏈請(qǐng)求進(jìn)行簽名,獲取大量資金。

(8) Li Finance 攻擊事件

2022 年3 月,以太坊上分布式跨鏈協(xié)議Li.Finance 受到了攻擊,攻擊者執(zhí)行了 37 次 call 注入,獲取了多個(gè)錢包中約 60 萬美元的資產(chǎn)(204 個(gè) ETH)。

該攻擊事件的核心問題是未對(duì)傳入的外部數(shù)據(jù)進(jìn)行嚴(yán)格限制,導(dǎo)致攻擊者傳入了自己可控call調(diào)用邏輯。

CBridgeFacet合約

上圖swapAndStartBridgeTokensViaCBridge 方法中,對(duì)傳入的_swapData參數(shù)未進(jìn)行嚴(yán)格限制,同樣的LibSwap.swap調(diào)用中,也未對(duì)該值進(jìn)行嚴(yán)格限制,導(dǎo)致swap方法中,_swapData可成功調(diào)用call方法進(jìn)行惡意操作,攻擊者利用該缺陷,進(jìn)行多次call調(diào)用獲取資金。

(9) Ronin Network 攻擊事件

2022 年 3 月, Axie Infinity側(cè)鏈Ronin驗(yàn)證器節(jié)點(diǎn)和 Axie DAO 驗(yàn)證器節(jié)點(diǎn)遭到破壞,導(dǎo)致在兩筆交易中從 Ronin 橋接了 173,600 個(gè)以太坊和 2550 萬美元的 USDC。

攻擊發(fā)生原因:

Sky Mavis 的 Ronin 鏈目前由 9 個(gè)驗(yàn)證節(jié)點(diǎn)組成。為了識(shí)別存款事件或取款事件,需要九個(gè)驗(yàn)證者簽名中的五個(gè)。攻擊者控制了 Sky Mavis 的四個(gè) Ronin 驗(yàn)證器和一個(gè)由 Axie DAO 運(yùn)行的第三方驗(yàn)證器。( 2021 年11月 - 12 月,Axie DAO 允許 Sky Mavis 代表其簽署各種交易,該事件停止后未撤銷許可名單訪問權(quán)限,攻擊者獲得了 Sky Mavis 系統(tǒng)的訪問權(quán)限,并使用無Gas RPC 從 Axie DAO 驗(yàn)證器獲取簽名)。

5. 總結(jié)及建議

通過上述跨鏈橋攻擊事件可以發(fā)現(xiàn),從去年兩個(gè)重要的跨鏈橋攻擊到今年目前為止已發(fā)生多個(gè)跨鏈橋攻擊事件,跨鏈橋攻擊明顯增多,被盜資金也頗為龐大,貌似黑客已經(jīng)盯上了跨鏈橋這塊肥肉。從表格總結(jié)來看,攻擊主要發(fā)生在跨鏈之前和簽名處,普遍均為合約漏洞,也存在官方馬虎大意造成的被盜事件。

對(duì)于越來越多的跨鏈項(xiàng)目及項(xiàng)目合約安全,可遵循以下安全建議:

  • 項(xiàng)目上線前對(duì)合約進(jìn)行安全審計(jì)
  • 合約調(diào)用接口需要嚴(yán)格排查其適配性
  • 版本更新時(shí)需要對(duì)相關(guān)接口及簽名安全進(jìn)行重新評(píng)估
  • 需要對(duì)跨鏈簽名者進(jìn)行嚴(yán)格審查以保證簽名不被惡意人員控制
責(zé)任編輯:趙寧寧 來源: FreeBuf.COM
相關(guān)推薦

2022-08-05 14:08:46

區(qū)塊鏈安全黑客

2022-06-01 23:27:38

區(qū)塊鏈加密貨幣數(shù)字資產(chǎn)

2022-07-06 10:11:11

跨鏈橋黑客Web3

2021-09-29 16:53:53

區(qū)塊鏈數(shù)據(jù)技術(shù)

2022-04-12 14:37:26

區(qū)塊鏈橋區(qū)塊鏈貨幣

2022-06-01 14:29:32

區(qū)塊鏈道德比特幣

2021-09-17 22:58:27

區(qū)塊鏈加密貨幣技術(shù)

2021-06-08 12:46:27

分布式阿里TCC

2012-04-09 13:35:10

Instagram

2017-07-26 10:21:46

DockerLinux容器

2023-08-28 16:55:05

2020-06-02 19:14:59

Kubernetes容器開發(fā)

2020-11-05 10:50:09

物聯(lián)網(wǎng)數(shù)據(jù)技術(shù)

2022-01-24 14:44:06

區(qū)塊鏈跨鏈技術(shù)

2022-11-28 09:00:03

編程bug開發(fā)

2016-12-14 08:30:14

2021-03-29 16:32:03

軟件代碼程序員

2020-04-21 11:03:34

微服務(wù)數(shù)據(jù)工具

2011-10-14 09:20:48

Lisp

2022-11-21 18:02:04

前端測試
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)