以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads

DEP:Grim Finance閃電貸安全事件分析

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正式發布2.0 版本:據Grin官方論壇,其已正式發布針對節點的2.0版本和錢包2.0版本,該版本的主要目標是為了支持即將到來的硬分叉升級。[2019/7/2]

0x03:漏洞分析

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

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

動態 | Grin計劃于7月中旬進行首次硬分叉:據coindesk報道,Grin開發人員今天就其網絡首次全系統升級(硬分叉)的區塊和預期激活日期達??成了大致協議。Grin核心開發人員Quentin Le Sceller周二在開發者電話會議上建議在區塊高度262,080激活硬分叉,預計將于7月17日6:28(UTC)達到此區塊高度。開發人員今天重新討論了Le Sceller提出的硬分叉時間表,該時間表還要求在6月初啟動此次升級的私人測試網絡,并在6月19日激活公共測試網(稱為Floonet)的升級。Grin核心開發人員表示,雖然提議的時間表可能會改變,但應該努力遵守。[2019/6/6]

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

動態 | Grin全職開發者完成本輪籌款計劃既定目標:據鏈聞消息,北京時間晚8:07左右,隨著一位捐贈人向Grin項目唯一全職開發人員Yeastplume的籌薪地址捐出10個比特幣,本輪為該開發者籌集2009年3月到8月薪酬的活動共計籌集到了約 5.5 萬歐元的資金,達到既定目標。Grin核心開發者Yeastplume的真名為 Michael Cordner,完全通過社區籌款獲得收入。不過,本輪籌款開始進行并不順利。今天上午,Grin創始人Ignotus Peverell在Grin論壇發布文章,直言自己對Grin早期的生態發展方式感到失望,?其中一個主要原因就是,為Yeastplume進行的籌薪活動不太順利, 當時籌集到的資金不足目標的10%。該文章發布之后,社區成員迅速解囊,幾個小時內完成了籌款。[2019/2/2]

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

0x04:修復方案

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

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

3.鎖定交易token:

0x05:總結

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

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

Tags:GRIGRINRINDEPgrin幣未來會漲上天BoringDAOonekeydepay

幣贏交易所
加密貨幣:消息人士:俄羅斯或將通過阻止借記卡向加密交易所付款以禁止加密貨幣

據Cointelegraph援引《福布斯》俄羅斯版周五報道,當地加密貨幣支付初創公司Joys的首席執行官AndreyMikhaylishin表示,俄羅斯央行目前正在考慮幾個潛在的選項.

1900/1/1 0:00:00
WEB3:福布斯對2022加密行業發展趨勢預測

預計到2022年,企業在區塊鏈解決方案上的支出規模將會達到117億美元,《福布斯》專欄作家針對明年區塊鏈、Web3.0市場發展趨勢做了預測.

1900/1/1 0:00:00
OBI:中國大陸地區BETH存量用戶清退說明

尊敬的用戶: 為響應當地政府監管政策要求,HuobiGlobal計劃于2021年12月31日24:00之前,在保證用戶資產安全的前提下,完成中國大陸用戶的清退.

1900/1/1 0:00:00
USDT:ZBG關於SAFEMOON暫停充幣的公告

公告編號2021122601各位關心ZBG的投資者們和項目方:SAFEMOON因錢包升級暫停充幣,具體開放時間以公告為準,給您帶來不便深感抱歉,敬請諒解.

1900/1/1 0:00:00
INS:COINS賞金獵人集合!參與瓜分1,300,000 COINS獎池!

親愛的CoinW用戶: 為回饋廣大用戶對CoinW的喜愛和支持,CoinW將開啟”COINS賞金獵人集合!參與瓜分1,300,000COINS獎池!”活動.

1900/1/1 0:00:00
CLU:NFT數據日報 | Mutant Ape Yacht Club蟬聯日成交量冠軍 (12.28)

NFT數據日報是由Odaily星球日報與?NFT?數據整合平臺NFTGO合作的一檔欄目,旨在向NFT愛好者與投資者展示近24小時的NFT市場整體規模、交易活躍度、子領域市占比.

1900/1/1 0:00:00
ads