簡介
2022 年 6 月 16 日,Inverse Finance 遭到攻擊,導致損失超過 100 萬美元。該攻擊交易為 https://versatile.blocksecteam.com/tx/eth/0x958236266991bc3fe3b77feaacea120f172c0708ad01c7a715b255f218f9313c。根本原因是 Inverse Finance 所使用的價格預言機遭到了操縱。
攻擊分析
攻擊者首先透過閃電貸從 Aave 借入 27,000 枚 WBTC。隨後,將其中 225 枚 WBTC 存入 Curve 並鑄造了 5,375 枚 crv3crypto。攻擊者將這 5,375 枚 crv3crypto 存入 yvCurve-3Crypto,獲得了 4,906 枚 Yearn cToken,這些代幣將用作 Inverse Finance 中的質押品。

剩餘的 26,775 枚 WBTC 用於操縱質押品價格。攻擊者透過兌換(swap)這 26,775 枚 WBTC 獲得了 75,403,376 枚 USDT。這次兌換將預言機的價格從 979 推高至 2,831。

從 borrowAllowed 函數中可以看到,它會檢查用戶是否能利用存入的質押品借入指定數量的代幣。

具體而言,函數 getHypotheticalAccountLiquidityInternal 將用於檢查借貸行為是否安全。質押品的價格是透過 getUnderlyingPrice 獲得的。

函數 getUnderlyingPrice 調用函數 latestAnswer 來獲取結果。如前所述,26,775 枚 WBTC 被用於兌換 USDT,從而導致質押品價格被抬高。

在這種情況下,攻擊者可以借入大量的 DOLA(即 10,133,949 枚),其價值遠超過已存入的質押品。

最後,攻擊者將 75,403,376 枚 USDT 換回 2,662,649 枚 WBTC,並將借來的 10,133,949 枚 DOLA 兌換為 9,881,355 枚 3Crv,然後從流動性池中提取出 10,099,976 枚 USDT。

隨後,將 10,099,976 枚 USDT 中的 10,000,000 枚再次兌換為 WBTC,用於償還閃電貸。至此,攻擊完成。攻擊者在此次攻擊中獲得了 99,976 枚 USDT 和 53.2 枚 WBTC 的利潤。

總結
這是一次傳統的價格操縱攻擊。我們對於此類攻擊在現今仍能發生感到驚訝,此事件再次提醒 DeFi 協議必須加強其安全系統。
關於 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



