Impossible Finance 闪电贷攻击事件跟踪

创宇区块链安全实验室
创宇区块链安全实验室 机构得得号

2021年06月24日 专注构建区块链安全生态,致力于让人类进入安全的区块链世界。

摘要: 币安智能链 (BSC) DeFi 项目 Impossible Finance 遭遇闪电贷攻击,实验室第⼀时间跟进并分析。

前言

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

事件分析

第一阶段:准备阶段

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

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

为此他的具体操作:

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

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

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

第二阶段攻击阶段


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

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

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

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

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

攻击原理分析

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

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

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

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

总结

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

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

作者:创宇区块链安全实验室;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请联系微信:chaindd123

链得得仅提供相关信息展示,不构成任何投资建议
本文系作者 创宇区块链安全实验室 授权链得得发表,并经链得得编辑,转载请注明出处、作者和本文链接

更多精彩内容,关注链得得微信号(ID:ChainDD),或者下载链得得App

分享到:

相关推荐

    评论(0

    Oh! no

    您是否确认要删除该条评论吗?

    分享到微信