Back to Blog

#8:SushiSwap 事件:拙劣的救援嘗試引發一系列模仿攻擊

Code Auditing
February 18, 2024
6 min read

2023 年 4 月 9 日,SushiSwap 因未經驗證的外部參數(Unverified External Parameter)成為駭客攻擊目標。總損失約為 330 萬美元。

作為以太坊上擁有龐大用戶群的領先協議,即便是此類頂級協議,在合約升級過程中仍可能引入嚴重的安全問題。這提醒了 DeFi 社群,安全性應始終放在首位。 此外,本次安全事件是由一位白帽安全研究人員嘗試救援所觸發的,在社群內引發了相當大的爭議。我們在此對該事件進行簡明扼要的介紹,並將其列為 2023 年十大安全事件之一。

背景

SushiSwap

SushiSwap 是一個著名的去中心化交易所(DEX),曾對 Uniswap 發動過「吸血鬼攻擊」並取得巨大成功。其總鎖倉量(TVL)在巔峰時期曾達到 80 億美元,目前仍維持在 4 億美元左右。

授權(Approval)

簡而言之:指允許合約訪問並轉出您錢包中特定代幣的權限

為了方便起見,許多合約預設會要求無限額授權。許多用戶擔心安全風險,因此只往各種協議中存入少量資金,但他們卻授予了這些協議無限額的資金授權。如果某個協議遭到破壞,帳戶中所有已授權的代幣都可能面臨損失風險。

漏洞分析

未經驗證的外部參數

RouteProcessor2 合約的 processRoute() 函數允許用戶完全控制呼叫流程(參數 route)。 而在 uniswapV3SwapCallback() 中,safeTransferFrom() 的參數 from 是從用戶提供的 route 中解碼出來的。 因此,授權了 RouteProcessor2 合約的用戶最終損失了他們的資產。

攻擊過程

本次事件涉及多筆攻擊交易,我們以第一筆攻擊交易為例。 交易哈希:0x43ff7e01423044cfb501b4fe9ef1386725c0ddc117dadd6e6620cb68bdeaf4f9

  1. 攻擊者呼叫了有漏洞的 RouteProcessor2 合約的 processRoute(),並精心構造了一個較長的參數 route
  2. processRouteInternal() 根據用戶提供的 route 創建了一個 InputStream
  3. 交易按照攻擊者的 route 執行,直到達到 swapUniV3()。請注意,pool 是從 stream 中解碼出來的,這意味著攻擊者控制了在哪個 pool 進行 swap(),並將其設定為 lastCalledPool
  4. 這呼叫了攻擊者部署的惡意合約,該合約隨後只需傳遞惡意的 calldata 來回呼 RouteProcessor2 的 uniswapV3SwapCallback()
  5. uniswapV3SwapCallback() 需要檢查 msg.sender,但由於 lastCalledPool 已經被設定為惡意合約,駭客繞過了該檢查。重要的是,safeTransferFrom() 的參數 from 是從攻擊者構造的 calldata 中解碼出來的。
  6. 受害者的資產被轉移到了攻擊者部署的惡意合約中。

充滿爭議的白帽救援

值得一提的是,一位用戶名為 @trust__90 的白帽駭客發現了這個問題並嘗試救援資金,但這次救援行動卻釀成了災難:

  • 使用記憶體池(mempool)廣播交易,而非透過私有 RPC。
  • 僅嘗試救援 100 枚以太幣,而不是所有處於危險中的資金。

這為 MEV 機器人和其他攻擊者提供了機會,他們執行了多筆跟風交易(copycat transactions),有效地掏空了大部分資金。事後,@trust__90 面臨強烈抨擊,並試圖為其行為辯護

BlockSec 救援

在此次攻擊中,我們同樣救援了 100 枚以太幣,並將資金歸還給了受害者 0xsifu。

迄今為止,我們已成功挫敗了超過 20 起現實世界中的駭客攻擊,並救援了超過 14,000,000 美元的資產。

安全建議

升級必須進行審計

這提醒了整個 DeFi 社群:安全性應始終放在首位。審計並不能保證絕對安全,但缺乏審計絕對無法確保安全。

針對授權問題的緩解措施

2023 年發生了大量涉及授權攻擊的事件,我們藉此機會再次強調管理授權的重要性。 實用的安全做法是只授予必要的額度;若考慮便利性,建議僅授予比需求稍大的額度。

BlockSec 的 MetaSuites 提供了便捷的「授權診斷」功能。此外,您也可以使用像 Revoke Cash 這樣的工具定期檢查授權狀態。

採用監控與自動化響應機制

以太坊如同黑暗森林,DeFi 社群中的每個人都面臨著各種風險與挑戰,即便是安全專家也不例外。 2023 年,我們推出了 Phalcon Security,這是業界首個自動化響應系統,其設計不僅用於監控攻擊,更用於即時主動阻斷威脅。Phalcon 經過實戰檢驗的能力已證明了其有效性——成功挫敗了超過 20 起現實世界的駭客攻擊,保護了超過 14,000,000 美元的資產。這項創新確保了所有利益相關者都能更安心地入睡,因為他們知道有主動式安全措施在保護他們的投資。

閱讀本系列的其他文章:

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit