比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > FTT > Info

Poly Network攻擊關鍵步驟深度解析_HAI

Author:

Time:1900/1/1 0:00:00

前言

北京時間2021年8月10日,跨鏈橋項目PolyNetwork遭遇攻擊,損失超過6億美金。雖然攻擊者在后續償還被盜數字貨幣,但是這仍然是區塊鏈歷史上涉及金額最大的一次攻擊事件。由于整個攻擊過程涉及到不同的區塊鏈平臺,并且存在合約以及Relayer之間的復雜交互,對于攻擊的完整過程和漏洞的根本原因,現有分析報告并未能梳理清楚。

整個攻擊分為兩個主要階段,包括修改keeper簽名和最終提幣。對于第二階段,由于keeper簽名已經被修改,因此攻擊者可以直接構建惡意提幣交易,具體可以參見我們之前的報告。然而對于修改keeper簽名的交易是如何最終在目標鏈執行的,目前并沒有詳細的文章闡明。而這一步是攻擊的最核心步驟。

本報告從修改keeper簽名交易入手(Ontology鏈上交易0xf771ba610625d5a37b67d30bf2f8829703540c86ad76542802567caaffff280c),分析了背后的原理和漏洞的本質。我們發現以下幾個原因是Keeper能被修改的原因:

源鏈上(Ontology)的relayer沒有對上鏈的交易做語義校驗,因此包含修改keeper惡意交易可以被打包到polychain上

目標鏈上(以太坊)上的relayer雖然對交易做了校驗,但是攻擊者可以直接調用以太坊上的EthCrossChainManager合約最終調用EthCrossChainData合約完成簽名修改

攻擊者精心夠著了能導致hash沖突的函數簽名,從而調用putCurEpochConPubKeyBytes完成對簽名的修改

區塊鏈游戲Synergy Land將遷移至Polygon:金色財經報道,目前正在開發的 web3 動作角色扮演游戲 Synergy Land 宣布將從 Solana 區塊鏈轉移到 Polygon。為了協助 Synergy Land 的遷移,Polygon 表示已經聘請了 Xternity,該公司旨在簡化將游戲玩家加入 web3 平臺的過程,其產品和服務包括用于存儲游戲內資產的加密錢包。該公司在一份聲明中表示,希望在今年第一季度末完成“初始游戲發售”。游戲的開發由 25 名員工組成的團隊管理。[2023/1/17 11:17:11]

涉及交易和合約

整個過程中的交互流程如下:

Ontology交易->OntologyRelayer->PolyChain->EthereumRelayer->Ethereum

以太坊

0x838bf9e95cb12dd76a54c9f9d2e3082eaf928270:EthCrossChainManager

0xcf2afe102057ba5c16f899271045a0a37fcb10f2:EthCrossChainData

0x250e76987d838a75310c34bf422ea9f1ac4cc906:LockProxy

0xb1f70464bd95b774c6ce60fc706eb5f9e35cb5f06e6cfe7c17dcda46ffd59581:修改keeper的交易

Polkadot Hackathon: North America 公布黑客松獲勝項目:9月18日消息,波卡公布 Polkadot Hackathon: North America 的獲勝項目,大將獲得項目為 XCM DOT Autostake,獎金 3 萬美元。此外,DAO 和治理類別中 Diora Network、Rooster DAO、Shivarthu 獲得前三名,DeFi 類別中 RoboFi、Polkadot Acala aUSD Credit Card、Humidefi 獲得前三名,界面和體驗類別中 Moonbridge、Subsocial Substrate StackExchange、Polkadot Point of Sale Terminal 獲得前三名,NFT 類別中 KodaDot:Moonsamal、Sociable Weaver、Ventur NT-NFT Pallet 獲得前三名。[2022/9/18 7:04:32]

Ontology

0xf771ba610625d5a37b67d30bf2f8829703540c86ad76542802567caaffff280c:修改keeper的交易

Poly

0x1a72a0cf65e4c08bb8aab2c20da0085d7aee3dc69369651e2e08eb798497cc80:修改keeper的交易

攻擊流程

整個攻擊大致可以分為三個步驟。第一個步驟是在Ontology鏈生成一條惡意交易(0xf771ba610625d5a37b67d30bf2f8829703540c86ad76542802567caaffff280c),第二個步驟是修改以太坊EthCrossChainData合約中的keeper簽名,第三個步驟構造惡意交易發起最終攻擊和提幣。

隱私保護支付協議Umbra上線Polygon:官方消息,以太坊區塊鏈上的隱私保護支付協議Umbra宣布上線Polygon。[2021/12/10 7:31:17]

步驟一

攻擊者首先在Ontology發起了一筆跨鏈交易,里面包含了一個攻擊payload:

可以看出交易包含了精心設計的函數名,目的在于通過造成哈希沖突的方式調用putCurEpochConPubKeyBytes函數。關于哈希函數沖突的細節在網絡上已有很多討論,可以參考.

隨后,該筆交易被OntologyRelayer接收,注意這里并沒有很嚴格的校驗。該交易會通過Relayer在PolyChain成功上鏈。EthereumRelayer會感知到新區塊的生成。

