“黑客拿著房主證明找物業拿鑰匙,證明是假的,卻從物業那里拿到了真的鑰匙”
事件回顧
2021年8月10日,PolyNetwork遭受了跨鏈攻擊,被轉移了6億美金的加密資產。攻擊者在多條公鏈上進行了攻擊交易,并通過跨鏈管理合約和中繼器組件完成了攻擊。
用上面物業的例子來解釋的話,黑客用假房主證明,從物業那里拿到了真的鑰匙(AllianceChain上經過簽名的Merkle證明)。
攻擊解析
一、黑客在源鏈上初始化了一個本應是無效的攻擊交易。
二、攻擊交易在沒有被充分檢查的情況下被寫入源鏈,之后被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。
孫宇晨向Poloniex交易所轉入7,100枚ETH:據KingData數據監控,孫宇晨個人錢包地址(0x176f3dab24a159341c0509bb36b833e7fdd0a132)于19小時前向Poloniex交易所轉入7,100枚ETH,價值2,163萬美金。[2022/4/13 14:22:40]
三、黑客在目標鏈上用步驟二的有效Merkle證明,調用PolyNetwork的ECCM合約,將keepers改成黑客控制的公鑰。
四、獲得keepers權限后,黑客就可以在多條公鏈上任意解鎖資產了。
這里值得注意的是,PolyNetwork在有些鏈上的中繼器沒有通過攻擊交易,所以即使智能合約相似,某些目標鏈上資產并未受影響。
Polygon鏈上NFT交易額突破1億美元:金色財經報道,據最新數據顯示,Polygon鏈上NFT交易總額突破1億美元,本文撰寫時為134,543,025美元,現階段Polygon鏈上交易額最大的NFT項目是Zed Run,當前交易額達到120,283,303美元。[2021/11/23 7:05:50]
細節分析
一、黑客于北京時間2021年8月10日17:32:32在源鏈發起了一筆攻擊交易。
https://explorer.ont.io/tx/F771BA610625D5A37B67D30BF2F8829703540C86AD76542802567CAAFFFF280C#
火幣日本和區塊鏈教育平臺PoL合作 共同制作平臺幣課程:根據官網消息,火幣日本與區塊鏈教育平臺PoL的運營商techtec進行合作,共同制作平臺幣課程。
首期課程將以獲得日本金融廳許可的數字資產HT為題材,從平臺幣的運行機制、用途、生態系統等方面制作系統的學習內容。
火幣日本負責人表示:“HT是火幣全球站發行的去中心化數字資產,自2018年發行以來,致力于在全球范圍內搭建部署HT生態系統。希望通過與PoL合作,為公眾提供一個學習平臺幣知識的機會,多方面了解平臺幣的實用性。”[2020/7/21]
我們對交易進行了解碼,得到了以下參數映射。
二、此攻擊交易調用了一個method"66313231333138303933",其對應的簽名等于0x41973cd9。這筆交易應該是無效交易,可是卻被寫入源鏈并被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。Merkletree是用來證明交易是否真實存在的。其產生的跨鏈交易如下:
公告 | Poloniex正解決ERC20代幣無法存取的問題:Poloniex發布公告稱,正在努力解決幾種ERC20代幣無法存取的問題,包括CVC,GNO,NXC,OMG,REP,STORJ和ZRX。[2018/6/28]
https://explorer.poly.network/tx/1a72a0cf65e4c08bb8aab2c20da0085d7aee3dc69369651e2e08eb798497cc80
三、跨鏈交易在目標鏈上調用了PolyNetwork合約的EthCrossChainManager.verifyHeaderAndExecuteTx(),第一個參數包含了Merkle證明,解析如下:
Poloniex承認用戶無法交易和提款但確信資金安全:數字貨幣交易平臺Poloniex日前連發三條推文對用戶資金安全問題進行澄清,稱“在用戶完成驗證的過程中,用戶雖然無法進行交易和提款但用戶資金是安全的且賬目清晰的。”Poloniex表示將積極鼓勵用戶在未來兩周內完成驗證工作。另外它提醒用戶警惕詐騙,表示在任何時候都不會要求用戶通過存款來恢復賬戶功能。5月27日Poloniex發布公告稱將遵守法律要求客戶進行身份驗證,隨后大量用戶抱怨未收到任何賬戶凍結通知和網上公告就被凍結賬戶,有的用戶甚至通過身份認證后仍無法進行交易或提款。[2018/6/1]
四、這個函數解析了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定義如下:哈希樹可以用來驗證計算機中和計算機之間存儲、處理和傳輸的任何種類的數據。它們可以幫助確保從點對點網絡中的其他對等體收到的數據塊是未被破壞和未被改變的,甚至可以檢查其他節點是否撒謊和發送假塊。
我們抬頭看時,總是覺得星星遙遠,但其實,宇宙大爆炸時形成的原子就是形成我們身體的原子,所以星星并不遠,因為我們就是星星本身。 ——卡爾·薩根 暖陽的下午,有點困,思想有些疲憊.
1900/1/1 0:00:00據Cointelegraoph8月17日消息,澳大利亞知名加密貨幣影響者AlexSaunders再次受到追隨者抨擊.
1900/1/1 0:00:00PolyNetwork攻擊者剛剛發布了自問自答。攻擊者表示,攻擊是為了好玩。選擇PolyNetwor是因為跨鏈攻擊很火。轉走代幣是為了保證安全。攻擊者稱:“當發現bug時,我有一種復雜的感覺.
1900/1/1 0:00:00美國參議院周一否決了加密貨幣行業支持的一項稅收修正案,該修正案旨在免除基礎設施法案中對非托管加密貨幣參與者的加密稅報告要求.
1900/1/1 0:00:00原標題:《獨家|靈蹤安全:Pinecone被攻擊事件分析》 作者:靈蹤安全 8月19日,BSC上的收益聚合項目PineconeFinance的保險庫受到黑客攻擊,損失約350萬沒PCT代幣.
1900/1/1 0:00:00據中國經濟網8月14日報道,近日,國家金融與發展實驗室副理事長、中國社會科學院金融研究所黨委書記胡濱在接受采訪時表示,數字人民幣的推出,為人民幣跨境支付結算提供了嶄新手段.
1900/1/1 0:00:00