Impossible Finance 被黑分析

“不可思议” 的被黑之旅: Impossible Finance 被黑分析


据慢雾区消息,币安智能链 (BSC) DeFi 项目 Impossible Finance 遭遇闪电贷攻击。慢雾安全团队第一时间介入分析,并将结果分享如下:


攻击细节分析

Impossible Finance 的 DEX 架构参考了 Uniswap v2,但在 Pair 的实现上有所不同。Impossible Pair 分别实现了 cheapSwap 与 swap 两个接口。cheapSwap 函数限制了只由 Router 合约可进行调用,swap 函数则是任意用户都可调用进行代币兑换操作。本次攻击事件的根本原因正是出在这种特殊的代币兑换架构上,接下来我们对此次攻击进行具体分析:

首先攻击者利用闪电贷从 PancakeSwap 中借出大量 WBNB,并最终将其兑换成 IF (Impossible Finance 代币) 。

随后攻击者创建了一个由自己控制的代币 AAA (BBB),并与上一步骤中获得的 IF 代币添加流动性。

之后攻击者通过 Router 传入自定的兑换路径 (AAA -> IF -> BUSD) 将 AAA 代币兑换成 BUSD 代币,而问题正是出现在此兑换过程中。通过链上记录我们可以很容易的发现攻击者在将 AAA 代币兑换成 IF 代币的过程中进行了两次兑换操作:

为什么在一次兑换过程中会进行两次兑换操作呢?

通过分析具体的内部调用流程我们可以发现,攻击者在 Router 合约调用 AAA 合约的 transferFrom 函数将 AAA 代币转入 Pair 合约的过程中,同时调用了一次 Pair 合约的 swap 函数 (即在 transferFrom 函数实现了正常转账与 swap 调用的逻辑)。然后再通过项目设计预期的 cheapSwap 再进行一次正常的代币兑换操作。

通过以上分析我们可以知道攻击者在一次代币兑换过程中分别通过调用 swap 函数与 cheapSwap 函数进行两次代币兑换操作,最终收到了额外的 BUSD 代币。那么既然是进行兑换操作,理论上每次兑换操作都将导致 K 值的变化,最终使得用户无法获得预期的代币。

但通过分析 Impossible Pair 的 swap 函数与 cheapSwap 函数的具体逻辑,我们发现一个惊人的情况:在 swap 函数中进行了 K 值检查,而在 cheapSwap 函数却未进行 K 值检查而直接进行了 update 操作。这就导致了攻击者进行了多次兑换操作获得了额外的 BUSD。

攻击流程

1、攻击者先通过 PancakeSwap 闪电贷借出 WBNB,并将 WBNB 兑换成 IF 代币。

2、创建恶意的代币合约 AAA(BBB),并在 Impossible 中添加了 AAA 代币与 IF 代币流动性。

3、通过 AAA -> IF -> BUSD 路径进行 AAA 代币到 BUSD 代币的兑换,并在 AAA 代币转入 Pair 合约兑换成 IF 代币的过程中进行了一次 IF 代币与 BUSD 的兑换操作,随后再进行正常的 cheapSwap 操作。最终获得了额外的 BUSD 代币。

4、之后重复以上操作进行获利。

总结

本次攻击的核心在于 cheapSwap 函数中未进行 K 值检查,导致攻击者可以通过在一次兑换过程中进行多次兑换操作以获得额外的代币。慢雾安全团队建议 DeFi 协议在参考其他项目的基础上进行创新的过程中应该充分的对其新的模型进行检查验证以避免此类安全事故的发生。

参考交易:

https://bscscan.com/tx/0x0220704a99ddfb982d26e65cc337f26b77dc057930b7aa1d848cc48ec77984a8


24小时热点

非常硬核的LP流动性挖矿的核算

2021年1月19日20:00MDX正式上线交易挖矿和流动性 ...

667157

币安

NFT艺术品交易所

NFT交易平台可以类比淘宝、闲鱼的商业模式去理解,配合NFT ...

750071

HitBTC交易所

数字人民币APP支持绑定8家银行的银行卡

2021年是DCEP普及年。而要普及,银行的数字人民币钱包必 ...

232413

区块链优点

什么是去中心化交易所(DEX)?

去中心化交易所是一个基于区块链的交易所,它不将用户资金和个人 ...

584127

bitFlyer交易所

最近央行提出的DC/EP是什么?

2019年8月10日,央行结算司副司长穆长春发表演讲,介绍了 ...

489319

网络资源

柴犬币SHIB来了

受狗狗币启发,柴犬币(SHIB)近两天被创造出来。

1094831

比特

国家区块链相关政策汇总

据零壹智库不完全统计,截至2019年12月,国家层面共计出台 ...

398514

区块链是什么

“星火·链网”正式启动

中国信息通信研究院工业互联网与物联网研究所所长金键首次介绍了 ...

233136

HitBTC交易所

发改委发布《产业结构调整指导目录》:挖矿或将在2021年被淘汰(附全文)

2019年4月8日,发改委发布《产业结构调整指导目录(201 ...

203898

区块链的前景

比特币和Libra在央行数字货币的世界中将扮演什么角色

拉古拉姆·拉詹认为比特币属于“投机资产”,而Libra则是专 ...

79740

区块链的应用领域

热点专题

2020年打假总结:存活近3年 疯狂的“传销币”GEC是怎么苟延残喘至今?

币圈从来不缺乏资金盘或是传销币,但多数都不长久,一夜之间项目 ...

2692746

区块链的作用

2020年打假总结:Pi Network项目的传销性质

曾经,号称“走路就能赚钱”拥有大量用户和广泛影响的国内APP ...

1401286

区块链的作用

柴犬币SHIB来了

受狗狗币启发,柴犬币(SHIB)近两天被创造出来。

1094831

比特

NFT艺术品交易所

NFT交易平台可以类比淘宝、闲鱼的商业模式去理解,配合NFT ...

749122

HitBTC交易所

非常硬核的LP流动性挖矿的核算

2021年1月19日20:00MDX正式上线交易挖矿和流动性 ...

665796

币安

骗走了中国人5000亿MBI集团的“易物币”长什么样的

人性终究还是舍弃不掉自己贪婪的一面! 今年10月 ...

643917

区块链的特点是什么

什么是去中心化交易所(DEX)?

去中心化交易所是一个基于区块链的交易所,它不将用户资金和个人 ...

583101

bitFlyer交易所

在Mdex上挖矿教程

Mdex是火币生态链上的去中心化交易所,Mdex挖矿于1月1 ...

539306

大都会资本

PlusToken正式跑路 你该怎么办?

今天中午,一则消息刷遍了币圈,但是伴随着消息一起传播的,是更 ...

519196

区块链的概念

POC共识机制挖矿必将引发下一轮的挖矿浪潮

随着行情的好转,技术与底层平台的不断更新与完善,区块链应用正 ...

494321

ViaBTC