“黑客拿著房主證明找物業拿鑰匙,證明是假的,卻從物業那里拿到了真的鑰匙”
事件回顧
2021年8月10日,PolyNetwork遭受了跨鏈攻擊,被轉移了6億美金的加密資產。攻擊者在多條公鏈上進行了攻擊交易,并通過跨鏈管理合約和中繼器組件完成了攻擊。
用上面物業的例子來解釋的話,黑客用假房主證明,從物業那里拿到了真的鑰匙(AllianceChain上經過簽名的Merkle證明)。
攻擊解析
一、黑客在源鏈上初始化了一個本應是無效的攻擊交易。
二、攻擊交易在沒有被充分檢查的情況下被寫入源鏈,之后被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。
身份預言機項目Clique:認證功能已上線PolygonID App:5月29日消息,身份預言機項目Clique發推稱,其認證功能(attestations)現已上線PolygonID App,第一次迭代將是基于用戶推特憑證的Sybil證明。
Clique稱,未來的一些合作伙伴可以使用這些憑證,包括Guild。這些初始憑證將用于在PolygonID支持的Dapp中進行抗女巫(Sybil)攻擊和人性證明。
去年10月消息,Clique完成300萬美元種子輪融資,GGV Capita等參投。[2023/5/30 9:49:37]
三、黑客在目標鏈上用步驟二的有效Merkle證明,調用PolyNetwork的ECCM合約,將keepers改成黑客控制的公鑰。
四、獲得keepers權限后,黑客就可以在多條公鏈上任意解鎖資產了。
DeFi收益監測協議APWine將上線Polygon:3月3日消息,DeFi 收益監測協議 APWine 宣布上線 Polygon,用戶將可使用 APWine 存入有息資產以標記收益率,并對沖 APY 波動風險。此外,用戶還可通過為 APWine 上的 AMM 提供流動性來賺取收益。[2022/3/3 13:35:10]
這里值得注意的是,PolyNetwork在有些鏈上的中繼器沒有通過攻擊交易,所以即使智能合約相似,某些目標鏈上資產并未受影響。
細節分析
一、黑客于北京時間2021年8月10日17:32:32在源鏈發起了一筆攻擊交易。
區塊鏈監控平臺PARSIQ在2021年新增50個合作伙伴,包括Solana、Polkadot等:10月11日消息,區塊鏈監控和工作流程自動化平臺PARSIQ在2021年的9個月時間里簽署50個合作伙伴關系,包括Polkadot(DOT)、Solana(SOL)、Chainlink(LINK)、Aave Finance(AAVE)、PancakeSwap、Algorand、Dash、Bitfury Crystal、AllianceBlock、SuperFarm等。PARSIQ的合作伙伴將其工具用于KYC/AML模塊、鏈上經濟設計以及DeFi和TradFi之間的集成。PARSIQ首席執行官Tom Tirman強調,未來幾個月將宣布更多的合作伙伴關系。
此外,在2021年,PARSIQ完成300萬美元A輪融資,投資方包括Solana Foundation、Axia8 Ventures、Mindworks VC、Krypital Group、CoinUnited、Transfero Swiss、Elevate Ventures、Sanctum Ventures等。新資金推動了PARSIQ下一階段的技術進步。(U.Today)[2021/10/12 20:21:44]
https://explorer.ont.io/tx/F771BA610625D5A37B67D30BF2F8829703540C86AD76542802567CAAFFFF280C#
加密風投基金PolychainCapital已出售所持全部MKR代幣1,315枚:加密風投基金PolychainCapital已于兩日前出售所持MKR代幣1,315.93枚。截至目前,該地址共有48,089枚ETH以及570枚yearn.finance代幣YFI。[2020/12/6 14:16:52]
我們對交易進行了解碼,得到了以下參數映射。
二、此攻擊交易調用了一個method"66313231333138303933",其對應的簽名等于0x41973cd9。這筆交易應該是無效交易,可是卻被寫入源鏈并被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。Merkletree是用來證明交易是否真實存在的。其產生的跨鏈交易如下:
動態 | Poloniex XMR錢包因進行維護暫時禁用:據Poloniex官方推特發文表示,Poloniex(P網)XMR錢包因進行維護已被禁用,錢包恢復時將在官方推特發布更新。[2019/3/3]
https://explorer.poly.network/tx/1a72a0cf65e4c08bb8aab2c20da0085d7aee3dc69369651e2e08eb798497cc80
三、跨鏈交易在目標鏈上調用了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定義如下:哈希樹可以用來驗證計算機中和計算機之間存儲、處理和傳輸的任何種類的數據。它們可以幫助確保從點對點網絡中的其他對等體收到的數據塊是未被破壞和未被改變的,甚至可以檢查其他節點是否撒謊和發送假塊。
Tags:POLChainCHAHAIPolkaFoundryFESSChainhallechainhealthchain
巴比特訊,8月29日,據大V@區塊鏈王大有發布的微博長文顯示,大約六個小時前有人將104個加密朋克通過wrappedpunks轉換成WPUNK,在fractional完成了碎片化.
1900/1/1 0:00:00據Cointelegraph消息,8月17日,薩爾瓦多央行BancoCentraldeReserva(BCR)發布了關于銀行應如何處理比特幣的2份文件草案.
1900/1/1 0:00:00撰文:ChrisDixon,a16z普通合伙人翻譯:盧江飛從Web2到Web3——你的抽成就是我的機遇.
1900/1/1 0:00:00原標題:《科普|閃電網絡的入賬容量問題》幾個星期以來,比特幣社區的很多人一直在討論閃電網絡的inboundcapacity問題.
1900/1/1 0:00:00據Cointelegraph消息,9月1日,區塊鏈研究公司Chainalysis發表報告表示,位于東歐地區的加密貨幣地址在非法活動中的曝光率僅次于非洲.
1900/1/1 0:00:002021年上半年NFT的銷售額超過了25億美元;可口可樂將與Tafi合作推出其首款NFT收藏品.
1900/1/1 0:00:00