買以太坊 買以太坊
Ctrl+D 買以太坊
ads

Chain:SharkTeam:十大智能合約安全威脅之重放攻擊_Chain Estate DAO

Author:

Time:1900/1/1 0:00:00

重放攻擊是把原鏈網絡上的交易拿到目標鏈網絡上使用

問:我們常提到的智能合約漏洞真的是實際中威脅最大、發生最頻繁的安全漏洞嗎?

答:完全不是那樣。例如“溢出”、“外部調用”等常提到的智能合約安全漏洞并不是最常發生,威脅最大的。

到底哪些安全威脅從發生頻率和危害性上能稱為Top10的呢?SharkTeam合約安全系列課程之[十大智能合約安全威脅]和您一起討論和深入。第十課[詳解重放攻擊]。

一、什么是重放攻擊

重放攻擊是把原鏈網絡上的交易拿到目標鏈網絡上使用,即一筆交易重復執行,我們根據類型可以分為交易重放和簽名重放。

交易重放是將原鏈上的交易一成不變放到目標鏈上,重放過后交易在目標鏈上可以正常執行并完成交易驗證。

Sharpe Labs推出的質押收益優化器Magnum已上線主網:4月6日消息,DeFi 基礎設施開發商 Sharpe Labs 推出的質押收益優化器 Magnum 已上線主網。Sharpe Magnum 是一種建立在 Lido、Morpho 和 Aave 之上的質押收益優化器,旨在無縫提高質押收益的資本效率。

Magnum 目前免費使用,管理費和績效費為 0%。用戶只需支付 Aave 閃電貸、stETH 兌換和 Gas 費用。Sharpe Labs 同時推出社區獎勵計劃,用戶將根據其在 Magnum 流動性池中的資產份額追溯領取 Sharpe Token。[2023/4/6 13:48:10]

簽名重放利用私鑰簽名的消息進行重放,重放過程中無需像交易重放那樣去重放整個交易,而是重放相應的簽名信息。

在實施EIP 155后,交易簽名帶有chainid,即鏈與分叉鏈之間的標識符。由于chainid不同,交易重放無法完成,簽名重放可以間接完成。在以太坊完成分叉后,ETHW主網出現數起重放攻擊事件,讓我們回顧一下這些攻擊事件前因后果。

地球數字孿生平臺Blackshark.ai完成2000萬美元A輪融資,微軟風投分支M12和Point72領投:11月11日消息,微軟飛行模擬器背后的奧地利地球數字孿生平臺Blackshark.ai完成2000萬美元A輪融資,微軟風投分支M12及Point72 Ventures領投。Google Earth聯合創始人Brian McClendon和Y Combinator前首席運營官Qasar Younis加入顧問團隊。新資金將用于開發和擴展其復制地球的技術。Blackshark.ai拆分自游戲工作室Bongfish,致力于讓他們的世界構建技術超越單純的游戲環境。他們的技術基礎是通過機器學習、智能猜測和計算能力,將廣泛可用的2D圖像轉化為精確的3D圖像。元宇宙也會是未來的應用方向之一。(Tech Crunch)[2021/11/11 21:43:13]

二、攻擊事件分析

2.1 Optimism

2022年6月9日消息,據Optimism與加密貨幣做市商 Wintermute 透露,2000萬個Optimism代幣被黑客盜取。重放攻擊過程如下:

CoinShares董事長:人們對比特幣是波動性極大資產的看法已減弱:CoinShares董事長Danny Masters對CNBC表示,人們對比特幣是一種波動性極大的資產的看法已經減弱,“因為事實證明,其他資產類別的波動性遠高于人們的預期。比特幣在主流投資者中已經擺脫了以前的負面污名,現在的問題不再是企業是否會接觸這種數字資產,而是何時接觸、接觸多少。”他引用了Square、Microstrategy和Paypal的投資。此外,他表示,金融格局已經發生了變化,對投資組合經理來說,不投資比特幣可能比投資比特幣風險更大。(Cointelegraph)[2020/12/3 22:56:47]

