
根據 Will Sheehan 的報導,APE 代幣遭到了 MEV 機器人的攻擊。經過分析,我們認為這是由於 APE 代幣的空投(AirDrop)程式僅檢查當下的即時狀態(spot state),而該狀態可被攻擊者操縱所致。
具體來說,攻擊者可以借入可用於兌換 NFT 的 BYAC 代幣,然後利用這些 NFT 來領取空投。隨後,攻擊者透過 BYAC NFT 鑄造回 BYAC 代幣以歸還閃電貸(flashloan)。然而,攻擊者在此過程中卻獲得了空投的 APE 代幣。我們認為這類似於基於閃電貸的價格操縱攻擊,即合約僅考慮了資產的即時價格(而該價格是可以被操縱的)。
接下來,我們將透過此攻擊交易來說明此過程。
第一步:準備用於支付閃電貸費用的 NFT

攻擊者將 1060 號 NFT 轉移至攻擊合約 0x7797。請注意,此 NFT 並非透過閃電貸借入,而是以 106 ETH 購買的。

第二步:透過閃電貸借入 BYAC 代幣

第三步:使用 NFT 領取 APE 代幣

請注意,在此過程中,攻擊者總共擁有六個 NFT。其中一個是他/她購買的 1060 號,另外五個是使用借來的 BYAC 代幣兌換而得(在第二步中)。總計獲得了 60,564 個 APE 代幣。
第四步:鑄造 NFT 以獲得 BYAC 代幣

攻擊者鑄造了這六個 NFT 以取回 BYAC 代幣。請注意,攻擊者還鑄造了他自己的 NFT(1060 號)來支付閃電貸的費用。由於在償還閃電貸後仍有剩餘的 BYAC 代幣(因為他鑄造了自己的 BYAC NFT 1060 號),攻擊者將剩餘的 BYAC 代幣兌換成了約 14 ETH。

獲利
總計,攻擊者獲得了 60,564 個 APE 代幣,價值約 500 萬美元(撰寫本部落格時)。成本則為一個 NFT(106 ETH - 14 ETH),約為 27 萬美元。
教訓
我們認為此問題在於,APE 代幣的空投僅考慮了 NFT 是否由某人持有的即時狀態。這是脆弱的,因為攻擊者可以使用閃電貸來操縱這種即時狀態。如果閃電貸的成本低於空投代幣的價值,就會創造出如本次攻擊中所示的攻擊機會。
致謝
感謝 Will Sheehan 舉報該筆交易。
關於 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



