7月21日,我們的 DeFiRanger 系統偵測到幾筆可疑交易。經過人工分析,我們確認這些交易是對 Sanshu Inu 的攻擊。具體而言,Sanshu Inu 的 Memstake 合約遭到了濫用 deflation(通縮)機制的攻擊。
在下文中,我們將通過多筆攻擊交易來說明攻擊過程。
攻擊流程
下圖列出了攻擊者 (0x333) 發起的部分交易。

此次攻擊包含四個步驟。最關鍵的是第二步,它利用了 ERC20 代幣的通縮機制來操縱 Memstake 智能合約的獎勵計算。


-
步驟 1(準備階段):攻擊者創建了兩個攻擊合約。第一個合約存入了 2,049B 的 KEANU。第二個合約則是用於攻擊的合約。
-
步驟 2(操縱階段):攻擊者首先使用從 uniswapV2 借出的閃電貸 (Towards A First Step to Understand Flash Loan and Its Applications in DeFi Ecosystem (SBC 2021)) 獲取大量 KEANU 代幣,然後利用步驟 1 中創建的第二個智能合約將代幣存入 Memestake 或從中提取。由於 KEANU 具備通縮機制,每筆交易會銷毀 2% 的代幣,因此實際存入 Memestake 的代幣數量小於 Memestake 合約所維護的數值 (
user.amount)。攻擊者重複此過程,使得 Memestake 內部的 KEANU 代幣數量減少到極小值 (1e-07)。請參閱交易 0x00ed 及下圖。

- 步驟 3(獲利階段):攻擊者調用
Memestake.updatePool()來更新accMfundPerShare。該數值取決於被第二步操縱的 KEANU 代幣數量。隨後,攻擊者獲得了大量的 Mfund(約 61M)。 更多詳情請參閱交易 0xa945。

- 步驟 4(兌換為 WETH):攻擊者將 MFund 和 KEANU 兌換為 WETH,並通過 Tornado.Cash 進行洗錢。攻擊者共獲得了 55.9484578158357 ETH 的利潤。
其他資訊
有趣的是,攻擊的第二步和第三步與 Flashbots 有關。第二步使用 38 ETH 購買 KEANU (0x00ed)。該交易遭到了夾心攻擊(通過 Flashbots),使攻擊者自己也成了夾心攻擊的受害者。第三步 (0xa945) 在 Uniswap 出售 MFund,這創造了一個套利機會,並被一位 Flashbots 搜索者捕獲。
關於 BlockSec
BlockSec 是一家領先的區塊鏈安全公司,於 2021 年由一群全球傑出的安全專家創立。公司致力於增強新興 Web3 世界的安全性與易用性,以推動其大規模採用。為此,BlockSec 提供智能合約與 EVM 鏈安全審計服務、用於安全開發及主動阻斷威脅的 Phalcon 平台、用於資金追蹤與調查的 MetaSleuth 平台,以及協助 Web3 開發者高效瀏覽加密世界的 MetaDock 擴充插件。
迄今為止,公司已服務超過 300 家知名客戶,包括 MetaMask、Uniswap Foundation、Compound、Forta 和 PancakeSwap,並從 Matrix Partners、Vitalbridge Capital 和 Fenbushi Capital 等頂尖投資者處獲得了兩輪數千萬美元的融資。
官方 Twitter 帳號:https://twitter.com/BlockSecTeam



