Back to Blog

我們如何為 TransitSwap 與 BabySwap 追回被盜資金

October 10, 2022
4 min read

簡介

BSC 上的 BabySwap 與 TransitSwap 於 10 月 1 日遭到攻擊。部分攻擊交易被一個 機器人 搶先交易(Front-run)。有趣的是,該機器人本身存在 Profanity 工具漏洞,我們成功恢復了其私鑰。同時,我們逆向工程了該機器人的合約,並將資金從機器人合約提取至我們的安全帳戶中。目前我們已將資金轉移予 TransitSwap,並正在與 BabySwap 進行對接。

時間軸

針對 BabySwap 攻擊的偵測

2022-10-01 14:47 (UTC),我們的內部系統偵測到 一筆攻擊交易。進一步分析顯示,這是 由於智慧路由合約中受控的工廠合約所導致。然而,由於當時該專案仍處於脆弱狀態,我們並未公開細節。我們透過 Twitter 私訊與 TG 聯繫了 BabySwap,但未獲回覆。

在調查過程中,我們發現該交易是由一個機器人帳戶發出的,該帳戶搶先交易了 原始的攻擊交易。此外,該帳戶位址具備前八位為零的特徵,看起來是由 Profanity 工具生成的,該工具存在 Profanity 工具漏洞

恢復機器人私鑰

2022-10-01 16:10 (UTC),我們的工具在大約 20 分鐘內成功恢復了該機器人的私鑰。對於恢復後的私鑰,我們將資金轉移至一個安全帳戶(這是 我們救援過程的標準流程)。否則,其他同樣恢復私鑰的人可能會接管該帳戶,導致其中的資金面臨風險。

從機器人轉出資金

挑戰在於,資金存放於該機器人部署的 合約 中,而非機器人的 EOA 帳戶本身。如何撥出資金是一個難題。

我們反編譯了該合約,發現合約中存在一個提款函數(如下圖所示)。

該函數可用於提取合約中的資金。第一個參數為代幣位址,第二個參數應為零。

我們發送了 一筆交易,成功將資金從合約提取至機器人帳戶,隨後 將資金轉移至我們的安全帳戶

又一場攻擊來襲!

幾個小時後,我們的系統回報了針對 TransitSwap 的另一場攻擊。當時出現了多筆來自不同位址的攻擊交易,其中一筆交易 再次被這個機器人搶先交易了! 不過,由於該機器人部署的合約不同,提取資金的函數也有所差異。

返還資金

經過內部審議,我們決定將資金返還給受攻擊的專案(而非歸還機器人持有者),原因如下

  • 首先,這些資金是機器人透過攻擊脆弱合約獲得的。儘管機器人是搶先了攻擊交易(而非發起攻擊的一方),但 我們仍認為,針對攻擊交易進行搶先交易的行為本身也是一種攻擊

  • 其次,這些資金屬於攻擊的受害者,即相關 DeFi 協定的用戶。用戶因 DeFi 協定中的漏洞蒙受了巨大損失,他們理應收到來自攻擊者的賠償。

我們已將資金轉移至 TransitFinance 官方資金接收位址,並正在聯繫 BabySwap。

救援更新

我們仍在 搶救脆弱位址的過程中困難點在於,在恢復私鑰之前,無法判定一個位址是否真正脆弱。儘管我們擁有優化的演算法,但受限於運算能力,我們仍需更多時間才能完成全面救援。我們稍後將發布一份詳細報告,深入剖析整個過程並解答以下問題:

  • 有多少位址處於脆弱狀態?
  • 此漏洞的影響範圍為何,即有多少資產因該漏洞面臨風險?
  • 此漏洞攻擊的整體狀況為何?

請持續關注並保持安全。

總結

確保 DeFi 專案的安全並非易事。除代碼審計外,我們認為社群應採取主動方式監控專案狀態,並 在攻擊發生前就加以攔截

關於 BlockSec

BlockSec 是一家區塊鏈安全領域的開拓者,於 2021 年由一群享譽國際的安全專家創立。公司致力於提升新興 Web3 世界的安全性與可用性,以推動其大規模採用。為此,BlockSec 提供智慧合約與 EVM 鏈安全審計服務,開發了用於安全開發與主動威脅防禦的 Phalcon 平台,用於資金追蹤與調查的 MetaSleuth 平台,以及協助 Web3 建設者高效瀏覽加密世界的 MetaDock 擴充功能。

迄今為止,公司已為 MetaMask、Uniswap Foundation、Compound、Forta 及 PancakeSwap 等 300 多家知名客戶提供服務,並獲得包括 Matrix Partners、Vitalbridge Capital 及 Fenbushi Capital 在內的頂尖投資機構兩輪數千萬美元的融資。

官方網站:https://blocksec.com/

官方 Twitter 帳號:https://twitter.com/BlockSecTeam