Sonne Finance攻擊分析

6/11/2024, 6:38:14 AM
中級
安全
這種攻擊的本質在於市場(soToken)的創建,攻擊者使用少量基礎代幣執行了第一次抵押鑄造操作,導致soToken的“totalSupply”值非常小。

2024 年 5 月 15 日,Sonne Finance 遭受了樂觀鏈的攻擊,導致損失高達 2000 萬美元。攻擊發生后,Twitter使用者@tonyke_bot在推特上說,他們用大約100美元保護了Sonne Finance抵押品池(也稱為市場,類似於化合物中的cToken)中剩餘的650萬美元。

“”
https://twitter.com/tonyke_bot/status/1790547461611860182)

發現攻擊后,Sonne Finance團隊迅速暫停了Optimism上的所有市場,並表示Base上的市場是安全的。

“”

https://twitter.com/SonneFinance/status/1790535383005966554)

攻擊簡介

Sonne Finance是一個去中心化的借貸協議,在樂觀上分叉Compound V2,為個人,機構和協定提供金融服務。Sonne Finance協議聚合使用者的代幣資產,形成借貸流動性池,為使用者提供類似銀行的借貸業務。與Compound一樣,協議參與者可以將他們的代幣抵押給Sonne Finance的貸款流動性池,並獲得證書soToken(與cToken相同)。SoToken是一種生息資產證書,隨著區塊的進行會產生一定的收入,還將獲得SON代幣激勵。參與者還可以用手中的soToken從Sonne借貸資產池中借入其他代幣。例如,參與者可以抵押一定數量的USDC以獲得soUSDC證書,然後借出WETH以供進一步流通。Sonne Finance 協議中的抵押貸款可以是多對多資產關係。在抵押貸款過程中,協議將自動計算參與者位址的健康因素(Health Factor)。當健康係數低於1時,地址產品的抵押將支撐 強制平倉,清算人也可以獲得一定的強制平倉獎勵。

使用者存入的基礎代幣數量與鑄造的soTokens之間的關係主要與稱為匯率的變數有關。這個變數可以粗略地用來指示每個soToken值多少底層代幣。匯率的計算公式如下:

“”

在上式中,總現金是指soToken持有的標的代幣數量,總借款是指在某個市場借出的標的代幣數量,總儲備是指總儲備金額(包括借款人支付的利息),總供應是指鑄造的soToken數量。

贖回時,使用者可以指定要贖回的底層代幣數量,贖回金額,以計算需要銷毀的soToken數量,贖回Tokens。計算方法大致為「贖回代幣=贖回金額/交換鼠」。。請注意,此處沒有準確性損失。處理。

這次攻擊的本質是,當市場(soToken)創建時,攻擊者進行了第一次抵押鑄造操作,用少量的基礎代幣鑄造了很少的soToken,導致soToken的“總供應”價值太小。攻擊者隨後利用 Solidity 合約精度損失的漏洞,將底層代幣直接發送到 soToken 合約(soToken 不會鑄造,這意味著“totalSupply”保持不變,“totalCash”變大)而不是質押 + 鑄造方式來充值底層代幣。這樣的操作使合約中的“totalCash”變數變大,但“totalSupply”保持不變,導致匯率變大。最後,當攻擊者贖回底層代幣時,需要銷毀的soToken少於抵押期間鑄造的soToken。攻擊者利用賺來的soToken將底層代幣USDC WETH出借給其他soToken(如soWETH、soUSDC),最終獲得高達2000萬美元的利潤。

攻擊中涉及的關鍵位址

攻擊準備事務:

https://optimistic.etherscan.io/tx/0x45c0ccfd3ca1b4a937feebcb0f5a166c409c9e403070808835d41da40732db96

攻擊有利可圖的交易:

https://optimistic.etherscan.io/tx/0x9312ae377d7ebdf3c7c3a86f80514878deb5df51aad38b6191d55db53e42b7f0

攻擊EOA相關位址:

