2021年5月8日,據鏈聞消息,以太坊收益聚合協議RariCapital因集成了AlphaFinance產生了漏洞,損失近1500萬美元。事后,RariCapital官方發布了事故分析報告,分析了此次事故的主要原因。慢霧安全團隊在官方分析的基礎上,結合慢霧安全團隊對此次事件的深入分析,進一步解讀本次安全事故的原因。
攻擊細節分析
本次攻擊發生在RariCapital的RariManger合約中,整個過程下來就是攻擊者首先通過閃電貸從dYdX中借出巨量資金,然后不停的重復調用RariManger合約中的deposit和withdraw函數,完成獲利。如下圖:
安全團隊:rarible NFT交易平臺的discord遭受攻擊,釣魚鏈接正在流傳:5月12日消息,BlockSec告警系統于5月12日上午11點50分發現rarible的discord遭受攻擊,釣魚鏈接正在discord中流傳,項目方表示目前沒有任何空投、鑄造的活動,請不要點擊鏈接并及時解除授權,若確實丟失NFT可通過郵件與Rarible團隊建立聯系。[2022/5/12 3:09:32]
那么用戶是如何通過deposit和withdraw這兩個操作獲利的呢?我們需要分析對應的函數:
以上是deposit函數的部分邏輯,首先deposit函數本身會調用內部的_depositTo函數,然后會再次調用getFundBalance函數來獲取合約的余額。getFundBalance函數最終是會調用到RariController合約的getBalance函數去獲取余額。最后是通過RariController合約中的AlphaPoolController庫的getBalance函數獲取余額。如下圖:
NFT交易平臺Rarible宣布集成Flow鏈:11月11日消息,NFT交易平臺Rarible宣布集成Flow鏈,用戶已可在Rarible上創建、列出和交易基于Flow的NFT。[2021/11/11 6:45:35]
流程上略微復雜,用圖來展示大概就是下面這樣:
從上面的分析不難發現,Rari合約最終是用到了AlphaFinance項目的ibETH合約的totalETH函數獲取合約的余額,目的是為了根據totalETH和totalSupply的比值計算出Rari合約真正的ETH余額。deposit函數是根據用戶的充值ETH的數量和比值計算要發放給用戶的REPT數量,而withdraw函數的公式也大同小異,同樣需要通過getBalance函數獲取合約的ETH余額并計算比值,然后根據用戶的REPT代幣的余額和比值計算需要返還給用戶的ETH的數量。但是問題恰恰出在這個獲取ETH余額的公式上。
RariCapital社區發起FuseDAO改進提案:RariCapital發起FuseDAO改進提案1,以更新DAO池中“穩定”資產的IRM。該提案將使用Cream的“穩定”曲線,設置為25%的斜率,以更新整個DAO池中“穩定”資產的利率模型,使其更具競爭力。如果這項提案通過,將吸引更多貸方,并將增加流動性,從而為借款人提供更好的體驗。[2021/3/21 19:05:10]
根據官方描述,從ibETH合約獲取的totalETH函數獲取的值是可以被用戶操控的。以下是官方原文:
根據官方的描述,用戶可通過ibETH合約的work函數操控totalETH函數返回的值,導致Rari整個價值計算公式崩潰。我們分別分析ibETH的work函數和totalETH函數:
Gate.io將于今日中午12點開通RARI/USDT交易:據官方公告,Gate.io投票上幣第四十七期Rarible(RARI)投票上幣活動結束,本次活動參與人數為1723,共投出49,939,719票。票數超過1000萬票,符合上幣要求。按照規則,Gate.io已為用戶空投代幣獎勵,并將于10月14日(今日)12:00開通RARI/USDT交易和提現服務。詳情點擊原文鏈接。[2020/10/14]
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:慢霧安全團隊
Tags:ETHRARIARITALethereumpandaFERRARI幣Polarisblockchaincapital
歐洲中央銀行總裁克里斯蒂娜·拉加德警告說,加密貨幣易于洗錢。她同意英格蘭銀行行長安德魯·貝利的觀點,安德魯·貝利最近表示,加密貨幣沒有內在價值,如果投資于加密貨幣,投資者應該準備損失所有資金.
1900/1/1 0:00:00BTC行情分析: 1小時圖來看,K線呈三連陽形態目前在Boll上軌向上運行,MA30均線上穿MA60金叉延伸,MACD保持金叉向上運行的狀態,OBV呈上升趨勢,StochRSI金叉向上延伸.
1900/1/1 0:00:00消息面: 1、據Businessinsider消息,在今日《周六夜現場》的“周末更新”板塊中,演員們多次問特斯拉CEO埃隆·馬斯克,狗狗幣是什么?馬斯克回應說:“這是貨幣的未來.
1900/1/1 0:00:00親愛的用戶: HomiEx將于2021年5月10日15:00:00(GMT8)上線ONT/BTCONG/BTCNEST/BTC交易對.
1900/1/1 0:00:00親愛的CoinW用戶: CoinW將于10月26日起開啟“半幣江山”系列活動,我們將每周選取兩個幣種減免50%交易手續費.
1900/1/1 0:00:00Punk.Network:每天我都在關注項目的新動態,對于未來的發展,我們也想一起參與,所以特來問候.
1900/1/1 0:00:00