以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

Rari 被黑事故分析:開心做聚合 無奈被攻擊_ETH

Author:

Time:1900/1/1 0:00:00

2021 年 5 月 8 日,據鏈聞消息,以太坊收益聚合協議 Rari Capital 因集成了 Alpha Finance 產生了漏洞,損失近 1500 萬美元。事后,Rari Capital 官方發布了事故分析報告,分析了此次事故的主要原因。慢霧安全團隊在官方分析的基礎上,結合慢霧安全團隊對此次事件的深入分析,進一步解讀本次安全事故的原因。

本次攻擊發生在 Rari Capital 的 RariManger 合約中,整個過程下來就是攻擊者首先通過閃電貸從 dYdX 中借出巨量資金,然后不停的重復調用 RariManger 合約中的 deposit 和 withdraw 函數,完成獲利。如下圖:

數據:NFT市場LooksRare總交易量突破30萬筆:金色財經報道,據Dune Analytics數據顯示,NFT市場LooksRare總交易量已突破30萬筆,本文撰寫時為313,319筆,當前總用戶量為116,652個,交易總額達到26,486,919,027美元。此外,自LooksRare推出以來,同期交易額已經超越OpenSea,后者自LooksRare發布后的交易額為22,799,421,274美元。[2022/10/1 22:43:29]

那么用戶是如何通過 deposit 和 withdraw 這兩個操作獲利的呢?我們需要分析對應的函數:

NFT市場LooksRare推出漏洞賞金計劃,賞金最高可達100萬美元:4月11日消息,NFT市場LooksRare在Web3漏洞賞金平臺Immunefi上推出漏洞賞金計劃,專注于其智能合約、網站和應用程序,旨在防止用戶的NFT和資金損失。該計劃將根據漏洞等級支付賞金,賞金最高可達100萬美元。[2022/4/12 14:18:40]

以上是 deposit 函數的部分邏輯,首先 deposit 函數本身會調用內部的 _depositTo 函數,然后會再次調用 getFundBalance 函數來獲取合約的余額。getFundBalance 函數最終是會調用到 Rari Controller 合約的 getBalance 函數去獲取余額。最后是通過 Rari Controller 合約中的 AlphaPoolController 庫的 getBalance 函數獲取余額。如下圖:

CrypToadzby GREMPLIN交易額達1.8億美元,超越NFT市場Rarible:12月26日,據最新數據顯示,九月初推出的新晉NFT項目CrypToadzbyGREMPLIN目前交易額已經達到1.8億美元,超越NFT市場Rarible和軟銀投資的SuperRare。CrypToadz是一個像素青蛙頭像NFT項目,本文撰寫時銷售量達到22,393筆,交易者總量7402,平均售價約為8000美元。[2021/12/26 8:05:04]

流程上略微復雜,用圖來展示大概就是下面這樣:

美食元宇宙游戲OneRare與Polygon Studios達成合作,將發布名廚招牌菜NFT:12月5日消息,Polygon旗下游戲和NFT部門Polygon Studios與美食元宇宙游戲OneRare達成合作,將知名廚師Arnold Poernomo、Saransh Goila、Jaimie Van Heije引入這一全新的數字世界。每位廚師都將推出自己的NFT,以慶祝其烹飪之旅。

據此前報道,OneRare完成200萬美元融資,Arkstream Capital、Momentum 6、StableNode、Exnetwork Capital、Enjinstarter、Everse Capital、Kangaroo Capital、Tag Ventures、Maven Capital、1010 Capital、CSP DAO、Skyman Ventures、FF Ventures、ZBS Capital和Lucid Blue Ventures等參投。[2021/12/5 12:52:40]

從上面的分析不難發現,Rari 合約最終是用到了 Alpha Finance 項目的 ibETH 合約的 totalETH 函數獲取合約的余額,目的是為了根據 totalETH 和 totalSupply 的比值計算出 Rari 合約真正的 ETH 余額。deposit 函數是根據用戶的充值 ETH 的數量和比值計算要發放給用戶的 REPT 數量,而 withdraw 函數的公式也大同小異,同樣需要通過 getBalance 函數獲取合約的 ETH 余額并計算比值,然后根據用戶的 REPT 代幣的余額和比值計算需要返還給用戶的 ETH 的數量。但是問題恰恰出在這個獲取 ETH 余額的公式上。

