2021 年 5 月 8 日,據鏈聞消息,以太坊收益聚合協議 Rari Capital 因集成了 Alpha Finance 產生了漏洞,損失近 1500 萬美元。事后,Rari Capital 官方發布了事故分析報告,分析了此次事故的主要原因。慢霧安全團隊在官方分析的基礎上,結合慢霧安全團隊對此次事件的深入分析,進一步解讀本次安全事故的原因。
本次攻擊發生在 Rari Capital 的 RariManger 合約中,整個過程下來就是攻擊者首先通過閃電貸從 dYdX 中借出巨量資金,然后不停的重復調用 RariManger 合約中的 deposit 和 withdraw 函數,完成獲利。如下圖:
Looks Rare開源Exchange V1智能合約:5月16日消息,NFT市場Looks Rare宣布開源其Exchange V1智能合約,包括核心交易合約、Librarie、目前的管理者合約、執行管理者和策略合約以及版稅相關合約。Looks Rare表示,未來Looks Rare將完全開源。[2022/5/17 3:20:37]
那么用戶是如何通過 deposit 和 withdraw 這兩個操作獲利的呢?我們需要分析對應的函數:
RareLink聯合創始人:ZK-Rollups短期依然不是Layer1的救星:金色財經報道,3月17日舉辦的“New Paradigm”系列活動第一期《Web3.0的下一代基礎設施是什么?》主題分享中,RareLink聯合創始人Kai-Tai Chang分享到,ZK-Rollups是一種在鏈下運行計算并通過有效性證明將它們提交到鏈上的縮放形式,ZK-Rollups可能是唯一能夠使加密技術擴展到數十億用戶的解決方案,它提供了唯一的隱私保障機構可能需要參與公共、可互操作的區塊鏈,以便充分保護專有客戶數據。一些早期采用者可能會快速推動生態系統的發展,但我們不能指望他們的成功會快速引來ZK-Rollups的熱潮,它們不完全兼容EVM,需要一定的修改及調整才能完成在Layer1和其他Layer2之間的來回跳轉。盡管Optimistic和ZK-Rollups之間的可編程性差距正在不斷縮小,但今天我們仍需要在簡單性,兼容性和結算速度中權衡。[2022/3/17 14:02:58]
LooksRare上線NFT稀有度排名功能:3 月 2 日,NFT 交易平臺 LooksRare 宣布與 NFT 稀有度排名工具 Rarity Sniper 合作,上線稀有度排名功能。[2022/3/2 13:32:03]
以上是 deposit 函數的部分邏輯,首先 deposit 函數本身會調用內部的 _depositTo 函數,然后會再次調用 getFundBalance 函數來獲取合約的余額。getFundBalance 函數最終是會調用到 Rari Controller 合約的 getBalance 函數去獲取余額。最后是通過 Rari Controller 合約中的 AlphaPoolController 庫的 getBalance 函數獲取余額。如下圖:
Rari Capital聯合創始人:alUSD和DYDX已加入兩個Fuse池:9月17日消息,Rari Capital聯合創始人Jack Lipstone在推特上表示,本周加密巨鯨“Tetranode”和Chainlink社區大使“ChainLinkGod.eth 2.0”一直在各種調整Fuse池。今日alUSD(Alchemix)和DYDX(dYdX Foundation)已加入兩個Fuse池。Lipstone稱,這是第一個支持DYDX作為抵押品的協議。[2021/9/17 23:32:14]
流程上略微復雜,用圖來展示大概就是下面這樣:
BiKi平臺RARE今日漲幅達36.96%:據BiKi行情數據顯示,截止今日14:10( GMT+8),平臺內幣種RARE今日漲幅達36.96%,現價2.0553USDT。
Unique.One (優一) 是一個非營利性且去中心化的NFT數字藝術市場。[2021/4/28 21:07:01]
從上面的分析不難發現,Rari 合約最終是用到了 Alpha Finance 項目的 ibETH 合約的 totalETH 函數獲取合約的余額,目的是為了根據 totalETH 和 totalSupply 的比值計算出 Rari 合約真正的 ETH 余額。deposit 函數是根據用戶的充值 ETH 的數量和比值計算要發放給用戶的 REPT 數量,而 withdraw 函數的公式也大同小異,同樣需要通過 getBalance 函數獲取合約的 ETH 余額并計算比值,然后根據用戶的 REPT 代幣的余額和比值計算需要返還給用戶的 ETH 的數量。但是問題恰恰出在這個獲取 ETH 余額的公式上。
根據官方描述,從 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@慢霧安全團隊
1.DeFi總市值:1394.4億美元 市值前十幣種排名數據來源DeFiboxDeFi總市值數據來源:Coingecko2.過去24小時去中心化交易所的交易量:45.
1900/1/1 0:00:00據媒體稱,美國SEC周三將批準VanEck比特幣ETF的決定期限從5月3日推遲到了6月17日。從正式提交申請開始,SEC通常會在45天之內做出決定.
1900/1/1 0:00:00公鏈需要去妥協適應大眾,勇敢進入新的市場進而帶動更多創新和商業模式。隨著行業發展,公鏈技術和應用模式均發展出了多個不同路線,基于這些路線,新的公鏈主網幾乎每隔幾周就會啟動一個,市場競爭愈發激烈.
1900/1/1 0:00:00距離第一次聽到比特幣這個詞匯,已經過去了十年的時間。對區塊鏈了解的越深,疑問反而越發的多了。無數的人奮斗在去中心的道路上,也有無數的人跌倒.
1900/1/1 0:00:00當前,幣圈涉嫌犯罪的情況越來越引起辦案機關的重視,幣圈otc作為從事法幣與數字貨幣交易的環節,在整個犯罪鏈條中更容易被發現,處于全案打擊的前端位置.
1900/1/1 0:00:00狂人本著負責,專注,誠懇的態度用心寫每一篇分析文章,特點鮮明,不做作,不浮夸!本內容中的信息及數據來源于公開可獲得資料,力求準確可靠,但對信息的準確性及完整性不做任何保證,本內容不構成投資建議.
1900/1/1 0:00:00