然而,這筆交易被EthereumRelayer拒絕了。原因在于EthereumRelayer對目標合約地址有校驗,只允許LockProxy合約作為目標地址,而攻擊者傳入的是EthCrossChainData地址。

因此,攻擊者攻擊之路在此中斷。但如前所述,包含惡意payload的攻擊交易已經在PolyChain成功上鏈,可被進一步利用。

步驟二

攻擊者手動發起交易,調用EthCrossChainManager合約中的verifyHeaderAndExecuteTx函數,將之前一步保存在PloyChain區塊中的攻擊交易數據作為輸入。由于該區塊是polychain上的合法區塊,因此可以通過verifyHeaderAndExecuteTx中對于簽名和merkleproof的校驗。然后執行EthCrossChainData合約中的putCurEpochConPubKeyBytes函數,將原本的4個keeper修改為自己指定的地址。

PlatON與ChainX、PolkaWorld達成全方位戰略合作:金色財經報道,全球隱私計算網絡與分布式經濟體基礎設施PlatON宣布與ChainX、PolkaWorld達成全方位戰略合作。

ChainX是基于Substrate框架開發且最早上線的項目,致力于比特幣Layer2拓展、數字資產網關及波卡2級中繼鏈的研究與應用,主網已經上線并平穩運行1年半。PolkaWorld是中國最大的polkadot社區之一,擁有完善的社區資源和較大的行業影響力。

此次PlatON與ChainX、PolkaWorld將從應用生態、節點建設、社區運營、技術合作等維度進行全方位的合作,ChainX也將作為PlatON與Polkadot生態之間的一座橋梁,助力兩大生態實現互融互通。

同時,PlatON還將與ChainX共同探討共同創辦孵化器,專注PlatON生態項目孵化,從資金、技術、社區全方位支持生態項目的建設,ChainX、PolkaWorld也針對目前社區熱議的PlatON應用生態圖譜給予專業的建議,通過應用生態圖譜,明確PlatON未來的戰略方向與實現路徑,通過孵化器,發掘為生態添磚加瓦的團隊/開發者,形成良性循環,共建繁榮穩定的PlatON生態藍圖。[2021/3/12 18:39:13]

步驟三

在keeper被修改之后,攻擊者直接調用目標鏈上的verifyHeaderAndExecuteTx函數,最終調用至Unlock函數,大量地轉移資金,給項目方帶來了嚴重的損失。具體的攻擊細節可參考我們之前的報告。

Polychain Capital加密對沖基金整體回報率可達1332.3%:一份投資者文件顯示,Polychain Capital的加密貨幣對沖基金在2016年的年回報率為2.7%,而2017年的年回報率為2278.8%。隨后,該指數在2018年暴跌60.4%,并在2019年(截至11月)飆升至56.1%。這種過山車式的變化象征著加密投資者都深諳的市場劇烈波動,其表現完全脫離了常識和常規市場。文件指出,在該對沖基金生命周期內持有資金的投資者將凈賺1332.3%,因此較長期的展望可能抵消增加的風險。彭博全球對沖基金指數顯示,2018年非加密貨幣對沖基金的整體回報率為5.9%,2016年、2017年和2019年分別為4.0%、9.2%和9.0%。不屬于加密貨幣領域的領先對沖基金在其整個周期中可獲得15%至35%的收益。Polychain Capital對此拒絕置評。回報能否實現,取決于Polychain Capital的投資者——包括著名風險投資公司Andreessen-Horowitz、Founders Fund、紅杉資本(Sequoia Capital)和Union Square Ventures——何時存取資金。(CoinDesk)[2020/3/30]

Relayer代碼分析

在本攻擊過程中,Ontology方和以太坊方均有Relayer負責將來自Ontology的交易在polyChain上鏈,以及將polychain上的交易放到以太坊。這兩個Relayer是由Go語言實現的服務進程。

然而我們發現,這兩個Relayer都缺乏有效的校驗。這導致

攻擊者可以在Ontology構造一條惡意的跨鏈交易,并且成功打包到polychain上。

雖然在以太坊的Relayer具有校驗功能,但是攻擊者可以直接同以太坊上的鏈上合約進行交互,直接執行惡意的函數。

OntologyRelayer完全信任來自Ontology上的跨鏈交易

