2021年5月8日,據鏈聞消息,以太坊收益聚合協議RariCapital因集成了AlphaFinance產生了漏洞,損失近1500萬美元。事后,RariCapital官方發布了事故分析報告,分析了此次事故的主要原因。慢霧安全團隊在官方分析的基礎上,結合慢霧安全團隊對此次事件的深入分析,進一步解讀本次安全事故的原因。
攻擊細節分析
本次攻擊發生在RariCapital的RariManger合約中,整個過程下來就是攻擊者首先通過閃電貸從dYdX中借出巨量資金,然后不停的重復調用RariManger合約中的deposit和withdraw函數,完成獲利。如下圖:
LooksRare上線數字資產驗證功能:金色財經報道,據 LooksRare 官方社交媒體披露,該NFT交易市場已進行升級更新并上線了用戶數字資產檢查和驗證功能。[2023/2/3 11:45:03]
那么用戶是如何通過deposit和withdraw這兩個操作獲利的呢?我們需要分析對應的函數:
NFT市場SuperRare將裁員30%:1月7日消息,NFT市場SuperRare首席執行官John Crain宣布,SuperRare將裁員30%,并表示最近幾個月NFT市場激進增長正變得不可持續,由于此前過度招聘,因此他個人將“對這個錯誤負全部責任”。
不過,John Crain強調Web3、NFT、加密藝術、去中心化金融和治理方面還有很多創新和轉型尚未到來,盡管現在正面臨逆風,但加密市場仍有難以置信的機會。(TechCrunch)[2023/1/7 10:59:48]
以上是deposit函數的部分邏輯,首先deposit函數本身會調用內部的_depositTo函數,然后會再次調用getFundBalance函數來獲取合約的余額。getFundBalance函數最終是會調用到RariController合約的getBalance函數去獲取余額。最后是通過RariController合約中的AlphaPoolController庫的getBalance函數獲取余額。如下圖:
NFT交易平臺LooksRare推出聊天功能,平臺用戶和NFT持有者可發送消息:3月29日消息,NFT交易平臺Looks Rare與Etherscan合作,基于Blockscan Chat在其平臺推出聊天功能。用戶可通過點擊聊天,向NFT持有者或另一平臺用戶發送消息。未來,該平臺還將推出聊天通知功能。[2022/3/29 14:25:27]
流程上略微復雜,用圖來展示大概就是下面這樣:
NFT市場Rarible推出訂單管理工具,幫助阻止OpenSea上的可疑銷售訂單:1月8日消息,NFT市場Rarible周二宣布,已經推出一個訂單管理工具,允許Rarible用戶識別和取消來自NFT市場OpenSea的可疑銷售訂單。此前有消息稱,OpenSea上的一個漏洞可能會導致值錢的NFT(比如Bored Ape Yacht Club NFT)以遠低于其持有者實際預期的價格出售。
Rarible表示,去年年初,它開始聚合來自OpenSea的銷售訂單,以增加自己的多鏈NFT市場流動性。Rarible.com聯合創始人Alex Salnikov稱,在過去的幾個月里,Rarible用戶可以通過Rarible的Activity頁面訪問OpenSea數據。(Decrypt )[2022/1/8 8:35:05]
從上面的分析不難發現,Rari合約最終是用到了AlphaFinance項目的ibETH合約的totalETH函數獲取合約的余額,目的是為了根據totalETH和totalSupply的比值計算出Rari合約真正的ETH余額。deposit函數是根據用戶的充值ETH的數量和比值計算要發放給用戶的REPT數量,而withdraw函數的公式也大同小異,同樣需要通過getBalance函數獲取合約的ETH余額并計算比值,然后根據用戶的REPT代幣的余額和比值計算需要返還給用戶的ETH的數量。但是問題恰恰出在這個獲取ETH余額的公式上。
DeFi智能投顧Rari Capital因網站托管服務Vercel停機而短暫不能訪問:DeFi智能投顧Rari Capital此前因網站托管服務Vercel停機,而短暫不能訪問。目前已經恢復。Rari Capital表示,SushiSwap和Zapper疑似也曾遭遇此問題。[2021/5/5 21:25:44]
根據官方描述,從ibETH合約獲取的totalETH函數獲取的值是可以被用戶操控的。以下是官方原文:
根據官方的描述,用戶可通過ibETH合約的work函數操控totalETH函數返回的值,導致Rari整個價值計算公式崩潰。我們分別分析ibETH的work函數和totalETH函數:
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@慢霧安全團隊
比特幣近期仍然陷于54000-60000美元的區間保持橫盤震蕩走勢,同期以太坊繼續飆升,5月9日晚間首次突破4000美元.
1900/1/1 0:00:00撰文:0x13,律動BlockBeats5月4日,本有些沉寂的NFT領域再次沸騰了起來,LarvaLabs推出了他們的第三個NFT項目——Meebits.
1900/1/1 0:00:00摘要:本周鏈上交易量和費用都達到了歷史新高,比特幣和以太坊的鏈上數據都表明,隨著加密貨幣交易越來越成熟,并且網絡影響力越來越大,加固了持有這兩種資產的信念.
1900/1/1 0:00:002021年4月6日,由Pekka研究團隊撰寫的美國專利-“Methodsandapparatusforverifyingprocessingresultsand/ortakingcorrecti.
1900/1/1 0:00:00Etherscan鏈上數據顯示,美東時間5月12日下午,以太坊聯合創始人V神從柴犬幣ShibaInu的Uniswap池中撤出了95%的流動資金。 外網通常將這一行為比喻為“RugPull”.
1900/1/1 0:00:005月12日至13日間,BTC從57900美元跌至最低45750美元,最大跌幅超過20%。ETH、LTC等加密資產也同步下行,跌勢慘重.
1900/1/1 0:00:00