(1)5月27日,Optimism地址0x2501向Optimism/L2上的0x4f3a地址轉賬2000萬OP,0x4f3a地址在Ethereum/L1上是Wintermute的多簽合約地址,但此時在Optimism/L2上面并沒有部署合約;

(2)6月1日,黑客地址0x8bcf部署合約0xe714。

聲音 | CoinShares首席執行官:傳統機構正在逐步涌向加密市場:據CCN報道,CoinShares首席執行官Meltem Demirors稱,目前很多投資者還沒有購買加密貨幣,越來越多傳統金融機構正在將加密市場視為一種創造新的收入來源,可以發揮創新,以及建立企業價值的方式。未來五年,傳統企業將開始采用不那么集中的網絡和應用程序,我們無法確定何時會發生這種轉變,但這是不可避免的。如果美國、日本和韓國等主要市場制定明確的指導方針來規范和治理ICO市場,那將為機構開辟一條監管渠道,以安全穩定的方式投資加密市場。[2018/11/17]

(3)6月5日,黑客通過重放Ethereum/L1上的交易創建了Gnosis Safe: Proxy Factory 1.1.1合約,其地址與Ethereum/L1上一樣;然后地址0x60b2通過合約0xe714部署了多簽合約0x4f3a,合約所有權歸黑客所有,因此5月27日轉入的2000萬OP被黑客盜取。在Gnosis Safe: Proxy Factory 1.1.1合約中,其中創建代理合約函數createProxy如下:

Blockstack和ShapeShift為挑戰創建DApp通用錢包者提供高達5萬美元獎金:據bitcoin magazine消息,Blockstack與ShapeShift合作,為挑戰開發DApp通用錢包的開發人員提供高達5萬美元的獎金。比賽于4月25日美國東部時間上午9點開始,一直持續到6月25日晚上11點59分。 獲獎項目將于2018年6月29日公布。[2018/4/26]

Gnosis Safe: Proxy Factory 1.1.1合約使用的是0.5版本的Solidity,使用new來創建合約時使用的是create命令,而不是create2。使用create命令創建合約,合約地址是msg.sender以及nonce來計算的。在Ethereum/L1上面,創建多簽合約0x4f3a的msg.sender就是Gnosis Safe: Proxy Factory 1.1.1的地址,黑客在Optimism/L2通過重放交易來創建于Gnosis Safe: Proxy Factory 1.1.1合約的主要目的就是為了保證在Optimism/L2上創建合約0x4f3a的msg.sender與在Ethereum/L1上一致,那么黑客可以很方便的通過智能合約(合約0xe714)調用createProxy函數來創建出地址是0x4f3a的合約。

(4)6月5日,多簽合約0x4f3a在接收到2000萬OP后,將100萬OP轉賬給黑客地址0x60b2,然后將100萬OP兌換成了720.7 Ether。

(5)6月9日,合約0x4f3a將其中的100萬OP轉賬給了賬戶地址0xd8da, 其他的1800萬OP仍然在合約0x4f3a中。

本次攻擊根本原因是:交易重放、Solidity舊版本漏洞以及主鏈和側鏈交易簽名驗證等綜合因素

2.2 Omni

2022年9月18日,以太坊合并完成后,PoW鏈遭到PoS鏈上交易的重放攻擊,根本原因是網橋未正確讀取并驗證區塊鏈的chainid。攻擊者首先通過Gnosis鏈的Omni跨鏈橋轉移了200 WETH,然后在PoW鏈上重放了相同的消息,獲得了額外的200 ETHW。

(1)PoS鏈交易hash:0xbddb0cc8bc9949321e1748f03503ed1a20dd618fbf0a51dc5734c975b1f8bdf5

(2)PoW鏈交易hash:0x9c072551861ce384203516f4d705176a2d2e262d5b571d853467425f1a861fb4