0x5d0d99e9886581ff8fcb01f35804317f5ed80bbb

0xae4a7cde7c99fb98b0d5fa414aa40f0300531f43

攻擊者(合約)相關位址:

0xa78aefd483ce3919c0ad55c8a2e5c97cbac1caf8

0x02fa2625825917e9b1f8346a465de1bbc150c5b9

底層代幣(VELO 代幣 V2):

0x9560e827af36c94d2ac33a39bce1fe78631088db

漏洞合約(soVELO,類似於Compound的cToken):

0xe3b81318b1b6776f0877c3770afddff97b9f5fe5

@tonyke_bot X 上的使用者救援事務:

https://optimistic.etherscan.io/tx/0x816f9e289d8b9dee9a94086c200c0470c6456603c967f82ab559a5931fd181c2

攻擊進程分析

回顧

Sonne Finance項目團隊最近通過了一項提案,將VELO市場添加到Sonne Finance(https://twitter.com/SonneFinance/status/1786871066075206044),並通過多重簽名錢包安排了五筆交易,兩天后執行(https://optimistic.etherscan.io/tx/0x18ebeb958b50579ce76528ed812025949dfcff8c2673eb0c8bc78b12ba6377b7),這五筆交易用於創建VELO市場(soVELO 合約)並設置市場的一些關鍵配置,例如設置利率模型、設置價格預言機和設置抵押因素等。創建VELO市場后,使用者可以將代幣充值 VELO鑄造 soVELO 代幣,而這些代幣又可用於借入其他 soToken。

攻擊準備

攻擊準備階段主要是讓攻擊者在兩天的提案鎖定期到期后,根據Sonne Finance專案提案中的資訊創建一個VELO市場(soVELO合約),設置關鍵配置,並通過抵押的方式將代幣鑄造 VELO到soVELO合約中。 soVELO 代幣,並將持有VELO代幣直接發送到 soVELO 合約,以提高匯率並準備從隨後的攻擊中獲利。

具體步驟如下:

  1. 兩天的鎖定期結束后,攻擊者首先將提案中排列的前四筆交易的操作打包成一筆交易(交易0x45c0cc),用於創建VELO市場(soVELO合約)並設置密鑰配置。初始化VELO市場時,匯率設置為“200,000,000,000,000,000,000,000,000”。

  2. 攻擊者調用 soVELO 合約的「鑄造」函數來充值 VELO代幣並鑄造 soVELO 代幣。攻擊者將“mintAmount”指定為“400,000,001”(VELO令牌的數量)。從函數“exchangeRateStoredInternal”可以看出,由於此時soVELO令牌的“_totalSuppl”為0,因此exchangeRate是步驟1中設置的值。根據公式「 mintTokens = 實際MintAmount / T匯率 」,此時應該鑄造的soVELO代幣的計算數量為2。空,在此步驟中,攻擊者將價值為“400,000,001”的VELO代幣存入soVELO合約,攻擊者獲得價值為2的soVELO代幣。

soVELO.鑄造:

“”

  1. 攻擊者通過直接向soVELO合約發送VELO代幣,向soVELO合約發送了價值為“2,552,964,259,704,265,837,526”的VELO代幣。此時,soVELO合約持有的VELO代幣數量有所增加,但由於沒有新的soVELO代幣鑄造幣,因此totalSupply保持不變,這意味著根據匯率計算公式計算的匯率此時會變大。

  2. 攻擊者多次轉移持有的soVELO令牌,最後將它們轉移到另一個攻擊EOA 0xae4a。

攻擊牟利

攻擊盈利階段主要涉及攻擊者執行提案的第五筆交易,並通過閃貸直接向soVELO合約借出VELO代幣,以進一步提高匯率。然後攻擊者使用手中價值為 2 的 soVELO 代幣,從其他 soToken(如 soWETH、soUSDC 等)合約借入 WETH、USDC 等底層代幣,這些部分成為攻擊者的利潤。然後攻擊者去贖回他在 soVELO 合約中的底層代幣。由於匯率的增加以及計算需要銷毀以進行贖回的 soVELO 代幣的準確性下降,攻擊者最終只使用了價值為 1 的 soVELO 代幣。之前存入的VELO代幣幾乎全部贖回,可以理解為攻擊者利用價值為1的額外soVELO代幣,通過借用其他soTokens賺取WETH、USDC等底層代幣。攻擊者使用相同的技術多次重複攻擊,最終獲得了巨額利潤。

具體步驟如下:

  1. 攻擊者執行提案中的第五筆交易,並設置提案中指定的貸款因數。

  2. 攻擊者從 VolatileV2 自動做市商 - USDC/VELO池中閃借VELO價值為“35,469,150,965,253,049,864,450,449”的代幣,從而觸發攻擊者的鉤子功能。在鉤子函數中,攻擊者繼續執行攻擊操作。

  3. 攻擊者將他持有的VELO代幣發送到soVELO合約,以進一步提高匯率。目前,soVELO合約中共有VELO個代幣,價值為“35,471,703,929,512,754,530,287,976”(攻擊者轉移的VELO代幣的總和)。

  4. 攻擊者創建新的合約0xa16388a6210545b27f669d5189648c1722300b8b。在構造函數中,他將持有的 2 個 soVELO 代幣轉移到新創建的合約0xa163(以下簡稱攻擊者0xa163)。

  5. 攻擊者0xa163使用他持有的soVELO代幣從soWETH借用價值為“265,842,857,910,985,546,929”的WETH。

  6. 攻擊者0xa163調用soVELO的“贖回底層”函數,將贖回的VELO代幣的價值指定為“35,471,603,929,512,754,530,287,976”(幾乎是攻擊者之前轉讓或抵押到soVELO合約中的VELO代幣的數量)。此時,有必要使用公式「贖回代幣=贖回金額/匯率」來計算需要銷毀才能贖回的soVELO代幣數量。

從「匯率存儲內部」函數可以看出,由於_totalSupply是 2 而不是 0,因此需要計算匯率的值。根據公式“匯率=(總現金+總借款-總儲備)/總供應量”,當前匯率為“17,735,851,964,756,377,265,143,988,000,000,000”,這個值遠大於初始匯率集“200,000,000,000,000,000,000,000,000,000,000,000,000”。

根據新匯率計算的“贖回代幣”的價值為“1.99”。由於Solidity的向下四捨五入特性,“贖回代幣”的值最終為1。這意味著攻擊者0xa163使用價值為 1 的 soVELO 代幣來贖回之前存入的幾乎所有VELO代幣。同時,攻擊者還0xa163從soWETH借來的價值為“265,842,857,910,985,546,929”的WETH。

soVELO.贖回底層證券:

“”

soVELO.exchangeRateStorageInternal:

“”

  1. 攻擊者0xa163將借來的所有WETH和贖回VELO代幣轉移給上層攻擊者,然後自毀。

  2. 攻擊者調用soWETH的“liquidateBorrow”函數來清算從單子新創建的合約0xa163借入的部分資產,以取回價值為1的鎖定soVELO代幣。目前,攻擊者僅持有值為 1 的 soVELO 令牌。

  3. 攻擊者調用 soVELO 的“鑄造”函數,並再次抵押和鑄造 soVELO 代幣,目的是收集足夠的價值為 2 的 soVELO 代幣,然後再次執行上述步驟 3-8 以從其他未識別的代幣中獲利。

  4. 攻擊者多次執行步驟9中的操作,償還閃電貸款,並獲利離開市場。

100 美元如何利用 650 萬美元

攻擊發生后,X 上的使用者 @tonyke_bot通過在交易0x0a284cd中將 1144 個VELO代幣質押到 soVELO 合約中,鑄造了 0.00000011 soVELO。此操作之所以能阻止攻擊者進一步攻擊,是因為本次交易改變了soVELO中totalSupply的大小和totalCash持有的VELO代幣數量,而totalSupply增長對匯率計算的影響大於totalCash增長的影響。因此,匯率變小,導致攻擊者在進行攻擊時無法多方利用準確性的損失來獲得soVELO,使攻擊無法多方。

“”

資金跟蹤

攻擊者在搶奪非法收益后不久就轉移了資金。大部分資金轉移到以下四個位址。有些是為了改變位址以繼續攻擊,有些是為了洗錢:

1、0x4ab93fc50b82d4dc457db85888dfdae28d29b98d

攻擊者將198 WETH轉移到該位址,然後該位址使用相同的攻擊方式在以下交易中獲取非法收益:

“”

襲擊發生后,該位址將上述違法所得轉0x5d0d99e9886581ff8fcb01f35804317f5ed80bbb。

2、0x5d0d99e9886581ff8fcb01f35804317f5ed80bbb

攻擊者將724277 USDC和2353 VELO轉移到該位址,並將USDC換成以太。然後一些資金立即轉移到星際之門跨鏈 橋接。大多數非法資金仍保留在此位址:

“”

3、0xbd18100a168321701955e348f03d0df4f517c13b

攻擊者將33 WETH轉移到該位址,並使用剝離鏈試圖洗錢。洗錢環節如下:

0xbd18100a168321701955e348f03d0df4f517c13b -> 0x7e97b74252b6df53caf386fb4c54d4fb59cb6928 -> 0xc521bde5e53f537ff208970152b75a003 093c2b4 -> 0x9f09ec563222fe52712dc413d0b7b66cb5c7c795。

4、0x4fac0651bcc837bf889f6a7d79c1908419fe1770

攻擊者將563 WETH轉移到該位址,隨後轉移到0x1915F77A116dcE7E9b8F4C4E43CDF81e2aCf9C68,到目前為止沒有進一步的行動。

攻擊者這次的洗錢手段比較專業,手段呈現出多樣化的趨勢。因此,對於我們 Web3 參與者來說,我們必須在安全性方面不斷提升我們的反洗錢能力,通過 KYT、反洗錢 等相關區塊鏈交易安全產品來提升 Defi 專案的安全性。

安全建議

1、及時瞭解合同審計和測試。在智慧合約部署前進行全面審計,特別注意涉及財務計算的所有部分。首先,使用自動化測試,利用漏洞庫的即時更新進行高效的合約安全掃描(業界也逐漸開源了一些成熟的安全審計工具,包括ZAN AI SCAN),同時結合人工審計來排查需要深入行業知識的問題。

2、精度的損失需要認真對待。精度損失帶來的安全問題層出不窮,尤其是在 Defi 專案中,精度損失往往會導致嚴重的經濟損失。建議專案方和安全審核員仔細審查專案中存在準確性損失的代碼,並進行測試以盡可能避免此漏洞。

  1. 建議在 Compound 中創建類似於 cToken 的市場和第一次抵押鑄造操作由特權用戶執行,以避免被攻擊者操縱從而操縱交易所利率。

  2. 當合約中存在依賴於“this.balance”或“token.balanceOf()”值的關鍵變數時,需要仔細考慮鍵變數變更的條件,比如是否允許將本國貨幣或代幣直接轉移到合約中。更改變數值的方法,或者只能通過調用特定函數來更改變數的值。

免責聲明:

  1. 本文轉載自 [ZAN]。所有版權歸原作者所有[ZAN]。如果對此轉載有異議,請聯繫Gate Learn團隊,他們會及時處理。
  2. 免責聲明:本文中表達的觀點和意見僅代表作者的觀點和意見,不構成任何投資建議。
  3. 文章到其他語言的翻譯由Gate Learn團隊完成。除非另有說明,否則禁止複製、分發或抄襲翻譯后的文章。

分享

目錄

攻擊簡介

攻擊中涉及的關鍵位址

攻擊過程分析

100 美元如何利用 650 萬美元

資金追蹤

安全建議

幣圈日曆

項目進展
Etherex 將於 8 月 6 日推出代幣 REX。
REX
22.27%
2025-08-06
拉斯維加斯的稀有開發與治理日
Cardano將在拉斯維加斯舉辦稀有開發與治理日,時間爲8月6日至7日,活動包括研討會、黑客馬拉松和以技術開發及治理主題爲重點的小組討論。
ADA
-3.44%
2025-08-06
區塊鏈.Rio在裏約熱內盧
Stellar 將參加定於 8 月 5 日至 7 日在裏約熱內盧舉行的 Blockchain.Rio 大會。該節目將包括主題演講和小組討論,屆時將邀請 Stellar 生態系統的代表與合作夥伴 Cheesecake Labs 和 NearX 共同參與。
XLM
-3.18%
2025-08-06
網路研討會
Circle 宣布將於 2025 年 8 月 7 日 14:00 UTC 舉辦名爲“GENIUS Act 時代開始”的實時高管見解網路研討會。此次會議將探討新通過的 GENIUS Act 的影響——這是美國第一個針對支付穩定幣的聯邦監管框架。Circle 的 Dante Disparte 和 Corey Then 將主導討論該立法如何影響數字資產創新、監管透明度,以及美國在全球金融基礎設施中的領導地位.
USDC
-0.03%
2025-08-06
X 上的 AMA
Ankr將在8月7日16:00 UTC於X平台舉辦一次AMA,重點討論DogeOS在爲狗狗幣構建應用層方面的工作。
ANKR
-3.23%
2025-08-06

相關文章

錯誤的鉻擴展程式竊取分析
進階

錯誤的鉻擴展程式竊取分析

最近,一些 Web3 參與者由於下載了讀取瀏覽器 cookie 的虛假 Chrome 擴展程式,從他們的帳戶中損失了資金。SlowMist團隊對這種騙局策略進行了詳細分析。
6/12/2024, 3:26:44 PM
Pi 幣的真相:它會是下一個比特幣嗎?
新手

Pi 幣的真相:它會是下一個比特幣嗎?

探討 Pi Network 的移動挖礦模式、面臨的批評以及與比特幣的差異,評估其是否有下一代加密貨幣的潛力。
2/7/2025, 3:05:33 AM
加密貨幣與量子計算
新手

加密貨幣與量子計算

量子計算對加密貨幣的完全影響是行業的一個巨大關注點。一旦量子計算得到完全發展,它可以在幾分鐘內破解數字貨幣背後的加密技術。如果您擁有加密貨幣,請繼續閱讀以了解加密貨幣與量子計算的威脅,加密貨幣和量子計算的未來以及如何保護自己。
11/10/2024, 11:56:10 AM
介紹Aleo隱私區塊鏈
新手

介紹Aleo隱私區塊鏈

隨著區塊鏈技術的快速發展,隱私保護已成為一個迫切的問題。Aleo解決了隱私和可擴展性的挑戰,增強了網絡安全和可持續發展。本文深入探討了Aleo的技術優勢、應用領域、代幣經濟學和未來前景。
11/7/2024, 9:33:47 AM
對SUI合約安全性和生態系統挑戰的分析
進階

對SUI合約安全性和生態系統挑戰的分析

作為 Move 生態系統的重要成員,Sui 致力於為各種區塊鏈應用場景提供快速安全的交易服務。在本文中,Beosin 將幫助您了解 Sui 生態系統用戶和開發人員面臨的安全挑戰,並提供多年的安全審計經驗。
12/17/2024, 5:30:04 AM
理解治理攻擊:Compound的案例研究
新手

理解治理攻擊:Compound的案例研究

在去中心化的區塊鏈治理中,治理攻擊構成了重大的安全風險。本文對Compound的治理攻擊進行了詳細分析,介紹了其方法、短期和長期風險,以及技術改進和社區努力如何幫助應對這些挑戰。同時討論了預防策略,並凸顯了治理攻擊對DeFi協議和整個生態系統的持久影響,從而使行業能更好地應對未來的治理威脅。
9/25/2024, 6:59:17 AM
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!