PolyNetwork的?ont_relayer(https://github.com/polynetwork/ont-relayer)?負責監聽Ontology鏈上的跨鏈交易并將其打包入傳入PolyChain.

注:

在OntologyRelayer中,Side指OntologyChain;Alliance指PolyChain.

CrossChainContractAddress是Ontology鏈上原生編號為09的智能合約.

上圖中,OntologyRelayer啟動時開啟三個Goroutines分別負責監聽OntologyChain和PolyChain的跨鏈交易,以及對PolyChain上的跨鏈交易做狀態檢查。在本報告中,我們只關注69行的監聽Side的代碼邏輯。

在上圖中,OntologyRelayer調用Ontology鏈提供的RPC接口(第215行,調用SDK函數GetSmartContractEventByBlock)獲取區塊中觸發的智能合約事件;然后在第228和232行表明OntologyRelayer只監聽OntologyChain上由CrossChainContractAddress觸發的makeFromOntProof事件;

上圖中,在處理OntologyChain上的跨鏈交易時,OntologyRelayer總共做了五次校驗,分別是兩次向OntologyChain發送的RPC請求校驗(check1和check4),以及三次參數是否為空的校驗(check2,check3,和check5)。這五次校驗都屬于常規校驗,并未對來自OntologyChain上的跨鏈交易做語義上的校驗;第167和171行取出了在目標鏈上執行所需要的交易參數信息;第183行向PolyChain發送交易;

OntologyRelayer在構造了PolyChain上的交易后便向PolyChain發起RPC請求發送交易(第164行,函數調用SendTransaction);

這個名為ProcessToAliianceCheckAndRetry的Goroutine也僅僅是做了重發失敗交易的工作,仍然未對來自OntologyChain上的跨鏈交易做任何語義上的校驗。

至此,我們可以看出ont-relayer監聽所有來自OntologyChain由CrossChainContractAddress觸發的makeFromOntProof事件,并未對其做任何語義上的校驗,便向PolyChain轉發了交易。而任何人向Ontology發送的任何跨鏈交易都會觸發CrossChainContractAddress的makeFromOntProof事件,所以OntologyRelayer會將所有來自Ontology上的跨鏈交易都轉發到Polychain上。

EthereumRelayer中的無效校驗

EthereumRelayer?負責監聽PolyChain并將目標鏈為Ethereum的跨鏈交易轉發到Ethereum上。

EthereumRelayer啟動一個Goroutine來監控PolyChain;

EthereumRelayer監聽所有PolyChain上目標鏈為Ethereum的跨鏈交易;EthereumRelayer會校驗跨鏈交易的目標合約是否為config.TargetContracts中指定的合約之一,如果不是則不會發送這筆跨鏈交易到Ethereum上。

雖然EthereumRelayer對PolyChain上的跨鏈交易做了部分校驗,比如限制了目標合約,但是與PolyChain不同,任何人都可以向Ethereum上的EthCrossChainManager合約發送交易。換句話說,EthereumRelayer在這里做的校驗沒有實際的意義,只要包含惡意payload的跨鏈交易被成功打包進了PolyChain,那么任何人都可以直接使用已經打包好的區塊數據將payload發送到以太坊EthCrossChainManager合約并執行。

攻擊者正是利用了上述兩個缺陷,完成了攻擊流程中的步驟一和步驟二。

寫在最后

通過對整個攻擊流程的完整梳理和詳盡分析,我們認為Relayer的不完整校驗是攻擊得以發生的根本原因。其它方面則更多地屬于比較精彩的攻擊技巧。總而言之,跨鏈的校驗和鑒權是跨鏈系統安全的關鍵所在,值得社區付出更多的努力。

Tags:CHAChainAINHAIblockchain是什么軟件SignatureChainzoschaindogechain幣大跌

FTT
金色DeFi日報 | 騰訊音樂宣布首批數字藏品即將在QQ音樂上線_DEFI

DeFi數據 1.DeFi總市值:1069.16億美元 市值前十幣種排名數據來源DeFiboxDeFi總市值數據來源:Coingecko2.過去24小時去中心化交易所的交易量:43.

1900/1/1 0:00:00
新加坡發出89份加密貨幣支付牌照通知 幣安、Coinbase等在列_TEL

新加坡金融監管局新聞發言人再次向《區塊鏈日報》記者透露,目前已經向89家DPT申請的企業發出通知,如果申請人采取必要措施以滿足MAS對于持牌運營的要求,則隨后將收到MAS向申請人授予的許可證.

1900/1/1 0:00:00
幣圈大佬舉報百億上市公司:公司最新回應來了_比特幣

8月8日下午,億邦國際舉行新聞發布會,公司董事長胡東表示,已于上周五向浙江證監局實名舉報華鐵應急涉嫌嚴重財務造假、嚴重信息披露違規以及實際控制人胡丹峰及其配偶潘倩涉嫌巨額職務侵占掏空上市公司資產.

1900/1/1 0:00:00
波卡生態起步在即 哪五大發展方向值得關注?_POL

背景 距離Kusama插槽結束已經過去了一周多,5次拍賣鎖倉的KSM超過了114萬枚,占了KSM發行量的9.8%,而目前隨著第一輪插槽拍賣的結束.

1900/1/1 0:00:00
外媒:美國新的比特幣稅收計劃可能扼殺更環保的區塊鏈技術_區塊鏈

據外媒TheVerge報道,美國參議院正在討論的兩黨基礎設施法案可能會重塑加密貨幣世界,因為立法者對區塊鏈系統的各個部分的新稅收報告要求進行了辯論.

1900/1/1 0:00:00
用加密村的故事讀懂以太坊 EIP-1559_以太坊

頗受關注也富有爭議的EIP-1559提案就要在本周上線,這會給以太坊經濟學帶來什么改變?萬眾矚目的以太坊倫敦升級將于12965000區塊高度,預計北京時間8月5日,在主網正式上線.

1900/1/1 0:00:00
ads