比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads

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

Author:

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

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

攻擊細節分析

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

NFT市場Rarible宣布支持DOGAMí原生Token DOGA:金色財經報道,據Rarible官方社交媒體報道,該NFT市場已宣布接受區塊鏈游戲DOGAMí原生Token DOGA,這意味著Rarible旗下250萬月活用戶可以使用自己的Tezos錢包直接連接到Rarible平臺,并使用DOGA購買和出售所有基于Tezos區塊鏈的NFT系列。

據此前相關報道,DOGAMí曾于2021年底完成600萬美元融資,育碧和Animoca Brands等區塊鏈游戲行業巨頭參投。[2022/9/12 13:24:11]

多鏈開源NFT協議Rarible Protocol將集成Immutable X:5月24日消息,多鏈開源NFT協議Rarible Protocol正在集成Layer2擴容解決方案Immutable X,將使基于該協議的項目能夠通過Immutable X在以太坊上允許用戶低成本交易NFT。Rarible Protocol由NFT市場Rarible開發,是一套面向NFT構建者的工具,目前由Rarible DAO治理。[2022/5/24 3:38:26]

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

Yearn創始人AC發文介紹類Loot游戲Rarity屬性:9月6日消息,Yearn.finance創始人Andre Cronje發文介紹類Loot游戲Rarity的屬性,共有6個核心屬性,分別為Strength (Str)力量、Dexterity (Dex)敏捷、Constitution (Con)、Intelligence (Int)智力、Wisdom (Wis)智慧、Charisma (Cha)魅力。當能力得分發生變化時,與該得分相關的所有屬性也會相應地發生變化。玩家在分配召喚師屬性之前仔細研究這些,因為只能設置一次,之后它們是永久的,有些專長和法術有基礎要求。

此前消息,Yearn.finance創始人Andre Cronje發文稱,在Fantom鏈上推出類Loot游戲Rarity。游戲內包含野蠻人、巫師等11種角色,玩家可以通過探險獲得經驗值后完成升級。升級中的玩家可以利用角色特性制造道具,并且可以在二級市場出售。[2021/9/6 23:03:42]

皇家馬德里俱樂部加入區塊鏈夢幻足球游戲Sorare:區塊鏈夢幻足球游戲Sorare官方推特表示,皇家馬德里足球俱樂部加入Sorare。限量版足球運動員卡正在拍賣中。[2020/12/17 15:35:00]

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

DeFi穩定幣項目Rari Capital將向全面治理過渡:穩定幣DeFi智能投顧Rari Capital發推特宣布現在已經開始向全面治理過渡。在推文中Rari Capital介紹了最近的進展:本月Rari Capital已經通過Quantstamp審計,所有智能合約在Etherscan上開源并通過驗證,Github上更新Rari改進提案并建立鏈下投票的Snapshot。[2020/12/13 15:03:28]

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

從上面的分析不難發現,Rari合約最終是用到了AlphaFinance項目的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充值到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@慢霧安全團隊

Tags:ETHARIRARITALDADDYETHPARIORaribleBlockPortal

幣安app官方下載最新版
RAS:融資新聞 | DEX聚合器Paraswap完成300萬美元融資,將進一步支持更多區塊鏈

據外媒5月11日報道,去中心化交易所的聚合商ParaSwap在一輪種子擴展輪融資中籌集了300萬美元的資金.

1900/1/1 0:00:00
CON:ConsenSys與微軟合作!提供基于以太坊的托管區塊鏈服務

以太坊軟件公司ConsenSys宣布正在與Microsoft合作,為其云計算操作系統Azure客戶提供基于以太坊的托管區塊鏈服務.

1900/1/1 0:00:00
數字貨幣:全球加密數字貨幣發展近況、趨勢及建議

今年以來,數字貨幣發展如火如荼,雖然Facebook穩定幣Libra推出屢屢受挫,監管機構對Libra的一再審慎,但美元、歐元持續貨幣寬松表使得加密數字貨幣市場熱度不斷上漲.

1900/1/1 0:00:00
MEE:瘋狂?Cryptopunks開發團隊第三個NFT項目Meebits推出即被搶空

Cryptopunks開發團隊LarvaLabs第三個NFT項目終于于昨日在推特上被公布——Meebits.

1900/1/1 0:00:00
NFT:NFT"金融化”正當時:NFT+DEFI之路

2018年初,不可替代代幣就已存在,但最初只有加密貨幣愛好者的小眾群體采用。三年之間,我們見證了藝術家、設計師、游戲開發商、音樂家和作家紛紛投向NFT技術的懷抱.

1900/1/1 0:00:00
比特幣:特斯拉叫停比特幣支付,馬斯克是“喜新厭舊”還是“欲擒故縱”?

北京時間周四早間,一直被譽為比特幣和加密貨幣旗手的特斯拉首席執行官埃隆·馬斯克在推特上表示,由于擔心比特幣挖礦和交易引發的煤炭等化石燃料消耗的飛速增長,特斯拉已經叫停使用比特幣支付.

1900/1/1 0:00:00
ads