前言
北京时间 2022 年 4 月 2 日晚,Inverse Finance 借贷协议遭到攻击,损失约 1560 万美元。知道创宇区块链安全实验室 第一时间跟踪本次事件并分析。
分析
基础信息
攻击 tx1:0x20a6dcff06a791a7f8be9f423053ce8caee3f9eecc31df32445fc98d4ccd8365
攻击 tx2:0x600373f67521324c8068cfd025f121a0843d57ec813411661b07edc5ff781842
攻击者 1:0x8B4C1083cd6Aef062298E1Fa900df9832c8351b3
攻击者 2:0x117C0391B3483E32AA665b5ecb2Cc539669EA7E9
攻击合约:0xeA0c959BBb7476DDD6cD4204bDee82b790AA1562
Oracle:0xE8929AFd47064EfD36A7fB51dA3F8C5eb40c4cb4
Keep3rV2Oracle:0x39b1dF026010b5aEA781f90542EE19E900F2Db15
攻击流程
tx1:
Sushiswap 兑换,300 WETH => 374.38 INV
Sushiswap 兑换,200 WETH => 690307.06 USDC
DOLA3POOL3CRV-f 兑换,690307.06 USDC => 690203.01 DOLA
Sushiswap 兑换,690203.01 DOLA => 1372.05 INV
tx2:
质押 INV 作为抵押物
借走 1588 ETH、94 WBTC、4M DOLA、39.3 YFI
漏洞原理及细节
在第一笔攻击交易中,攻击者通过巨额的 WETH => INV 兑换,抬高 Sushiswap 中 INV 对 WETH 的价格。
紧接着在 15 秒后的下一个块中实施了第二笔攻击交易,质押 INV 作为抵押物,由于上一个块的价格操纵导致预言机对 INV 的高估值,使得攻击者得以借走大量 ETH、WBTC、DOLA、YFI 完成攻击套利。
实际上该两笔攻击交易即是常见的闪电贷操控价格攻击的拆分,由于预言机采用了 TWAP 类型,于是将攻击拆分成两段,首先通过巨额资金的兑换操纵交易对价格,然后抢先交易保证在下一个块中第一时间完成套利离场。
总结
本次攻击事件中虽然 Inverse Finance 采用了相对安全的 TWAP 类预言机,但在巨额资金和现有的抢先交易技术的基础上,依然存在攻击的可能。因此,TWAP 类预言机的窗口期时间,也需要进行合理的设置。
近期,各类合约漏洞安全事件频发,合约审计、风控措施、应急计划等都有必要切实落实。