2021 年 5 月 8 日,據鏈聞消息,以太坊收益聚合協議 Rari Capital 因集成了 Alpha Finance 產生了漏洞,損失近 1500 萬美元。事后,Rari Capital 官方發布了事故分析報告,分析了此次事故的主要原因。慢霧安全團隊在官方分析的基礎上,結合慢霧安全團隊對此次事件的深入分析,進一步解讀本次安全事故的原因。
本次攻擊發生在 Rari Capital 的 RariManger 合約中,整個過程下來就是攻擊者首先通過閃電貸從 dYdX 中借出巨量資金,然后不停的重復調用 RariManger 合約中的 deposit 和 withdraw 函數,完成獲利。如下圖:
Twitter用戶爆料:NFT交易市場Rarible或存在授權合約風險:11月30日消息,據Twitter用戶爆料,NFT交易市場Rarible可能存在授權合約風險,在2019年底-2020年授權過Kyber Network 1155 Wrapper合約的用戶需盡快解除授權,以免發生風險事件。[2022/11/30 21:12:15]
那么用戶是如何通過 deposit 和 withdraw 這兩個操作獲利的呢?我們需要分析對應的函數:
NFT交易聚合器Gem已支持OpenSea稀有度開放標準OpenRarity:10月8日消息,NFT交易聚合器Gem首席開發者Vasa在社交媒體上透露,用戶現在可以使用“刷新”功能自行刷新Gem上任何NFT藏品或任何特定項目的元數據+價格+排名。此外,Gem目前已支持OpenSea的NFT稀有度開放標準OpenRarity,這意味著Gem現在支持了4家NFT排名服務提供商。[2022/10/8 12:49:19]
以上是 deposit 函數的部分邏輯,首先 deposit 函數本身會調用內部的 _depositTo 函數,然后會再次調用 getFundBalance 函數來獲取合約的余額。getFundBalance 函數最終是會調用到 Rari Controller 合約的 getBalance 函數去獲取余額。最后是通過 Rari Controller 合約中的 AlphaPoolController 庫的 getBalance 函數獲取余額。如下圖:
Rari Capital與OlympusDAO計劃將TRIBE與gOHM進行代幣交換:3月21日消息,穩定幣DeFi智能投顧Rari Capital與算法穩定幣協議OlympusDAO達成DAO協議,計劃將374萬枚TRIBE和577.18枚gOHM進行代幣交換,同時OlympusDAO將FEI納入財政部金庫,Fei協議將填補20%的債券容量,Olympus將被納入Tribe Turbo。[2022/3/21 14:09:18]
流程上略微復雜,用圖來展示大概就是下面這樣:
數字足球NFT收藏平臺Sorare完成5000萬美元融資:2月25日消息,數字足球NFT收藏平臺Sorare宣布完成5000萬美元融資,Uber等早期支持者、風險投資公司Benchmark領投,其他投資者包括風險投資公司Accel、Reddit公司聯合創始人Alexis Ohanian以及巴塞羅那前鋒和梅西隊友Antoine Griezmann。(彭博社)[2021/2/25 17:51:16]
從上面的分析不難發現,Rari 合約最終是用到了 Alpha Finance 項目的 ibETH 合約的 totalETH 函數獲取合約的余額,目的是為了根據 totalETH 和 totalSupply 的比值計算出 Rari 合約真正的 ETH 余額。deposit 函數是根據用戶的充值 ETH 的數量和比值計算要發放給用戶的 REPT 數量,而 withdraw 函數的公式也大同小異,同樣需要通過 getBalance 函數獲取合約的 ETH 余額并計算比值,然后根據用戶的 REPT 代幣的余額和比值計算需要返還給用戶的 ETH 的數量。但是問題恰恰出在這個獲取 ETH 余額的公式上。
區塊鏈足球游戲Sorare獲日本J聯賽球隊授權:基于區塊鏈的夢幻足球游戲Sorare新增了日本J聯賽的所有18支球隊和他們的球員。到目前為止,該游戲已經獲得78家俱樂部授權。
此前消息,Sorare完成400萬美元種子輪融資,e.ventures領投,Partech、Fabric Ventures、Semantic Ventures、Cygni Capital、世界杯冠軍André Schürrle和現有投資者參與投資。
Sorare利用區塊鏈進行球星卡交易。該交易平臺的收入在過去六個月增長超過10倍,從2019年12月的3萬美元增長到2020年6月的35萬美元。新資金將使該公司能夠擴大其團隊規模,以滿足快速增長的需要。另外,其7月份的銷售額為60萬美元。(Decrypt)[2020/8/18]
根據官方描述,從 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:ETHTALRARIARIethical僻義Crystal Of DragonRaribleCharix Token
注,原文作者為MICK MORUCCI 以下為全文編譯: 主流經濟學家因抨擊比特幣而聞名,另一方面,人類學家卻對它越來越感興趣。我是一名走進了比特幣兔子洞的人類學家及經濟學家.
1900/1/1 0:00:00dYdX 最近推出了基于 ZK-Rollup 模式(即鏈上數據)下的 StarkEx 可擴展性引擎的永續合約平臺.
1900/1/1 0:00:00比特幣近期仍然陷于 54000-60000 美元的區間保持橫盤震蕩走勢,同期以太坊繼續飆升,5月9日晚間首次突破 4000 美元.
1900/1/1 0:00:00前段時間 Gavin 分別 在 Github 上發布重構 XCM 的待開發清單以及 Kusama 平行鏈的上線清單,給社區帶來最新進展的同時.
1900/1/1 0:00:00以太坊1.0在DeFi生態系統中找到了殺手級應用。但是,隨著采用率的提高,基礎架構層的可擴展性,強大以及經濟可行性對以太坊和基于它的dApp的長期成功都變得至關重要.
1900/1/1 0:00:00今天看到一篇海外資深投資者的文章,在文章中,這位投資者給初入數字貨幣投資的小白用戶寫了幾點建議,我認為非常有價值,所以在接下來的文章中我和大家翻譯分享他的一些觀點.
1900/1/1 0:00:00