Impossible Finance闪电贷攻击事件跟踪

本文约674字,阅读全文需要约1分钟
实验室第⼀时间对该事件跟进并分析。

前言

6 月 20 日,BSC 链上的 DeFi 项目 Impossible Finance 突然遭遇闪电贷袭击,本是涨势喜人的 IF 代币从此也一蹶不振,价值一路下滑。知道创宇区块链安全实验室 第一时间跟踪本次事件并分析。

Impossible Finance闪电贷攻击事件跟踪

事件分析

第一阶段:准备阶段

Impossible Finance闪电贷攻击事件跟踪

图1:黑客准备阶段流程图

从 黑客准备阶段流程图 中我们可以看到黑客的最终目的是创建 AAA 代币与 IF 代币流动性。

为此他的具体操作:

第一步:获取 IF 代币(利用闪电贷从 PancakeSwap 中获取 WBNB 代币,并将其兑换成 IF 代币)

Impossible Finance闪电贷攻击事件跟踪

第二步:创建可控代币 AAA(BBB)

Impossible Finance闪电贷攻击事件跟踪

第三步:在 Impossible 中添加了 AAA 代币与 IF 代币流动性

Impossible Finance闪电贷攻击事件跟踪

第二阶段:攻击阶段

Impossible Finance闪电贷攻击事件跟踪

图2:黑客攻击阶段流程图

从 黑客攻击阶段流程图 中我们可以看到黑客的最终目的是获得 BUSD 代币。他的具体操作:

第一步:通过 Router 合约设置兑换路径 (AAA -> IF -> BUSD)

第二步:在同一兑换过程中进行了两次兑换操作(扰乱价值)

Impossible Finance闪电贷攻击事件跟踪

第三步:兑换可获利的 BUSD 代币,并兑换 IF 代币为下次攻击做准备

Impossible Finance闪电贷攻击事件跟踪

攻击原理分析

为什么黑客要在同一兑换过程中进行两次兑换操作?

理论上每次兑换操作都将导致 K 值的变化,用户一般无法获得预期数量的代币。既然黑客这样操作并获利,那么一定在合约某处出了问题。

果然检查源码发现了问题:

Impossible Finance闪电贷攻击事件跟踪

cheapSwap 函数并没有检查 K值 变化,直接更新价值变化。这就是黑客通过多次兑换操作获得额外 BUSD 代币的原因。

总结

本次闪电贷安全事件主要是由于项目方在参考 Uniswap v2 协议进行创新时,没能及时对创新内容进行安全验证。虽然对 cheapSwap 函数做了限制,但是对其本质的安全性——价格变动却忽视了,这是不应该的。 

近期,BSC 链上频频爆发攻击事件,合约安全愈发需要得到迫切重视。BSC 官方目前也发推称推测有黑客团队盯上 BSC,叮嘱各项目方注意规范,合约审计、风控措施、应急计划等都有必要切实落实。

本文来自投稿,不代表Odaily立场。如若转载请注明出处。

ODAILY提醒,请广大读者树立正确的货币观念和投资理念,理性看待区块链,切实提高风险意识;对发现的违法犯罪线索,可积极向有关部门举报反映。

推荐阅读
星球精选