我們對比發現兩筆交易訪問的合約相同,并且inputdata完全相同,即調用了同一個合約的同一個函數并且參數相同,根據相同的方法簽名ID 0x23caab49可知,黑客調用safeExecuteSignaturesWithAutoGasLimit函數。

在正常的交易中,我們通過nonce來進行排序交易,避免重復交易。在跨鏈中,我們會根據chianid進行識別鏈的類型,比如以太坊主網的chainid是1,ETHW主網的chainid是10001。

我們查看一下Omni Bridge驗證chainid的邏輯,發現chainid的來源于unitStorage中存儲的值,而不是通過操作碼 CHAINID(0x46)直接讀取的鏈上chainid。

unitStorage是合約EternalStorage中的狀態變量,sourceChainId()函數所在的合約BasicAMB繼承了BasicBridge和VersionableAMB。其中,BasicBridge陸續繼承了合約EternalStorage。這里保存的chainid是預先存儲好的,如果發生區塊鏈的硬分叉而chainid又沒有重新設置或者chainid人為設置有誤,從合約層面上來說,由于不是通過操作碼獲取的chainid,不會正確驗證跨鏈消息的實際chainid。

本次攻擊根本原因是:主要是Omni使用的solidity版本是0.4.24,采用的是手動存儲和更新chainid的方式,并未通過EIP-1344中規定的CHAINID(0x46)操作碼進行實際chainid獲取。

三、預防措施

針對重放攻擊主要有以下幾種預防的方法:

(1)可以在簽名消息中加入chainid和nonce兩個參數值,chainid用于識別鏈ID的標識符,nonce是交易次數計數值。

(2)記錄簽名是否使用過,比如利用mapping進行簽名中對應參數映射為bool值,這樣做可以防止簽名多次使用。

(3)項目上線前,需聯系專業的第三方專業審計團隊進行審計。

來源:tuoniaox

鴕鳥區塊鏈

媒體專欄

閱讀更多

金色早8點

比推 Bitpush News

Foresight News

PANews

Delphi Digital

區塊鏈騎士

深潮TechFlow

鏈捕手

區塊律動BlockBeats

DeFi之道

Tags:HAICHAChainAINhundredchainChain Estate DAOstar kay Chainbankquickchain

抹茶交易所
MEV:以太坊的兩個基礎:區塊提議和MEV-Boost的重要性及解決方案_MEVR幣

來源:@SalomonCrypto 作者:Haym 以太坊的兩個基礎:區塊提議和MEV-Boost什么是區塊提議者?什么是 MEV-Boost.

1900/1/1 0:00:00
CRYPT:Crypto.com 會不會是下一個暴雷的平臺?_CRYPTO

撰文:Jack FTX 宣布破產的那天,不少人意識到,FTX 的暴雷,或許揭開了加密機構們的最后一塊遮羞布.

1900/1/1 0:00:00
DEX:巨頭倒下 加密市場的去中心化之路_FTX幣

加密市場中心化機構之間如同家族聯姻一樣,正在上演“一榮俱榮,一衰俱衰”的破產大戲,其不斷沖擊加密市場用戶的信心,也沖擊了中心化機構在加密市場的地位.

1900/1/1 0:00:00
TER:一文梳理與FTX有關聯的53家公司_The Swedish Trust

2022年 5 月,《福布斯》旗下 Forbes Digital Assets 針對交易量最高的 60 家加密貨幣交易所和提供加密貨幣服務的交易公司發起了一項調研工作.

1900/1/1 0:00:00
BSP:德州撲克類 GameFi 游戲對比分析_NBS

WLabs 編者按:德州撲克一直是 W labs 認為最適合做鏈游的一款游戲,上手簡單,博弈性強,受眾面大.

1900/1/1 0:00:00
比特幣:BTC 和 DeFi 主義者如何看待FTX 破產?_SDT

撰寫:Luiz Ramalho編譯:深潮 TechFlow在過去的一周里,我瀏覽了比特幣和 DeFi 主義者對于 FTX 的崩潰的討論,這些討論內容讓我覺得很有趣.

1900/1/1 0:00:00
ads