月亮链 月亮链
Ctrl+D收藏月亮链
首页 > ADA > 正文

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

作者:

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

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

攻击细节分析

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

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

资管公司Simplify向美SEC提交ETF申请,拟将总资产的15%投资GBTC:10月28日消息,资产管理公司Simplify向美国证券交易委员会(SEC)提交交易所交易基金(ETF)申请,该ETF名为The Simplify U.S. Equity PLUS GBTC ETF(SPBC),将至少80%的净资产投资于美国公司的股票和灰度比特币信托(GBTC),其中预计将总资产的15%投资于GBTC,以间接获得加密货币敞口,该基金不会直接投资于比特币、比特币期货或其他加密货币。[2022/10/28 11:53:38]

加密支付商Simplex已将添加SEPA Instant作为支付方式:加密货币支付提供商 Simplex 已将 SEPA Instant 添加到支付方式列表中,使其欧洲合作伙伴能够更轻松灵活地将资金转移到数字资产中。(Cointelegraph)[2021/7/8 0:37:38]

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

Impossible Finance宣布上线ImPossible V1 Swap:Impossible Finance在推特上表示,ImPossible V1 Swap已上线,用户现可在swap.impossible.finance进行swap操作或添加流动性。[2021/6/29 0:15:05]

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

Blockstream推出Simplicity新版本以简化合约开发:据官方博客,Blockstream宣布了Simplicity开发的新版本:一个带有Jets的新开发人员预览版。Jet可以被认为是预制的构建块,可以组合在一起构建复杂的Simplicity程序,而不必从头开始构建一切,从而加快了开发基于Simplicity的智能合约的过程,同时降低了其资源成本。此版本还引入了对比特币和元素测试分支的Simplicity支持。[2020/4/5]

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

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

币安官方:不要打开名为“ERC20 Token Import”的邮件:据币安官方消息,他们收到报告称有一封名为“ERC20 Token Import”的邮件伪装成币安官方,盗窃用户个人钱包(而非用户在币安的账户),并强烈建议用户不要给出自己的私钥。[2018/3/26]

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

但通过分析ImpossiblePair的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协议在参考其他项目的基础上进行创新的过程中应该充分的对其新的模型进行检查验证以避免此类安全事故的发生。

标签:IMPSWAPAAASIBBimp FinanceTokenswapAAA币SIB币

ADA热门资讯
SOL:了解Solana:涡轮机、海湾流和海平面_solana币下半年

历经两轮牛市,Solana终于在2021年大放异彩。Solana是一个高性能、高质量的公链,旨在不牺牲去中心化或安全性的情况下,提供快速、便宜、抗审查的区块链网络,以满足快速增长的应用落地需求.

1900/1/1 0:00:00
NFT:11张图读懂2021上半年NFT市场发生哪些变化_NBA币

正如DeFi的爆发令人始料未及,NFT于年初以来的发展势头同样出乎多数人的意料。今年1月开始,数字收藏卡NBATopShot销售额陡增,于2月当月突破2亿美元,促进加密货币市场将目光转向NFT领.

1900/1/1 0:00:00
LAYER:行走笔记:投资人眼中Layer 2生态 (下)_ETH

今年下半年有几个确定性的热点:NFT、波卡生态以及Layer2。本篇笔记就来自国内头部加密领域投资机构分布式资本对Layer2赛道的观察.

1900/1/1 0:00:00
COM:COMP被低估?重新理解Compound的“护城河”_Cardano Comics

撰文:BenGiove,Bankless撰稿人传奇投资者、婴儿潮一代的沃伦·巴菲特(WarrenBuffet)有一句名言:“短期来看,市场是一台投票机,但长期来看,它是一台称重机.

1900/1/1 0:00:00
比特币:比特币凶相试炼萨尔瓦多货币新局_ELE

自6月9日萨尔瓦多国会批准比特币成为本国法定货币以来,这个中美洲小国开始在比特币支付和挖矿两方面积极布局.

1900/1/1 0:00:00
比特币:“中场”腰斩 无人再谈“永恒牛市”_BCH

请问3月份比特币6万刀的时候是什么市?站在今天回顾过去很多人肯定说是牛市。那么今天比特币3万3是什么市?这个问题就有分歧了。有人说是牛市中的回调,有人说是熊市的途中.

1900/1/1 0:00:00