
SUI 生態 Cetus 遭駭:慢霧揭密駭客數學遊戲,損失估逾 2.3 億美元


SUI 生態 Cetus 遭駭事件:一場精心策劃的數學遊戲?
事件速覽:流動性池崩盤與巨額損失
5 月 22 日,SUI 生態的流動性提供商 Cetus 彷彿遭遇了一場精心策劃的「黑天鵝」事件。社群中警鈴大作,Cetus 上的流動性池深度驟降,宛如釜底抽薪,多個代幣交易對應聲下跌,情勢比 灰狼 對 雷霆 的比賽還要緊張。初步估計,這場風暴造成的損失可能超過 2.3 億美元,令人咋舌。Cetus 官方迅速發布公告,坦承協議中偵測到異常事件,並基於安全考量,暫時關閉了智能合約。團隊正如同 andy 老師 般,以專業且嚴謹的態度展開調查,承諾將儘速公布進一步的調查結果。
慢霧安全團隊的即時分析:揭露駭客的攻擊手法
事件爆發後,以專業著稱的慢霧安全團隊立即介入分析,猶如數位世界的福爾摩斯。他們不僅發布了安全提醒,更深入剖析了駭客的攻擊手法和資金轉移路徑,為我們揭開了這場數位犯罪的神秘面紗。
駭客的精密佈局:如何用 1 個 Token 換取數億美元?
閃電貸與價格操縱:風暴前的寧靜
這場駭客攻擊並非一時興起,而是一場經過精密計算的預謀。攻擊者首先利用閃電貸借出了 10,024,321.28 個 haSUI,如同 利物浦 在歐冠賽場上的快速反擊,瞬間對池子價格造成巨大衝擊。價格從 18,956,530,795,606,879,104 暴跌至 18,425,720,184,762,886,跌幅高達 99.90%。這一步驟看似簡單,實則是為了後續的攻擊創造了有利條件,也考驗著投資者的風險承受能力,如同 威力彩 般,高報酬伴隨著高風險。
極窄價格區間的流動性陷阱:精準的獵殺
接下來,駭客展現了其高超的技術和對市場的深刻理解。他們精心選擇了一個極窄的價格區間開設流動性頭寸:
- Tick 下限:300000(價格:60,257,519,765,924,248,467,716,150)
- Tick 上限:300200(價格:60,863,087,478,126,617,965,993,239)
這個價格區間的寬度僅為 1.00496621%,猶如 法網 比賽中球員精準的回擊,稍有偏差便會錯失良機。如此狹窄的區間,為後續的攻擊埋下了伏筆,也展現了駭客對於 Uniswap V3 架構的深入理解。
核心漏洞:checked_shlw
函數的溢出繞過
現在,重頭戲來了。這次攻擊的核心在於駭客聲稱要添加 10,365,647,984,364,446,732,462,244,378,333,008 單位的巨大流動性,但由於合約中存在漏洞,系統竟然只收取了 1 個代幣 A!這簡直就像 星巴克買一送一 一樣令人難以置信,但卻是不爭的事實。
我們來分析一下駭客為何能用 1 個 Token 兌換出巨額流動性。 關鍵就在於 get_delta_a
函數中的 checked_shlw
存在溢出檢測繞過漏洞。駭客正是利用了這一點,使得系統在計算實際需要添加多少 haSUI 時出現了嚴重偏差。由於溢出未被檢測,系統誤判了所需 haSUI 的數量,導致駭客僅需極少的 Token,就能兌換出大量的流動性資產,從而實現了攻擊。這就像 彭文正 找到了突破口,直擊要害。
數學溢出的魔力:小數點後的戰爭
當系統計算添加如此巨大流動性需要多少 haSUI 時:
這裡的關鍵在於 checked_shlw
函數的實現存在嚴重缺陷。實際上,任何小於 0xffffffffffffffff << 192
的輸入值都會繞過溢出檢測。然而,當這些值被左移 64 位時,結果會超出 u256 的表示範圍,此時高位數據被截斷,導致得到的結果遠小於理論值。這樣一來,系統在後續計算中就會低估所需的 haSUI 數量。
- 錯誤掩碼:
0xffffffffffffffff << 192
= 非常大的數值(約 2^256-2^192) - 幾乎所有輸入都小於這個掩碼,繞過溢出檢測
- 真正的問題:當 n >= 2^192 時,
n << 64
會超出 u256 範圍並被截斷
駭客構造的中間值 liquidity * sqrt_price_diff
= 6277101735386680763835789423207666908085499738337898853712:
- 小於錯誤掩碼,繞過溢出檢測
- 但在左移 64 位後會超出 u256 最大值,從而導致超出的部分被截斷
- 導致最終計算結果約小於 1,但由於是向上取整,
quotient
算出來就等於 1
移除流動性:豐收的時刻
攻擊者移除流動性的操作,猶如 BLACKPINK 演唱會的安可曲,將氣氛推向最高潮。他們分三次移除流動性,每次都帶走大量的 haSUI:
- 第一次移除:獲得 10,024,321.28 個 haSUI
- 第二次移除:獲得 1 個 haSUI
- 第三次移除:獲得 10,024,321.28 個 haSUI
歸還閃電貸:滿載而歸的駭客
最後,駭客歸還了閃電貸,完成了這場驚天盜竊。他們淨獲利約 10,024,321.28 個 haSUI 和 5,765,124.79 個 SUI,滿載而歸。這就像 大谷翔平 擊出再見全壘打,為球隊贏得勝利,也為自己贏得了榮耀。
Cetus 的緊急應對:亡羊補牢,為時未晚?
修復補丁:堵住漏洞的關鍵一步
攻擊事件爆發後,Cetus 團隊迅速做出反應,猶如 台玻 啟動緊急應變計畫,第一時間發布了修復補丁。這次修復的重點在於修正了 checked_shlw
函數中的錯誤,具體修復代碼可參考:https://github.com/CetusProtocol/integer-mate/pull/7/files#diff-c04eb6ebebbabb80342cd953bc63925e1c1cdc7ae1fb572f4aad240288a69409。
修復後的 checked_shlw
函數如下:
修復說明:
- 將錯誤的掩碼
0xffffffffffffffff << 192
修正為正確的閾值1 << 192
- 將判斷條件從
n > mask
修正為n >= mask
- 確保當左移 64 位可能導致溢出時,能正確檢測並返回溢出標誌
這次修復如同 台火 進行消防演練,旨在亡羊補牢,避免類似事件再次發生。
誰是獲利者?追蹤駭客的足跡
據分析,駭客地址 0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06
從這次攻擊中獲利約 2.3 億美元,包括 SUI、vSUI、USDC 等多種資產。這筆巨額財富,足以媲美 瑤瑤富二代 的身家,令人咋舌。
我們發現駭客在兩天前就準備好了 Gas Fee,然後在攻擊之前進行了一次嘗試,但以失敗告終。這就像 陳柏毓 在 MLB 選秀前夕的試訓,雖然首次嘗試未能成功,但卻為最終的成功奠定了基礎。
幸運的凍結:SUI 基金會的及時止損
值得慶幸的是,在 SUI 基金會及其他生態系統成員的合作下,目前已成功凍結了在 SUI 上的 1.62 億美元的被盜資金。這無疑是一次及時止損,如同 新冠疫情 期間政府的紓困方案,為受害者提供了一線生機。
鏈上追蹤:贓款的流向與最終歸宿
MistTrack 的反洗錢分析:EVM 上的資金轉移
接下來,我們使用鏈上反洗錢與追蹤工具 MistTrack 分析 EVM 上接收跨鏈資金的地址 0x89012a55cd6b88e407c9d4ae9b3425f55924919b
。正如 劉秀玲 帶領的鑑識團隊,MistTrack 正在抽絲剝繭,追蹤贓款的流向。該地址在 BSC 上收到 5.2319 BNB,暫未轉出,如同 新莊地藏庵 的香油錢,暫時存放。
該地址在 Ethereum 上收到 3,000 個 USDT、4,088 萬個 USDC、1,771 個 SOL 和 8,130.4 個 ETH。其中,USDT、USDC 和 SOL 通過 coW Swap、Para Swap 等兌換為 ETH,如同 美登利 壽司店的食材,經過加工後變成美味佳餚。
接著,該地址將 20,000 ETH 轉入地址 0x0251536bfcf144b88e1afa8fe60184ffdb4caf16
,暫未轉出,如同 永光 化學的產品,等待進一步的銷售。
目前該地址在 Ethereum 上的余額為 3,244 ETH,如同 禾羽 咖啡店的庫存,等待顧客的光臨。
惡意地址庫:警惕下一個目標
MistTrack 已將以上相關地址加入惡意地址庫,如同 南投選委會 公布的違規名單,警示大眾。同時,我們將持續對地址余額進行監控,如同 LINE TODAY 的即時新聞,隨時掌握最新動態。
深度剖析:智能合約安全,容不得半點馬虎
數學溢出漏洞的警示:魔鬼藏在細節裡
本次 Cetus 遭駭事件,再次敲響了智能合約安全的警鐘。駭客利用 checked_shlw
函數中一個小小的數學溢出漏洞,便成功竊取了價值數億美元的資產。這如同 大島優子 在舞台上的微小失誤,可能導致整個表演的崩盤。這也驗證了「魔鬼藏在細節裡」這句老話,智能合約開發者必須對每一個細節都錙銖必較,確保萬無一失。
開發者的反思:邊界條件驗證的重要性
這次事件給智能合約開發者們帶來了深刻的反思。在智能合約開發中,嚴格驗證所有數學函數的邊界條件至關重要。開發者應如同 山本由伸 般,精準控制每一個投球的軌跡,避免出現任何偏差。此外,開發者還應加強代碼審計,引入形式化驗證等技術,盡可能地消除潛在的安全隱患。畢竟,安全是區塊鏈生態發展的基石,只有確保安全,才能吸引更多的用戶和資金。
还没有评论,来说两句吧...