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

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

攻击细节分析

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

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

美股三大指数集体收涨,标普500指数涨1.07%:金色财经报道,美股三大指数集体收涨,纳指涨1.27%,标普500指数涨1.07%,道指涨0.72%。[2022/9/13 13:25:27]

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

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

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

风险投资家Tim Draper:愿意使用比特币购买特斯拉生产的电动皮卡:1月19日,风险投资家Tim Draper发推并@特斯拉创始人Elon Musk表示,自己本人愿意使用比特币购买特斯拉出品的CyberTruck(电动皮卡),并向马斯克推荐了其风投公司旗下的比特币支付处理器OpenNode。[2021/1/29 14:20:37]

通过分析具体的内部调用流程我们可以发现,攻击者在 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

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

以太坊交易金色观察|Swarm的分布式存储愿景会实现吗?

近日,Swarm主网上线了,让很多想参与分布式存储网络的用户略显兴奋,在区块链的分布式存储赛道里,项目都会用代币激励用户提供硬件设备接入网络,以提供存储资源构建分布式的存储服务。 此前Swarm经过了一段时间的测试网阶段,而参与测试网阶段的用户,获得的代币激励也会在8月前发放。这些新发放的代币还有一个目的,那就是让用户去参与节点的服务。

SOL金色观察丨与Layer 2差异越来越小?Layer 1区块链发展最全解析

金色财经 区块链6月16日讯  Layer 1区块链通常可以从代币销售中获得巨额资金,而且也能获得大量支持来与以太坊竞争;不过,市场上现有的工具很难赶上迅速变化的用户需求,目前核心基础设施依然是区块浏览器、钱包、开发者工具、以及(经过测试的)智能合约代码。

TUSDKusama “Parachain” 分析报告 (三)

风物长宜放眼量。 没有一直上涨的市场,也没有一直下跌的市场。亚当·斯密在《国富论》里,以及风险投资人霍德华·马克思在《周期》中都表达过:市场的力量在平衡点只是瞬间,总是像钟摆一样在上涨下跌中摆动。 所以合理的参与资金可以让我们保持冷静,有利于看穿图表和情绪噪音。赚钱需要契机,持续赚钱需要知识,学习永不止步。

币安app下载机构的加密货币抛售达到自2018年2月以来的最长纪录

根据CoinShares的数据,机构经理继续从其持有的加密货币中获利,比特币基金连续第六周出现资金外流。 上周数字资产投资产品的资金流出总额为7900万美元,标志着连续第三周资金外流,也是自2018年2月以来最长的一次撤资。比特币基金的资金流出总额为8900万美元,而以太坊产品流出190万美元。

[0:0ms0-1:15ms