“黑客拿著房主證明找物業拿鑰匙,證明是假的,卻從物業那里拿到了真的鑰匙”
事件回顧
2021年8月10日,PolyNetwork遭受了跨鏈攻擊,被轉移了6億美金的加密資產。攻擊者在多條公鏈上進行了攻擊交易,并通過跨鏈管理合約和中繼器組件完成了攻擊。
用上面物業的例子來解釋的話,黑客用假房主證明,從物業那里拿到了真的鑰匙(AllianceChain上經過簽名的Merkle證明)。
Balancer生態收益治理平臺Aura Finance發起部署至Optimism的治理投票:7月8日消息,Balancer生態收益治理平臺Aura Finance發起部署至Optimism的治理投票,投票截止日期為7月10日2:00,一旦投票獲得通過,跨鏈合約將部署至Optimism。
此前報道,6月份Aura Finance已上線Arbitrum。[2023/7/8 22:25:34]
攻擊解析
一、黑客在源鏈上初始化了一個本應是無效的攻擊交易。
二、攻擊交易在沒有被充分檢查的情況下被寫入源鏈,之后被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。
三、黑客在目標鏈上用步驟二的有效Merkle證明,調用PolyNetwork的ECCM合約,將keepers改成黑客控制的公鑰。
Certora發現Lido V2協議23個問題,Lido已解決部分問題:金色財經報道,智能合約安全分析項目Certora在推特表示,其研究人員共發現Lido V2協議23個問題,包括2個嚴重問題和5個高危問題。Lido團隊已回應和解決了部分問題。[2023/4/28 14:32:23]
四、獲得keepers權限后,黑客就可以在多條公鏈上任意解鎖資產了。
這里值得注意的是,PolyNetwork在有些鏈上的中繼器沒有通過攻擊交易,所以即使智能合約相似,某些目標鏈上資產并未受影響。
細節分析
一、黑客于北京時間2021年8月10日17:32:32在源鏈發起了一筆攻擊交易。
Across Protocol:ACX代幣將在Balancer上建立流動性池:11月28日,據官方推特,跨鏈橋Across Protocol表示,已批準在Balancer上建立ACX初始流動性的提案,將在ACX代幣正式流通后在Balancer上建立初始流動性池。此外,上線流動性池后,用戶還將可以通過添加流動性獲得額外的ACX獎勵,未來還可能會申請Balancer和Aura獎勵。[2022/11/28 21:07:36]
https://explorer.ont.io/tx/F771BA610625D5A37B67D30BF2F8829703540C86AD76542802567CAAFFFF280C#
Larry Cermak:目前人們搜索購買比特幣的次數是購買黃金的兩倍:TheBlock研究總監Larry Cermak發推稱,目前人們搜索購買比特幣的次數是購買黃金的兩倍。同樣的趨勢發生在2017年,但并沒有持續下去。[2021/1/17 16:23:36]
我們對交易進行了解碼,得到了以下參數映射。
二、此攻擊交易調用了一個method"66313231333138303933",其對應的簽名等于0x41973cd9。這筆交易應該是無效交易,可是卻被寫入源鏈并被中繼器納入了AllianceChain的Merkletree并簽字,然后發布到AllianceChain區塊中。Merkletree是用來證明交易是否真實存在的。其產生的跨鏈交易如下:
CertiK宣布完成對跨鏈DeFi平臺Kava的CDP和拍賣模塊的代碼審計:區塊鏈安全公司CertiK宣布完成對跨鏈DeFi協議Kava的CDP和拍賣模塊的代碼審計,并發布完整審計報告。報告顯示,CertiK發現并修復了可能導致未經授權的訪問、資金損失、級聯故障等已知漏洞以及其他安全漏洞,最終審計結果為Kava交付代碼具有非常高的置信度。整個審計過程歷時6周。[2020/7/15]
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:ANCNCEMERERKLANCQFinanceMyPoints E-CommerceBerserk Finance
今天市場走出了比較悲觀的行情,市場情緒也不可避免的躁動了起來。最大的影響還國內挖礦項目的繼續關停。合肥在線今日發布文章《我省全面清理關停虛擬貨幣挖礦項目》.
1900/1/1 0:00:00商場如戰場,每一次暗地里的廝殺,不見鮮血卻兇殘至極。近期很火的GameFi,發展到了什么階段呢?紅海還是藍海,還有什么機會嗎?當然紅海和藍海往往是一個相對的概念,不見得大家的標準都是一樣的.
1900/1/1 0:00:008月6日,由國家發展和改革委員會城市和小城鎮改革發展中心、區塊鏈服務網絡聯合中國移動創客馬拉松大賽組委會主辦.
1900/1/1 0:00:00鏈集市·讓區塊鏈落地更簡單 《區塊鏈行業觀察》專欄·第46篇作者丨RamishCheema 圖片丨來源于網絡 當投資者和消費者提到“區塊鏈”這個詞的時候,大多數人首先想到的就是比特幣.
1900/1/1 0:00:00《$HTCoin》——卡西斯“最有味道”的NFT藝術品——《$HTCoin》7月29至30日期間,富藝斯會在24小時內拍賣由卡西斯創作的、收入最高的白人男性藝術家的糞便之罐頭.
1900/1/1 0:00:008月5日EIP-1559上線,也將成為以太坊發展史上重要的里程碑。在EIP-1559上線前,尤其在5月之前,以太坊社區、尤其是礦工群體對EIP-1559還是有一定分歧的.
1900/1/1 0:00:00