返回部落格

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

Code Auditing
2024年2月18日
閱讀約 6 分鐘

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 美元的資產。這項創新確保了所有利益相關者都能更安心地入睡,因為他們知道有主動式安全措施在保護他們的投資。

閱讀本系列的其他文章:

訂閱最新動態
損失約 54.2 萬美元:MakerDaoBot 遭駭事件|BlockSec 週報
Security Insights

損失約 54.2 萬美元:MakerDaoBot 遭駭事件|BlockSec 週報

本報告涵蓋 2026/10/05 至 2026/10/11 以太坊發生的 1 起安全事件,估計損失約 54.2 萬美元。攻擊合約部署惡意適配器,並將其傳入缺乏存取控制的 MakerDaoBot 函式,使機器人授予適配器操作其內部 MakerDAO 餘額的權限。適配器結算 4 場舊版 ETH-A 拍賣,將 200 單位 ETH-A 抵押品轉為 WETH;攻擊合約將其解除封裝,並把 200 ETH 轉給攻擊者。

損失約4.18億美元:Bitget、NEAR Intents遭利用 | BlockSec Weekly
Security Insights

損失約4.18億美元:Bitget、NEAR Intents遭利用 | BlockSec Weekly

本雙週安全報告記錄2026年9月21日至10月4日的八起事件,涉及以太坊、BNB Chain、Solana、比特幣、TRON、XRP Ledger、Zcash、Avalanche、NEAR等網絡,損失約4.184億美元。詳細分析涵蓋Bitget因第三方安全產品漏洞損失3.875億美元,及NEAR Intents因退款驗證缺陷與狀態回滾缺失損失387萬美元。

Bitget 3.875億美元鏈下違規事件:超越金鑰與合約的範疇
Security Insights

Bitget 3.875億美元鏈下違規事件:超越金鑰與合約的範疇

2026年9月24日,攻擊者利用第三方安全產品漏洞,獲取內部憑證並偽造提款指令,導致約3.875億美元從Bitget部分營運錢包(涵蓋Ethereum、其他EVM網絡、XRP Ledger、Zcash及TRON)轉出;私鑰及冷錢包未受影響。本文深入梳理事件路徑與資金流向,分析快速轉換為原生資產及生態恢復應對,提出機構縱深防禦框架,並說明授權區塊鏈滲透測試如何驗證跨層假設。

Web3 最佳安全審計方

在上線之前驗證設計、程式碼與業務邏輯,對標業內最高安全標準。

BlockSec 審計