2021年5月8日,據鏈聞消息,以太坊收益聚合協議RariCapital因集成了AlphaFinance產生了漏洞,損失近1500萬美元。事后,RariCapital官方發布了事故分析報告,分析了此次事故的主要原因。慢霧安全團隊在官方分析的基礎上,結合慢霧安全團隊對此次事件的深入分析,進一步解讀本次安全事故的原因。
攻擊細節分析
本次攻擊發生在RariCapital的RariManger合約中,整個過程下來就是攻擊者首先通過閃電貸從dYdX中借出巨量資金,然后不停的重復調用RariManger合約中的deposit和withdraw函數,完成獲利。如下圖:
LooksRare更新掛單獎勵機制:認證系列才能獲得獎勵:10月3日消息,NFT市場LookRare官方發文表示將于10月3日上午9點(UTC)更新掛單激勵機制:此后經過驗證獲得標志的系列才有資格獲得掛單激勵。
此舉旨在為活躍用戶增加真實掛單的獎勵,同時更有效地為熱門系列提供流動性。掛單無認證標志的系列暫時無法獲得獎勵。[2022/10/3 18:37:54]
那么用戶是如何通過deposit和withdraw這兩個操作獲利的呢?我們需要分析對應的函數:
出售“幻想資產”的NFT市場Visionrare在進入公測一天后關閉:金色財經報道,旨在創建夢幻足球版NFT風險投資的初創公司Visionrare在經過一天的公測后關閉了其市場。該市場最初是為了使用戶可以購買代表真實公司的虛假股票的NFT,并與其他人競爭誰擁有最成功的投資組合。然而,據稱創始人沒有尋求游戲中出現的初創公司的許可以出售這些公司虛假股票的NFT。[2021/10/8 20:12:09]
以上是deposit函數的部分邏輯,首先deposit函數本身會調用內部的_depositTo函數,然后會再次調用getFundBalance函數來獲取合約的余額。getFundBalance函數最終是會調用到RariController合約的getBalance函數去獲取余額。最后是通過RariController合約中的AlphaPoolController庫的getBalance函數獲取余額。如下圖:
AC更新類Loot游戲Rarity代碼庫 “專長”模塊已上傳前半部分:9月8日消息,YFI創始人Andre Cronje更新了Fantom鏈上類Loot 游戲Rarity的代碼庫。此次更新上傳了”技能”模塊,同時將“專長”模塊的前半部分設定存儲至對應的合約地址中。[2021/9/8 23:09:10]
流程上略微復雜,用圖來展示大概就是下面這樣:
從上面的分析不難發現,Rari合約最終是用到了AlphaFinance項目的ibETH合約的totalETH函數獲取合約的余額,目的是為了根據totalETH和totalSupply的比值計算出Rari合約真正的ETH余額。deposit函數是根據用戶的充值ETH的數量和比值計算要發放給用戶的REPT數量,而withdraw函數的公式也大同小異,同樣需要通過getBalance函數獲取合約的ETH余額并計算比值,然后根據用戶的REPT代幣的余額和比值計算需要返還給用戶的ETH的數量。但是問題恰恰出在這個獲取ETH余額的公式上。
AC米蘭加入以太坊數字足球NFT收藏平臺Sorare:AC米蘭加入以太坊數字足球NFT收藏平臺Sorare,俱樂部2020-21陣容將作為以太坊上的數字交易卡NFT。Sorare玩家可以在市場上交易卡并使用它們來參加比賽。它們分為三種稀缺度:唯一(每季1個),超級稀有(每季10個)和稀有(每季100個)。 (CryptoBriefing)[2021/3/25 19:18:04]
根據官方描述,從ibETH合約獲取的totalETH函數獲取的值是可以被用戶操控的。以下是官方原文:
根據官方的描述,用戶可通過ibETH合約的work函數操控totalETH函數返回的值,導致Rari整個價值計算公式崩潰。我們分別分析ibETH的work函數和totalETH函數:
BiKi平臺RARE 今日最高漲幅31.95% 位24小時排行榜首位:據BiKi行情數據顯示,截止今日11:17( GMT+8),平臺內幣種RARE今日最高漲幅31.95%,位24小時漲幅榜首位,現價3.7763USDT。行情波動較大,請注意風險控制。[2021/3/22 19:06:42]
totalETH函數:
work函數:
以上分別是ibETH合約中的totalETH函數和work函數的部分實現。不難發現totalETH函數其實就是獲取合約的總的ETH的數量。而work函數,本身是一個payable函數,也就是說,用戶是可以通過work函數來控制ibETH合約中的ETH數量從而來改變totalETH返回的值的。更糟糕的是,work函數同時還支持調用其他的任意合約。那么整個思路就很清晰了。
攻擊流程
1、從dYdX中進行閃電貸,借出大量的ETH;
2、使用一部分的ETH充值到RariCapital合約中,此時從ibETH獲取的比值還是正常的;
3、使用剩余的ETH充值到ibETH合約中,調用ibETH合約的work函數,為后續推高ibETH合約的totalETH的返回值做準備;
4、在work函數中同時對RariCapital合約發起提現,由于上一步已經推高totalETH值,但是計算的totalETH()/totalSupply()的值相對于充值時被拉高,從而使攻擊者能從RariCapital中使用等量的REPT獲取到更多的ETH。
總結
本次分析下來,主要的原因是協議的不兼容問題,攻擊者通過閃電貸和重入的方式,攻擊了RariCapital,造成了巨大的損失。慢霧安全團隊建議在DeFi逐漸趨于復雜的情況下,各DeFi項目在進行協議間交互時,需要做好協議之間的兼容性,避免因協議兼容問題導致的損失。
RariCapital官方分析:
https://medium.com/rari-capital/5-8-2021-rari-ethereum-pool-post-mortem-60aab6a6f8f9
攻擊交易(其中一筆):
https://etherscan.io/tx/0x171072422efb5cd461546bfe986017d9b5aa427ff1c07ebe8acc064b13a7b7be
By:yudan@慢霧安全團隊
Tags:ETHTALRARIARIbeth幣種Fermat Capital ManagementFerrariSwapHEARIFYAI
來源:《科創板日報》 記者吳凡實習記者張洋洋 在比特幣價格的大起大落間,一直位居加密貨幣市場第二的以太坊近期正迎來自己的“星辰大海”.
1900/1/1 0:00:00最近,Fantom上火熱的高APY挖礦讓很多追求高收益的DeFi農民們跨鏈前往掘金,雖然大量用戶反映跨鏈時間久,操作卡頓,但還是不影響其熱度。其官方稱目前總交易量已經超過了1000萬筆.
1900/1/1 0:00:00比特幣挖礦自09年至今已經歷經了12年的歷史,算力增長的爆發期也是從2013年阿瓦隆挖礦芯片的批量生產開始,至今已經達到了數百萬倍的增長.
1900/1/1 0:00:00今年是以太坊坐過山車的一年,2021年開始的時候,以太坊的價格略高于720美元。然而在撰寫本報告時,以太坊的價格僅僅略低于4100美元.
1900/1/1 0:00:00哪種能源消耗更低的加密貨幣將被選中呢?特斯拉CEO埃隆·馬斯克今早發推稱,特斯拉暫停使用比特幣支付,正考慮使用能源消耗更低的加密貨幣.
1900/1/1 0:00:00以太坊軟件公司ConsenSys宣布正在與Microsoft合作,為其云計算操作系統Azure客戶提供基于以太坊的托管區塊鏈服務.
1900/1/1 0:00:00