BiKi平臺RARE連續5日上漲 累計漲幅628.02%:據BiKi行情數據顯示,截止今日20:35( GMT+8),平臺內幣種RARE連續5日上漲,累計漲幅628.02%,現價5.11USDT。行情波動較大,請注意風險控制。[2021/2/16 17:22:22]

根據官方描述,從 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 充值到 Rari Capital 合約中,此時從 ibETH 獲取的比值還是正常的;

3、使用剩余的 ETH 充值到 ibETH 合約中,調用 ibETH 合約的 work 函數,為后續推高 ibETH 合約的 totalETH 的返回值做準備;

4、在 work 函數中同時對 Rari Capital 合約發起提現,由于上一步已經推高 totalETH 值,但是計算的 totalETH()/totalSupply() 的值相對于充值時被拉高,從而使攻擊者能從 Rari Capital 中使用等量的 REPT 獲取到更多的 ETH。

本次分析下來,主要的原因是協議的不兼容問題,攻擊者通過閃電貸和重入的方式,攻擊了 Rari Capital,造成了巨大的損失。慢霧安全團隊建議在 DeFi 逐漸趨于復雜的情況下,各 DeFi 項目在進行協議間交互時,需要做好協議之間的兼容性,避免因協議兼容問題導致的損失。

[參考鏈接]

Rari Capital 官方分析:

https://medium.com/rari-capital/5-8-2021-rari-ethereum-pool-post-mortem-60aab6a6f8f9

攻擊交易(其中一筆):

https://etherscan.io/tx/0x171072422efb5cd461546bfe986017d9b5aa427ff1c07ebe8acc064b13a7b7be

By:yudan@慢霧安全團隊

Tags:ETHTALARIRARIEtherBackDigital FilesARISTOFERRARI幣

加密貨幣
DeFi對金融世界的變革 究竟在哪?_EFI

本月,有一位在華爾街名聲遠波的大人物逝世了,他曾因操縱了金融史上規模最大、最具破壞性的龐氏騙局,于2009年被判入獄150年,他就是麥道夫(伯納德·L·麥道夫).

1900/1/1 0:00:00
金色趨勢丨知史鑒今 BTC或將迎來翻倍行情_區塊鏈

我們看下比特幣礦工收益長期走勢與比特幣現貨價格走勢之間的關系,研究可以發現,目前雖然價格已經遠遠超過2017年的牛市頂點2萬美金,不過礦工收益目前還只是剛剛超過17年比特幣2萬美金的水平.

1900/1/1 0:00:00
從頭開始揭秘 zk-SNARK (一)_ARK

近日以太坊基金會公開了正在支持的研發團隊的項目和領域,其中涉及「應用零知識證明」的團隊和技術最多,近 14 個項目.

1900/1/1 0:00:00
金色觀察丨算力從中國轉移北美對比特幣會有何影響?_比特幣

金色財經 區塊鏈5月9日訊? 盡管大多數比特幣(BTC)挖礦仍位于中國,但有跡象表明如今該活動已經開始向其他地方轉移.

1900/1/1 0:00:00
為什么以太坊Gas費降至今年新低?這4個??因素是關鍵_ETH

ETH在主要加密貨幣(按市值計算)中的日線圖上漲幅最大。截至撰稿時,ETH上漲5.1%,報2441.67美元。周線橫盤,月度上漲46.7%.

1900/1/1 0:00:00
7項指標前瞻BTC走勢:指標大都未突破前高 市場價格被高估程度降低_BTC

本月,BTC橫盤后開始下跌,從4月1日的開盤價58926.56美元下行至4月27日的收盤價55033.12美元,跌幅約為6.61%.

1900/1/1 0:00:00
ads