以太坊交易所 以太坊交易所
Ctrl+D 以太坊交易所
ads
首頁 > MANA > Info

Grim Finance閃電貸安全事件分析_DEPO:Paprprintr Financ

Author:

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

安全實驗室第一時間對本次事件深入跟蹤并進行分析。0x02:事件詳情

交易細節如下圖所示:

瀏覽上圖的交易過程可知,攻擊合約利用閃電貸借取代幣WFTM和BTC,將借取的代幣與自己鑄造的代幣質押到SpiritSwap里增加流動性獲取lp代幣,而問題就出現在攻擊者通過depositFor()實現質押的過程中。

通過Tenderly(https://http://dashboard.tenderly.co/tx/fantom/0x19315e5b150d0a83e797203bb9c957ec1fa8a6f404f4f761d970cb29a74a5dd6/debugger調試該筆交易,攻擊者多次遞歸調用depositFor函數,利用該函數獲取大量代幣:

動態 | 古靈幣 Grin 再次收到 50 個比特幣捐贈 捐贈人為比特幣最早期信仰者:完全由社區驅動的隱私幣項目古靈幣 Grin 開發基金再次收到了一筆共 50 個比特幣的捐贈,捐贈人匿名,捐贈者的比特幣來自于2010年12月的區塊,應為比特幣早期參與者。捐贈者曾聯系了Grin核心開發團隊并表示:我不會管你們如何花錢這筆捐贈,只是想確保你們可以處理它并根據需要進行分配。感覺又像是回到了 2009 年、2010 年的時候。不用擔心,你們做得很好。現在有了 Grin,真是太好了,我們的動機并不是賺錢,而是關于技術和協議。此前,Grin 開發基金曾在今年 5 月份收到過一筆共 50 個比特幣的捐贈,捐贈人匿名,不過捐贈者的比特幣來自于 2010 年 11 月 25 日挖出的 93709 區塊。古靈幣是一個完全去中心化的社區驅動項目,無 ICO 和預先挖礦,該項目開發資金完全依靠社區捐贈。[2019/11/12]

0x03:漏洞分析

動態 | Poloniex向Grin General Fund捐贈第六筆資金:據Poloniex交易所官方推特,Poloniex向Grin General Fund捐贈第六筆資金,此次金額為0.20488 BTC。截至目前,Poloniex已向Grin General Fund捐贈了3.60246 BTC。[2019/8/21]

depositFor()函數位于https://http://ftmscan.com/address/0x660184ce8af80e0b1e5a1172a16168b15f4136bf#code的第1115行:

動態 | 古靈幣 Grin 發布一季度資金透明度報告:收到資助 42.7 萬美元:古靈幣(Grin)發布了 2019 年一季度資金透明度報告,披露了該項目收到的資金資助和支出情況。報告顯示,第一季度該項目共收到 10091 枚古靈幣、16.7 枚比特幣和 3600 美元的資助,合計市值約為 10.76 萬美元(以 3 月底市場價值計)。此外,核心開發者@yeastplume 通過社區捐助,為自己籌措了今年 3 月到 9 月的工資,約 6.66 萬歐元的工資。該項目在第一季度支出約為 5.57 萬美元。[2019/5/7]

該函數的safeTransferFrom()方法從IERC20(token)調用,調用完該方法后,余額balance也會隨之變動,最后通過_mint()方法向用戶添加質押憑證代幣。其中調用的變量token可控,導致攻擊者可以自己實現safeTransferFrom()方法,將該方法重入到depositFor()發起攻擊。

以實施了5次重入攻擊為例,開始_pool的值為0,在重入depositFor方法的前四次里,攻擊者一直傳入自己鑄造的代幣,_pool的值會一直保持為0,但在第五次,也就是最后一次傳入100個受認可的代幣時,_after的值會變成100,而_afer-_pool的差值_amount也就是100,最后由于重入了5次,導致合約會向攻擊者鑄造100*5的質押憑證代幣。

其后果就是攻擊者向該合約質押自己鑄造不受認可的代幣,同樣會增加質押總量,最后利用多出來的質押憑證實現套利。

0x04:修復方案

1.由于depositFor()方法里的token可控才是導致這次攻擊事件的原因,因此只需要在傳遞參數的時候讓token不可控就行:

2.由于套利的原因是depositFor()方法里存在修改代幣數量的函數,因此還可以將修改代幣的方法單獨實現,這樣即使token變量可控,也無法成功套利:

3.鎖定交易token:

0x05:總結

經過完整分析,知道創宇區塊鏈安全實驗室明確了該次攻擊事件的源頭并非網傳的閃電貸攻擊,攻擊者利用GrimBoostVault合約的depositFor方法參數可控,實施了重入攻擊,將自己的鑄造的無價值代幣兌換成了質押憑證,最后通過withdrawAll方法實現套利,而閃電貸?攻擊者只是利用閃電貸擴大了套利值。

對于合約代碼而言安全性是十分重要的,每一個未經驗證的傳入參數都可能導致巨大的經濟損失,開發者在編寫重要操作方法時,須記住零信任原則,謹慎對待每一個傳入參數。

Tags:GRIGRINRINDEPOGrind TokenPaprprintr Financ

MANA
CoinW將于12/29 15:00全球首發QITCOIN

親愛的CoinW用戶: 幣贏CoinW將于2021年12/2915:00在創新區上線QITCOIN,開通QTC/USDT交易對.

1900/1/1 0:00:00
DeFi:2021現狀,2022前景_EFI:穩定幣

?來源|區塊鏈分析公司TheBlock 編譯|白澤研究院 本節概要: ●DeFi總鎖倉價值已經超過1000億美元,其中大部分被分配給了借貸平臺和去中心化交易所.

1900/1/1 0:00:00
Gate.io Startup:ALL.ART (AART) Initial Sale Result & Listing Schedule

1ALL.ART(AART)TokenSaleResultTheGate.ioStartupALL.

1900/1/1 0:00:00
【新增幣對公告】CRV/USDT、KEEP/USDT、OMG/USDT上線_COIN:kucoin交易所法人被抓

尊敬的CoinUp用戶:為給您帶來更加多元化的交易,CoinUp將於2021年12月24日上線CRV/USDT、KEEP/USDT、OMG/USDT交易對,並同步開放充提幣通道.

1900/1/1 0:00:00
Adshares (ADS)_RES:Mirrored ProShares VIX

一、項目介紹 Adshares是一個用于Metaverse中貨幣化空間的Web3協議。Adserver平臺允許用戶在Metaverse、區塊鏈游戲、NFT展覽和網站內租賃空間.

1900/1/1 0:00:00
每日行情解讀 | 加密市場多頭走強,短線有一定回調預期_USDT:usdt泰達幣怎么賺錢的

接近月底,加密市場上的利空逐漸消退。綜合各種因素來看,我們此前認為的12月震蕩局勢或已基本結束;伴隨市場需求增加,之前預測的明年小陽春行情或已悄然開啟.

1900/1/1 0:00:00
ads