Back to Blog

BlockSec 如何追回被盜的 DeFi 資金:3 個案例研究

Phalcon
February 20, 2023
4 min read

DeFi 黑客攻擊事件仍在持續發生。對於遭竊的 DeFi 項目資金,通常很難找回。有些項目會選擇與黑客談判,提供賞金並承諾不採取法律行動。這種做法有時有效,但卻樹立了負面榜樣。這無異於鼓勵人們透過黑客行為來獲取賞金,而非進行負責任的對話。

BlockSec 採取了一種不同的方法來幫助多個項目挽回失竊資金。除了追蹤資金流向並與交易所等中心化實體合作等常規手段外,我們希望分享三個完全透過技術手段找回失竊資金的成功案例,包括最近的 Platypus FinanceTransitSwap 以及 Saddle Finance

Platypus Finance:挽救了 240 萬美元

The Block 對我們如何為 Platypusdefi 挽回資金有詳細報導。基本上,攻擊者犯了一個錯誤,導致無法將資金從攻擊合約中轉移出來。這是因為攻擊者忘記編寫將代幣從攻擊合約轉移出去的程式邏輯。

然而,我們的團隊發現有一種方法可以利用攻擊合約中現有的程式碼,將 USDC 從合約轉移至項目的合約中。該攻擊合約有一個函式,一旦被調用,攻擊合約就會授權一定數量的 USDC 給項目方的合約。這段程式碼原本是用於攻擊目的,但我們卻可以重複使用此邏輯來授權 USDC 給項目方合約,然後升級項目方合約(這是一個代理合約)以將 USDC 從攻擊者合約中轉移出來。

我們透過概念驗證(PoC)評估了這個想法,並與 Platypusdefi 分享了相關資訊。我們與他們緊密合作,而這個方法成功了!下方的交易紀錄顯示,240 萬美元的 USDC 已順利找回。

TransitSwap:挽救了 24.6 萬美元

BSC 鏈上的 TransitSwap 於 2022 年 10 月 1 日遭到攻擊,部分攻擊交易被一個 機器人(Bot) 搶先交易(Front-run)。

然而,我們發現該機器人容易受到 Profanity 工具漏洞 的影響。該漏洞起因於生成私鑰時的隨機性不足。我們開發了一種工具,可以恢復這些易受攻擊地址的私鑰。

我們成功恢復了該機器人的私鑰。不過,資金位於機器人合約中,而非外部擁有地址(EoA)。我們成功對該合約進行了反編譯,並找到了一個可以用來轉移資金的函式。

我們已將資金轉移至 TransitFinance 官方資金接收地址

閱讀更多內容請見 我們如何為 TransitSwap(及 BabySwap)找回失竊資金

Saddle Finance:挽救了 380 萬美元

對於 Saddle Finance,我們採取了另一種救援方式。其基本思路是監聽以太坊的待處理交易池(Pending pool),透過我們的交易預執行系統 Mopsus 檢測攻擊交易,並藉由自動合成一筆將易受攻擊資產移入我們安全帳戶的救援交易,再利用 FlashBot 搶在攻擊交易之前執行,從而攔截該次攻擊。下圖展示了該架構:

下方的時間軸展示了我們的系統如何在 2022 年 4 月底 為 Saddle Finance 挽救了 380 萬美元。具體而言,我們的系統在不到一秒鐘的時間內完成了檢測攻擊交易並自動合成救援交易的整個流程。我們將所有挽救的資金歸還給了 Saddle Finance。點擊連結可查看 原始黑客攻擊交易 以及 我們的救援交易

閱讀更多: 透過主動威脅防護保障 Web3 安全

總結

上述這三個案例僅是代表性案例。事實上,我們還有更多挽回資金的成功經驗。

我們始終認為,DeFi 安全無法透過單一方法解決。沒有所謂的靈丹妙藥。BlockSec 已經開發了多種工具(且正在持續開發更多)與服務,致力於協助確保整個生態系統的安全。我們擁有 Phalcon(用於區塊鏈的交易分析平台)、程式碼安全審計服務(涵蓋 Solidity, Rust, Go 和 Move)以及 主動攻擊緩解服務。我們還為加密貨幣用戶構建了一系列工具來對抗釣魚攻擊,包括加密資產分析工具 MetaSleuth 以及區塊鏈瀏覽器插件 MetaSuites。我們 持續向 MetaMask 和 Etherscan 舉報釣魚網站網址與詐騙地址。BlockSec 也與 CronosFortaTokenlonKeyStoneGoplus 等合作夥伴攜手,共同保障整個加密生態系統的安全。

如果您有任何疑問,請隨時與我們聯絡。

了解更多關於 BlockSec 的資訊: 網站 | 文件 | Twitter | 部落格 | Telegram 群組