動區動趨-最具影響力的區塊鏈新聞媒體
  • Home
    • Home Layout 1
    • Home Layout 2
    • Home Layout 3
  • Browse
    • News
    • Movie
    • Music
    • Technology
    • Howto & Style
    • Entertainment
    • Gaming
  • Features
    • Youtube Video
    • Vimeo Video
    • Dailymotion Video
    • Self-hosted Video
    • User Profile
    • Playlists
    • User-created Playlist
    • Favorite Playlist (Private)
    • Watch Later Playlist (Private)
    • All JNews Features
No Result
View All Result
  • Login
  • Register
UPLOAD
動區動趨-最具影響力的區塊鏈新聞媒體
No Result
View All Result
Currently Playing

ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點

ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點

ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點

搶先看
ABS獨家專訪》Gate.io CEO韓林:無懼銀行進軍加密服務,台北特別有人情味

ABS獨家專訪》Gate.io CEO韓林:無懼銀行進軍加密服務,台北特別有人情味

搶先看

6 Sci-fi Gadgets in Movie We Wish Actually Existed

Movie

The 10 best games to play on your new PlayStation 4

Gaming

Tesla’s Chinese factory just delivered its first cars

News

資安專欄|DeFi 聚合器 Rari Capital 駭客如何得手 2600 ETH?遭駭細節全解析

DeFi 收益聚合器 Rari Capital 本月 8 日驚傳遭駭,受害的以太幣資金池共損失 2,600 ETH,現值超過 1,000 萬美元。動區專欄作者 慢霧 SlowMist 第一時間介入分析,並將攻擊細節分享給大家。
(前情提要:DeFi|Rari Capital 遭駭!損失1,000萬鎂 ETH,RGT急跌47%;研究員 : 首個跨鏈攻擊)
(事件背景:BSC首現閃電貸攻擊/技術解析 Spartan Protocol 遭駭手法,造成 3 千萬美元損失)

 

2

021 年 5 月 8 日,以太坊收益聚合協議 Rari Capital 因匯集了 Alpha Finance 而產生漏洞,損失近 1500 萬美元。

事後,Rari Capital 官方發佈了事故報告,分析了此次事故的主要原因。筆者以官方分析的基礎出發,結合自身對此事件的深入解析,進一步解讀安全事故的原因。

There has been an exploit in the Rari Capital ETH Pool related to our @AlphaFinanceLab integration.

The rebalancer has removed all funds from Alpha in response.

We are currently investigating the situation and a full report will be shared once everything is assessed.

— Rari Capital (@RariCapital) May 8, 2021

攻擊細節分析

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

– 圖片來源:微信原文 –

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

以上是 deposit 函數的部分邏輯,首先 deposit 函數本身會調用内部的  _depositTo 函數,然後會再次調用 getFundBalance 函數來獲取合約的餘額。getFundBalance 函數最終是會調用到 Rari Controller 合約的 getBalance 函數去獲取餘額。

最後透過 Rari Controller 合約中的 AlphaPoolController 庫的 getBalance 函數獲取餘額。如下圖:

流程上略為複雜,用圖來顯示大概就是下面這樣:

從上面的分析中不難發現,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 函數同時還支持調用其他的任意合約,這樣整個思路就很清楚了。

延伸閱讀:事件始末 | 黃立成旗下 Defi 新創Cream.Finance遭閃電貸攻擊,駭客得手近 10億台幣

攻擊流程

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 項目在進行協議間交互時,需要做好協議之間的兼容性,避免因協議兼容問題導致的損失。

📍相關報導📍

觀點|以太坊 DeFi 溢出效應強烈,「跨鏈宇宙」來襲!解析這輪牛市的板塊輪動

交易所 Hotbit 驚傳被駭!關停服務整整 7-14 天、200萬用戶遭殃,網轟 : 根本搶劫

資安專欄|DeFi 聚合平台 “Furucombo” 被駭細節分析,與用戶建議


讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。

LINE 與 Messenger 不定期為大家服務

加入好友

加入好友

No Result
View All Result

近期文章

  • 精選文章搶先看!動區登入Access質押訂閱服務,解鎖寶貴資訊快人一步
  • ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點
  • ABS獨家專訪》Gate.io CEO韓林:無懼銀行進軍加密服務,台北特別有人情味
  • 快訊!BTC 現在已來到 58996.2
  • 快訊!BTC 現在已來到 58815.03
Next Post
Amazon開放 UST 支付?透過「禮物卡」完成結帳,穩定幣協議 Terra 引起轟動

Amazon開放 UST 支付?透過「禮物卡」完成結帳,穩定幣協議 Terra 引起轟動

Copyright (c) 2019 by Jegtheme.
  • About
  • Buy JNews
  • Request A Demo
  • Contact

Welcome Back!

Login to your account below

Forgotten Password? Sign Up

Create New Account!

Fill the forms below to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

- Select Visibility -

    No Result
    View All Result
    • Account
    • BlockTempo Beginner – 動區新手村
    • Change Password
    • Forgot Password?
    • Home 1
    • Home 2
    • Home 3
    • Jin-homepage
    • Latest
    • Login
    • Profile
    • Register
    • Reset Password
    • Trending
    • Users
    • Users List Item
    • 不只加密貨幣,談談那些你不知道的區塊鏈應用|動區新手村
    • 所有文章
    • 關於 BlockTempo

    © 2025 JNews - Premium WordPress news & magazine theme by Jegtheme.