作者|0x6617
案件分析|链上天眼团队 近年来,随着DeFi市场规模的指数型增长,预言机作为DeFi安全性的重要组成部分,针对它的攻击已是屡见不鲜,而本次INV(Inverse Finance的链上资产)的价格被操纵,既不是闪电贷攻击,与Inverse Finance的智能合约或前端代码也无关,而是TWAP预言机使用的时间窗口太短。 价格操纵的另一面是链上套利。DeFi兴起后,以太坊等区块链网络不仅支撑链上资产转账,还有了如挖矿、借贷、衍生品等智能合约的交互场景,这也使得链上可捕获的价值变多,主要通过套利、清算的MEV(Maximum Extractable Value,最大可提取价值)提取的价值也在迅速增加,尤其是Flashbots推出可视化MEV产品「MEV-Explore v1」,更是将MEV清晰地呈现在我们眼前。 由于存在链上套利机器人不间歇的搬砖行为,如果攻击者操纵预言机,又不是借助闪电贷在一个区块内完成的话,防止MEV-bots抢跑(front-running)就成了攻击者需要考虑的问题。 2022年1月26日,有黑客使用了与Inverse Finance攻击者类似手法,攻击了借贷平台Rari的Index Coop Pool,但却上演了一幕「黑吃黑」,黑客的攻击被MEV-bots「截胡」,最终亏损68 ETH离场。 虽然Inverse Finance此次事件的攻击者预先准备了241个批量地址,每个地址打入1.5 ETH,但并不是为了发动DDOS攻击阻截其他人(通常是套利机器人)在监测到INV价格异常波动后的套利行为,而是为了保证他的攻击交易能被打包进下一个区块。 如果有MEV-bots套利,则他的后续攻击有可能跟Index Coop Pool的攻击者一样,面临赔了夫人又折兵的局面。 Inverse Finance被盗过程全解析 Inverse Finance是一套无需许可的去中心化金融工具,由运行在以太坊区块链上的去中心化自治组织Inverse DAO管理。Inverse Finance的主要产品是Anchor(借贷)和DOLA(资产)。 Anchor是一种货币市场和合成资产协议,可实现资本高效的借贷。DOLA是一种跟踪 1 美元价格的链上资产。DOLA可以用Anchor上的其他资产作为抵押来铸造,也可以自己作为抵押借入Anchor上的其他资产。INV具有附加功能,可用作锚定中的抵押资产。 经欧科云链链上天眼分析,本次攻击的关键在于,价格预言机虽然取了TWAP价格,但时间窗口较短,仅是相邻两个数值,由此使得操纵TWAP预言机成为可能。 另外SushiSwap: INV(INV-ETH交易对)的流动性非常低,仅用300 ETH(约103.5万美元)换取INV,即可大幅拉升INV价格,这也使得攻击者以1,746 INV(公允价值约64.4万美元)作为抵押品,在Inverse Finance借出1,475万美元的资产(包括1,588 ETH、94 WBTC、400万 DOLA,以及39 YFI),而后在INV价格被修正后,攻击者的INV抵押品被清算。 相关地址&交易列表: 攻击者地址1: 0x117C0391B3483E32AA665b5ecb2Cc539669EA7E9 攻击者地址2: 0x8B4C1083cd6Aef062298E1Fa900df9832c8351b3 攻击合约: 0xea0c959bbb7476ddd6cd4204bdee82b790aa1562 准备批量账号交易: 0x561e94c8040c82f8ec717a03e49923385ff6c9e11da641fbc518ac318e588984 兑换INV交易,交易块高「14506358」: 0x20a6dcff06a791a7f8be9f423053ce8caee3f9eecc31df32445fc98d4ccd8365 利用漏洞实施攻击,交易块高「14506359」 0x600373f67521324c8068cfd025f121a0843d57ec813411661b07edc5ff781842 预言机合约: 0x39b1dF026010b5aEA781f90542EE19E900F2Db15 攻击流程: 1)攻击者从Tornado Cash中提取了901 ETH,准备批量账号——通过Disperse分别向241个干净的账号发送1.5 ETH(合计361.5 ETH)作为手续费,交易哈希「0x561e」。
图片来源:OKLink 2)部署攻击合约「0xea0c」,攻击者分别将300 ETH和200 ETH兑换成WETH,并在SushiSwap的INV-WETH池子中,使用300 WETH(约103.5万美元),兑换出374枚INV。 原有46 WETH + 432枚INV ,拿300 ETH兑换374枚INV后,池子变成 346 WETH + 58枚INV,即INV价格从 0.106 WETH(约366美元)上涨至5.966 WETH(约20,583美元)。 |