2021年5月8日,據鏈聞消息,以太坊收益聚合協議RariCapital因集成了AlphaFinance產生了漏洞,損失近1500萬美元。事后,RariCapital官方發布了事故分析報告,分析了此次事故的主要原因。慢霧安全團隊在官方分析的基礎上,結合慢霧安全團隊對此次事件的深入分析,進一步解讀本次安全事故的原因。
攻擊細節分析
本次攻擊發生在RariCapital的RariManger合約中,整個過程下來就是攻擊者首先通過閃電貸從dYdX中借出巨量資金,然后不停的重復調用RariManger合約中的deposit和withdraw函數,完成獲利。如下圖:
LooksRare官方推特賬戶現已恢復正常:據LooksRare官方推特表示,其賬戶現已恢復正常。
此前報道,LooksRare官方推特賬戶在提交twitter blue服務申請之后暫時凍結,顯示“已停用”,并向推特反應相關問題。[2023/1/12 11:07:55]
那么用戶是如何通過deposit和withdraw這兩個操作獲利的呢?我們需要分析對應的函數:
LooksRare用戶可免費上架NFT并從OpenSea導入訂單:2月17日消息,LooksRare用戶可在接下來7天免費上架收藏品系列,此外,用戶可以從OpenSea直接導入訂單至LooksRareNFT。[2022/2/17 9:57:07]
以上是deposit函數的部分邏輯,首先deposit函數本身會調用內部的_depositTo函數,然后會再次調用getFundBalance函數來獲取合約的余額。getFundBalance函數最終是會調用到RariController合約的getBalance函數去獲取余額。最后是通過RariController合約中的AlphaPoolController庫的getBalance函數獲取余額。如下圖:
涂鴉先生Sam Cox、林明珠畫廊和SuperRare合作發行NFT:9月24日消息,英國藝術家涂鴉先生Sam Cox、林明珠畫廊和SuperRare合作發行NFT,其作品The Living Doodle NFT將于9月27日北京時間11時在SuperRare作為單一版本拍賣。(prnewswire)[2021/9/24 17:04:38]
流程上略微復雜,用圖來展示大概就是下面這樣:
Yearn.finance創始人AC推出Rarity生態系統賞金,單個最高達10萬美元:9月13日消息,Yearn.finance創始人Andre Cronje為類Loot游戲Rarity推出生態系統賞金:
擴展:最高5,000.00美元(例如Rarity Names、Rarity Forest);
UI:最高20,000.00美元(取決于實現的功能);
集成:最高20,000.00美元(在您的游戲中使用Rarity NFT);
完整游戲:最高100,000.00美元。
所有賞金請求必須通過github Issues提交。[2021/9/13 23:21:24]
從上面的分析不難發現,Rari合約最終是用到了AlphaFinance項目的ibETH合約的totalETH函數獲取合約的余額,目的是為了根據totalETH和totalSupply的比值計算出Rari合約真正的ETH余額。deposit函數是根據用戶的充值ETH的數量和比值計算要發放給用戶的REPT數量,而withdraw函數的公式也大同小異,同樣需要通過getBalance函數獲取合約的ETH余額并計算比值,然后根據用戶的REPT代幣的余額和比值計算需要返還給用戶的ETH的數量。但是問題恰恰出在這個獲取ETH余額的公式上。
NFT平臺Rarible完成175萬美元種子輪融資:NFT平臺Rarible完成175萬美元種子輪融資,投資機構包括1kx、CoinbaseVentures、ParafiCapital、CoinFund等機構。本輪融資資金將用于建設Rari平臺的DAO。[2021/2/3 18:49:12]
根據官方描述,從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@慢霧安全團隊
來源:鏈新 對于區塊鏈開發者來說,特別是那些熟悉懷俄明州區塊鏈第38號法案的人來說,佛蒙特區塊鏈有限責任公司法案(VermontBillForblockchain)為去中心化自治組織(DAOs).
1900/1/1 0:00:00熟悉的配方,熟悉的味道。眼下的數字貨幣市場越來越像早年的A股了。與A股早期階段類似,當比特幣這樣的主要權重品種盤整之際,數百種山寨幣迎來了狂歡時刻.
1900/1/1 0:00:00在過去的一周以太坊達價格到有史以來的新高,從兩周前的兩千一百美元下方攀升至三千三百美元上方。盡管以太坊打破了它自身美元計價的紀錄,卻仍未打破其比特幣計價的紀錄.
1900/1/1 0:00:00以太坊擁堵以及高昂的Gas費用讓其生態上的Dapp應用頭疼不已。為了打破這種境遇,以太坊于2019年開始推進ETH2.0項目,引入了兩個在以太坊1.0中并不存在的部分:CasperFFG?PoS.
1900/1/1 0:00:005月8日,CFTC公布了最新一期CME比特幣期貨周報,最新統計周期內BTC保持在一個相對狹窄的區域內震蕩,雖然在統計周期末段走出了一波快速回調,但是周內實際下跌幅度不足2000美元.
1900/1/1 0:00:00現在已經有超過200個服務集成了ENS,所以本文想展示一下dApp如何能好好利用ENS。在我們的文檔中,我們列舉了三種主要的集成ENS的辦法。這里我們也使用同樣的表述.
1900/1/1 0:00:00