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

2021-05-09 18:05:35

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

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

攻擊細節分析

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

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

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

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

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

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

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

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

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

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

根據官方描述,從 ibETH 合約獲取的 totalETH 函數獲取的值是可以被用戶操控的。以下是官方原文:

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

根據官方的描述,用戶可通過 ibETH 合約的 work 函數操控 totalETH 函數返回的值,導致 Rari 整個價值計算公式崩潰。我們分別分析 ibETH 的 work 函數和 totalETH 函數:

totalETH 函數:

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

work 函數:

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

以上分別是 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@慢霧安全團隊

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。

推薦文章

XRP飆升至三年新高,ChatGPT預言2025年可達5美元!

人工智能預測XRP何時可能達到5美元,並對新興山寨幣STARS給出看漲預測 全球交易者正在轉向Ch...

coincaso
6 11小時前

今日推薦|傳統金融巨頭Visa、摩根大通等正在積極推動資產代幣化

什么是代幣化資產?代幣化資產是資產所有權的數字化表示,存儲在區塊鏈上。這些數字代幣使得高價值資產可...

coincaso
13 2天前

超萬億市場的變革——了解真實世界資產代幣化

簡介:什么是資產代幣化? 首先,定義代幣化——這是一個將資產的發行、記账和管理流程轉變為數字化的過...

coincaso
25 1周前

UU Wallet:守正出奇、合規創新,東南亞加密支付新勢力

由Chainlink主辦的2024 SmartCon大會近日在香港落幕,作為大會頂級贊助商之一,東...

coincaso
27 1周前

COW 單日翻倍領漲 DeFi 賽道,V 神最愛的 swap 有什么本領?

隨着特朗普的勝選,加密資產全线普漲,但最為矚目的項目當屬剛剛上线幣安的 COW,最高漲幅204%。...

coincaso
31 2周前

今日推薦|DeFi 代幣飆升 30%,交易員預計在特朗普領導下 DeFi 將迎來“更友好”的環境

DeFi 公司擔心在美國證券交易委員會的監督下為其代幣實施“價值累積機制”——但隨着當選總統唐納德...

coincaso
30 2周前