宇宙链 宇宙链
Ctrl+D收藏宇宙链

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

作者:

时间:1900/1/1 0:00:00

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

攻击细节分析

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

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

美联储卡什卡利:明年初降息的想法“不现实”。:8月11日消息,美联储卡什卡利:明年初降息的想法“不现实”。更现实的做法是提高利率,直到通胀率降至2%。预计美联储利率在(今年)年底前达到3.9%,到2023年底之前达到4.4%。(金十)[2022/8/11 12:16:41]

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

北京大兴国际机场临空经济区:利用区块链等技术大力推行“不见面”审批:12月3日,北京大兴国际机场临空经济区(大兴)管理委员会专职副主任罗伯明在一场发布会上介绍临空区赋权。罗伯明表示,为做好赋权承接工作,临空区管委会将因地制宜服务社会企业,灵活把握项目时序,合理安排建设任务,提升治理能力。目前已搭建起“一网通办”受理系统,下一步将以企业需求为导向,利用区块链、大数据等信息技术,大力推行“不见面”审批,构建极简高效的审批机制,确保赋权事项批得快;以有力监督为目标,推进审管衔接,确保赋权事项管得好。(中国新闻网)[2020/12/3 22:59:51]

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

加拿大央行行长:准备“不惜一切代价”支撑经济:加拿大央行行长波洛兹表示,加拿大央行准备“不惜一切代价”支撑经济。将推出新的银行购买便利工具。如有必要,央行准备好为银行注入充裕的流动性。鉴于财政空间仍存,“极不可能需要”负利率。(金十)[2020/3/14]

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

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

韩国惊现数字货币相关威胁信:“不打币就杀你家人”:据韩联社消息,日前已逮捕一名涉嫌撒布威胁信已获得数字货币的29岁男性姜某。该男子向首尔的17家公寓发送威胁信:如果不在春节期间转账价值1500万韩元(约合8.8万人民币)的数字货币到指定钱包地址,就将杀死对方的一个家人。分析了姜某的钱包账户,判断目前没有受害人。姜某表示为了生存和还债才选择铤而走险,此前他本人投资过数字货币,但未能盈利。[2018/2/25]

通过以上分析我们可以知道攻击者在一次代币兑换过程中分别通过调用 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

标签:SWAPAAACHEPSWAPO3 SwapAAA币BABYCHEDDA价格SheepSwap Finance

比特币最新价格热门资讯
美联储决议前瞻:四大谜团今晚揭晓 金融市场屏息以待

美联储今晚注定不会加息,也几乎不可能立刻宣布缩减QE,即便是上调逆回购工具利率(RRP)以及超额准备金利率(IOER)的可能性也不超过五成.

1900/1/1 0:00:00
大行情不断“”黄金上演V型大反转 比特币狂飙逾13%

原标题:大行情不断!黄金上演V型大反转、比特币狂飙逾13% 市场屏息以待“最重要的会议”来袭FX168财经报社(北美)讯 周一(6月14日),金融市场交投震荡.

1900/1/1 0:00:00
加拿大矿企Bitfarms将于6月21日在纳斯达克开始交易

加拿大上市矿企Bitfarms发布公告称,该公司已获得 DTC 资格,其普通股预计将于 6 月 21 日星期一开始在纳斯达克上市,交易代码为“BITF”,该代码与 Bitfarms 在 TSX交易所上市代码相同.

1900/1/1 0:00:00
金色观察丨比特币是泡沫、通胀是暂时?看全球基金经理们怎么说

金色财经 区块链6月17日讯  根据美国银行最新的全球基金经理调查结果显示,在所有交易中,“做多比特币”的交易量现在排名第二,仅次于“做多商品”。此外,大多数基金经理认为比特币依然处于泡沫中,并同意美联储的通胀是暂时的.

1900/1/1 0:00:00
公链竞争中的以太坊表现如何?

生态系统资源 当我们对不同的 L1 公链在构建?Web3 应用的开发和工具方面进行比较时,需要注意的第一个主要方面是许多 L1 区块链生态系统中可用资金量有多大.

1900/1/1 0:00:00
钝刀子割肉 是一种什么体验?

市场的走势和分歧是永无止境的,没有人能够确切的知道下一秒会如何变化,更不会预测出明年哪个赛道才是最强王者,但在复杂的市场里,却有一个最简单的逻辑,就是长期来看,所有资产都是向上的,因为全球的货币处于持续增发的大环境里.

1900/1/1 0:00:00