“黑客拿著房主證明找物業拿鑰匙,證明是假的,卻從物業那里拿到了真的鑰匙”
事件回顧
2021年8月10日,PolyNetwork遭受了跨鏈攻擊,被轉移了6億美金的加密資產。攻擊者在多條公鏈上進行了攻擊交易,并通過跨鏈管理合約和中繼器組件完成了攻擊。
用上面物業的例子來解釋的話,黑客用假房主證明,從物業那里拿到了真的鑰匙(AllianceChain上經過簽名的Merkle證明)。
攻擊解析
一、黑客在源鏈上初始化了一個本應是無效的攻擊交易。
二、攻擊交易在沒有被充分檢查的情況下被寫入源鏈,之后被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。
Polygon:PolygonScan目前節點已重新同步,系統已恢復正常:2月23日消息,針對今日凌晨區塊鏈瀏覽器PolygonScan長時間數據不更新,Polygon官方在推特上表示,大約凌晨4:26左右,一些節點失去同步,這會導致一些節點短時間內無法驗證塊的反應。區塊生產從未停止,然而,網絡性能可能會出現暫時性下降。目前節點已重新同步,系統恢復正常。PolygonScan上的數據現已恢復正常。
Polygon上節點基礎設施提供商Rivet的Greg Lang表示,Polygon的問題似乎源于一次“異常大”的區塊重組,該重組發生在Polygon表示節點失去同步的兩分鐘之前。Lang表示,小規模的區塊重組在Polygon和其他基于以太坊虛擬機(EVM)的網絡上很常見,它們不一定引起關注,但這次的不同之處在于重組的規模,即157個區塊。(CoinDesk)[2023/2/23 12:24:54]
三、黑客在目標鏈上用步驟二的有效Merkle證明,調用PolyNetwork的ECCM合約,將keepers改成黑客控制的公鑰。
Ember Sword從Polygon遷移至ImmutableX:11月6日消息,Ember Sword表示已與以NFT為中心的以太坊擴展解決方案Immutable X建立合作伙伴關系,從Polygon遷移至ImmutableX的程序將在未來幾個月內完成。[2021/11/7 6:36:12]
四、獲得keepers權限后,黑客就可以在多條公鏈上任意解鎖資產了。
這里值得注意的是,PolyNetwork在有些鏈上的中繼器沒有通過攻擊交易,所以即使智能合約相似,某些目標鏈上資產并未受影響。
細節分析
一、黑客于北京時間2021年8月10日17:32:32在源鏈發起了一筆攻擊交易。
Chair.finance獲得Polygon Grant扶持計劃及生態支持:據官方消息,去中心化的權益類NFT交易平臺Chair.finance正式獲得Polygon Grant扶持計劃與生態支持。[2021/7/13 0:47:21]
https://explorer.ont.io/tx/F771BA610625D5A37B67D30BF2F8829703540C86AD76542802567CAAFFFF280C#
我們對交易進行了解碼,得到了以下參數映射。
基礎設施提供商Alchemy宣布支持Polygon:7月7日消息,基礎設施提供商Alchemy宣布支持以太坊擴容網絡Polygon,在Polygon上構建的開發人員現在可以使用Alchemy的工具包。(CoinDesk)[2021/7/7 0:34:54]
二、此攻擊交易調用了一個method"66313231333138303933",其對應的簽名等于0x41973cd9。這筆交易應該是無效交易,可是卻被寫入源鏈并被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。Merkletree是用來證明交易是否真實存在的。其產生的跨鏈交易如下:
https://explorer.poly.network/tx/1a72a0cf65e4c08bb8aab2c20da0085d7aee3dc69369651e2e08eb798497cc80
Polkamarkets與DeFi保險市場Bridge Mutual達成合作:波卡生態DeFi和預測市場Polkamarkets與DeFi保險市場Bridge Mutual達成合作,為Polkamarkets預測市場提供去中心化保險。與Bridge Mutual的集成將允許Polkamarket上的用戶以完全開放和去中心化的方式提供或申請保險。[2021/3/5 18:18:07]
三、跨鏈交易在目標鏈上調用了PolyNetwork合約的EthCrossChainManager.verifyHeaderAndExecuteTx(),第一個參數包含了Merkle證明,解析如下:
四、這個函數解析了Merkle證明,發現證明是有效的,此攻擊交易確實存在于已被簽名的Merkletree中。之后調用了EthCrossChainManager._executeCrossChainTx()函數去執行此交易,即調用toContract指向合約(0xcf2afe102057ba5c16f899271045a0a37fcb10f2)中的method(0x6631313231333138303933),傳入參數args(010000000000000014a87fb85a93ca072cd4e5f0d4f178bc831df8a00b)。而這個method指向putCurEpochConPubKeyBytes(bytes),因為其函數簽名與步驟二中提到的method簽名相同(均為0x41973cd9,此處為哈希碰撞),所以被順利執行,將keepers的公鑰改成了黑客的公鑰。以太坊上的交易如下:?
https://etherscan.io/tx/0xb1f70464bd95b774c6ce60fc706eb5f9e35cb5f06e6cfe7c17dcda46ffd59581
五、黑客改變公鑰后,即可以隨意解鎖資產。
事件總結
此次攻擊是由一連串交易構成的,其攻擊根源分析如下:
一、攻擊交易在沒有充分檢查的情況下被寫入源鏈。
二、中繼器會接收任意含有"makeFromOntProof"事件的交易。
三、中繼器將步驟一中的交易發布到了AllianceChain上。
四、在步驟二中,此攻擊交易被納入到AllianceChain的Merkletree上,產生了有效的Merkle證明。
五、原鏈上的ECCM合約通過步驟二產生的Merkle證明,驗證了該交易在源鏈上“確實存在”,原始數據并未被破壞、未被修改。不過需要強調的是,在構建將被發送到目標鏈的Merkle證明之前,應該對交易進行全面驗證。正如設計文檔中所示。
“ThemanagementcontractfetchestheblockheadersfromchainA,verifieswhetherornotthecrosschainparametersandtheproofarevalid,andthentransmitsthenecessaryinformationtochainBintheformofanevent;”
"管理合約從A鏈獲取區塊頭,驗證跨鏈參數和證明是否有效,然后將必要的信息以事件的形式傳送給B鏈;"
因此,目標鏈應使用Merkle證明來驗證所收到的信息是未被破壞和未被改變的,而交易信息應在發送至目標鏈之前進行全面驗證。
附:Merkletree定義如下:哈希樹可以用來驗證計算機中和計算機之間存儲、處理和傳輸的任何種類的數據。它們可以幫助確保從點對點網絡中的其他對等體收到的數據塊是未被破壞和未被改變的,甚至可以檢查其他節點是否撒謊和發送假塊。
巴比特訊,采用zk-SNARK和OptimisticRollup實現的以太坊二層隱私擴容解決方案ZkopruNetwork計劃兩周內在發布公共測試網,若再過兩周測試網無重大問題將發布主網合約.
1900/1/1 0:00:00當前,伴隨著智慧政務和數字城市的建設,政務數據正在大體量增長。如何安全有效共享政務數據,建設數字政府,是當前政府必須面對的問題.
1900/1/1 0:00:001958年,紐約公約簽署,旨在提供一個關鍵的治理基礎設施,以解決涉及政府和跨國公司的大規模貿易和投資糾紛.
1900/1/1 0:00:00據TheBlock9月5日消息,知名基金投資大鱷BillMiller旗下價值型基金MillerOpportunityTrust在周五的投資者更新報告中提到其比特幣敞口.
1900/1/1 0:00:00巴比特訊,8月16日。波卡生態貨幣市場協議KonomiNetwork宣布將于Polygon上推出KonomiOracle,從而為用戶提供一站式的加密資產管理解決方案.
1900/1/1 0:00:00原標題:《科普|NFT必知必會》作者:VeronicaCoutts 在本文中,我們將討論NFT是什么,數字藝術品分為哪些種類,數字藝術品存儲在哪里以及選購NFT需要注意哪些事項.
1900/1/1 0:00:00