“黑客拿著房主證明找物業拿鑰匙,證明是假的,卻從物業那里拿到了真的鑰匙”
事件回顧
2021年8月10日,PolyNetwork遭受了跨鏈攻擊,被轉移了6億美金的加密資產。攻擊者在多條公鏈上進行了攻擊交易,并通過跨鏈管理合約和中繼器組件完成了攻擊。
用上面物業的例子來解釋的話,黑客用假房主證明,從物業那里拿到了真的鑰匙(AllianceChain上經過簽名的Merkle證明)。
攻擊解析
一、黑客在源鏈上初始化了一個本應是無效的攻擊交易。
二、攻擊交易在沒有被充分檢查的情況下被寫入源鏈,之后被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。
Conic Finance:收到漏洞警報,暫停了所有Omnipool:7月22日消息,Conic Finance發推稱,于7月22日3時收到了crvUSD Omnipool的漏洞警報,考慮到此前的ETH漏洞,實施了安全措施并暫停了所有Omnipool。第二次攻擊與ETH Omnipool的重入漏洞無關,攻擊者獲利30萬美元。[2023/7/22 15:52:03]
三、黑客在目標鏈上用步驟二的有效Merkle證明,調用PolyNetwork的ECCM合約,將keepers改成黑客控制的公鑰。
四、獲得keepers權限后,黑客就可以在多條公鏈上任意解鎖資產了。
這里值得注意的是,PolyNetwork在有些鏈上的中繼器沒有通過攻擊交易,所以即使智能合約相似,某些目標鏈上資產并未受影響。
2000枚比特幣從未知地址轉入幣安:金色財經報道,Whale Alert監測數據顯示,北京時間13:33:08,2000枚比特幣(約6000萬美元)從未知地址轉入幣安。此前3月15日消息,該巨鯨曾向幣安轉入2500枚BTC,當時價值6200萬美元。[2023/4/11 13:56:26]
細節分析
一、黑客于北京時間2021年8月10日17:32:32在源鏈發起了一筆攻擊交易。
https://explorer.ont.io/tx/F771BA610625D5A37B67D30BF2F8829703540C86AD76542802567CAAFFFF280C#
我們對交易進行了解碼,得到了以下參數映射。
二、此攻擊交易調用了一個method"66313231333138303933",其對應的簽名等于0x41973cd9。這筆交易應該是無效交易,可是卻被寫入源鏈并被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。Merkletree是用來證明交易是否真實存在的。其產生的跨鏈交易如下:
NFT交易協議sudoswap已發布治理代幣SUDO并開啟治理模塊:金色財經報道,NFT交易協議sudoswap已發布治理代幣SUDO并開啟治理模塊。其中XMON持有者可以通過lockdrop活動來獲得SUDO代幣,XMON代幣將從合約部署開始計算被鎖定1個月,每鎖定1個XMON可以獲得1萬枚SUDO;早期sudoAMM的流動性提供者(僅限交易池)和0xmons NFT持有者(快照日期之前)也有資格獲得SUDO空投。[2023/1/31 11:37:42]
https://explorer.poly.network/tx/1a72a0cf65e4c08bb8aab2c20da0085d7aee3dc69369651e2e08eb798497cc80
三、跨鏈交易在目標鏈上調用了PolyNetwork合約的EthCrossChainManager.verifyHeaderAndExecuteTx(),第一個參數包含了Merkle證明,解析如下:
Fortunas Finance(FRTNA)項目遭到閃電貸攻擊,幣價跌幅超過99%:金色財經消息,據CertiK監測,Fortunas Finance疑似受到閃電貸攻擊,導致其代幣價格驟然下跌超過99%。
合約地址:0x3949d773d188bb53e67cae443aa8e741878b5216[2022/9/22 7:14:12]
四、這個函數解析了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證明之前,應該對交易進行全面驗證。正如設計文檔中所示。
“Themanagementcontractfetchestheblockheadersfrom?chainA,?verifies?whetherornotthecrosschainparametersandtheproofarevalid,and?then?transmitsthenecessaryinformationto?chainB?intheformofanevent;”
"管理合約從A鏈獲取區塊頭,驗證跨鏈參數和證明是否有效,然后將必要的信息以事件的形式傳送給B鏈;"
因此,目標鏈應使用Merkle證明來驗證所收到的信息是未被破壞和未被改變的,而交易信息應在發送至目標鏈之前進行全面驗證。
附:Merkletree定義如下:哈希樹可以用來驗證計算機中和計算機之間存儲、處理和傳輸的任何種類的數據。它們可以幫助確保從點對點網絡中的其他對等體收到的數據塊是未被破壞和未被改變的,甚至可以檢查其他節點是否撒謊和發送假塊。
行情走勢莫測,就像未卜是人生,總有跌宕起伏的時候,你所期待的它一定會發生,時間早晚的問題,但是你目前所不期望的隨時都會發生,只是看你能否支撐到你所期望的出現,所以你要沉住氣、靜下心.
1900/1/1 0:00:00國家發改委近日組織召開視頻會議,要求各省區市對本地區虛擬貨幣“挖礦”活動進行清理整治,嚴查嚴處國有單位機房涉及的“挖礦”活動.
1900/1/1 0:00:00上周收線小陽十字星,上漲動能開始放緩,未能突破長期上行通道上軌線,同時也是潛在大杯柄頸線區域,今年上半年頂部也是在該趨勢線遇阻回落,表明該趨勢線的關鍵作用,也表明后面一旦有效突破.
1900/1/1 0:00:00中新社北京11月16日電題:全球數字經濟反壟斷熱潮中如何探尋中國路徑?作者楊東中國人民大學國發院研究員、北京市習近平新時代中國特色社會主義思想研究中心特約研究員全球正掀起一場數字經濟反壟斷熱潮.
1900/1/1 0:00:00金錢只是一種工具,并不是追求本身,但是在自身匱乏的時候,就不得不去先去積累這種工具。保持好奇,先知先行,是獲得金錢的一種方法。優秀的投機家們總是在等待,總是有耐心,等待著市場證實他們的判斷.
1900/1/1 0:00:00Filecoin的目的就是要建立一個相互連接的、標準一致的分布式存儲交易市場。這一網絡允許用戶自由選擇服務商,交易透明,并通過算法(智能合同)來保證交易的實施.
1900/1/1 0:00:00