前言
6月20日,BSC链上的DeFi项目ImpossibleFinance突然遭遇闪电贷袭击,本是涨势喜人的IF代币从此也一蹶不振,价值一路下滑。知道创宇区块链安全实验室第一时间跟踪本次事件并分析。
事件分析
第一阶段:准备阶段
Y Combinator 支持的多链 NFT API 项目 SimpleHash 上线测试网:9月10日消息,多链 NFT API 项目 SimpleHash 现已在多个网络的测试网上线,包括以太坊、Polygon、Solana、Optimism、Arbitrum、Flow 测试网。SimpleHash NFT API 是一个基于 REST 的 API,提供了跨多个链查询 NFT 元数据和交易历史(包括销售细节)的功能。
SimpleHash 的投资方和支持方包括 Y Combinator、Coinbase Ventures、OpenSea Ventures、FCVC、Caffeinated Capital 等。[2022/9/10 13:20:59]
图1:黑客准备阶段流程图从黑客准备阶段流程图中我们可以看到黑客的最终目的是创建AAA代币与IF代币流动性。为此他的具体操作:第一步:获取IF代币(利用闪电贷从PancakeSwap中获取WBNB代币,并将其兑换成IF代币)
动态 | 区块链智能手机FINNEY与Simplex合作:据leaprate报道,区块链智能手机FINNEY创造者Sirin Labs 最近称,已与Simplex合作。此次合作将允许FINNEY用户通过其冷钱包设施直接从手机上使用法币购买加密资产。Simplex将为处理法币与加密资产交易的请求提供安全托管服务。[2019/2/25]
第二步:创建可控代币AAA(BBB)
动态 | Simple Ledger Protocol发布允许使用BCH编程的应用程序:据news.bitcoin消息,Simple Ledger Protocol的创建者发布了一个名为Cashy的比特币现金(BCH)程序员的新工具。该工具箱允许开发人员使用BCH网络编写脚本合同和各种可编程的应用程序。[2018/12/21]
第三步:在Impossible中添加了AAA代币与IF代币流动性
第二阶段:攻击阶段
图2:黑客攻击阶段流程图从黑客攻击阶段流程图中我们可以看到黑客的最终目的是获得BUSD代币。他的具体操作:第一步:通过Router合约设置兑换路径(AAA->IF->BUSD)第二步:在同一兑换过程中进行了两次兑换操作
第三步:兑换可获利的BUSD代币,并兑换IF代币为下次攻击做准备
攻击原理分析
为什么黑客要在同一兑换过程中进行两次兑换操作?理论上每次兑换操作都将导致K值的变化,用户一般无法获得预期数量的代币。既然黑客这样操作并获利,那么一定在合约某处出了问题。果然检查源码发现了问题:
cheapSwap函数并没有检查K值变化,直接更新价值变化。这就是黑客通过多次兑换操作获得额外BUSD代币的原因。总结
本次闪电贷安全事件主要是由于项目方在参考Uniswapv2协议进行创新时,没能及时对创新内容进行安全验证。虽然对cheapSwap函数做了限制,但是对其本质的安全性——价格变动却忽视了,这是不应该的。近期,BSC链上频频爆发攻击事件,合约安全愈发需要得到迫切重视。BSC官方目前也发推称推测有黑客团队盯上BSC,叮嘱各项目方注意规范,合约审计、风控措施、应急计划等都有必要切实落实。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。