• 登录
社交账号登录
SharkTeam独家分析 | Impossible Finance闪电贷攻击事件分析

SharkTeam独家分析 | Impossible Finance闪电贷攻击事件分析

北京时间2021年6月21日,币安智能链(BSC)上AMM项目Impossible Finance受到闪电贷攻击,损失近50万美元。

SharkTeam第一时间对此事件进行了攻击分析和技术分析,并总结了安全防范手段,希望后续的区块链项目可以引以为戒,共筑区块链行业的安全防线。

一、 事件分析

(1)攻击者通过闪电贷借贷了233.3 WBNB,加上合约中原来就有得767.7 WBNB,于是,攻击合约中有1001 WBNB。通过路由WBNB=>BUSD=>IF将1000 WBNB兑换为6.5万IF Token。

image.png

(2)共计合约创建由其掌控的代币AAA(BBB),然后将一半的IF Token (3.257万)添加流动性,获得180个IF-BBB的LP Token。

image.png

(3)攻击者通过 Router 传入自定的兑换路径 (AAA -> IF -> BUSD) 将 AAA 代币兑换成 BUSD 代币,但通过链上记录却发现IF -> BUSD的过程发生了两次,导致攻击者得到了两倍的USD。

image.png

(4)攻击者重复进行了此攻击两次,之后归还闪电贷并获利。

问题到底出现在哪里?通过分析函数,我们发现,在ImpossiblePair合约中(Fork Uniswap并改写),同时存在cheapswap(新增)和swap(fork)两个swap函数,正常的操作会调用cheapswap。但正因为没有清理掉swap函数,攻击者可以再调用cheapswap时也调用swap,获得两次BUSD。

image.png

二、安全建议

此次事件是又一次与闪电贷攻击有关的区块链安全事件,DeFi项目的业务逻辑设计复杂,涉及的经济学计算和参数较多,却不同项目和协议之间可组合性极其丰富,很难预测,非常容易出现安全漏洞。如下表,利用闪电贷这种新型产品进行攻击的DeFi事件在过去的一年里层出不穷,已增加到25起。通常闪电贷攻击包括“哄抬套利”、“操纵预言机”、“重入攻击”和“技术漏洞”四种。本次属于基于“技术漏洞”的黑客攻击。

项目方在基于Uniswap这类项目进行Fork并开发自己的合约时,请先充分理解清楚原项目的函数实现和安全保护措施及建议,避免滥用误用,带来合约漏洞,被黑客攻击。

image.png

智能合约安全关系用户的财产安全,至关重要!区块链项目开发者应与专业的安全审计公司合作,避免合约中的状态和计算错误,为用户的数字资产安全和项目本身安全提供保障。SharkTeam作为领先的区块链安全服务团队,为开发者提供智能合约审计服务。智能合约审计服务由人工审计和自动化审计构成,满足不同客户需求,独家实现覆盖高级语言层、虚拟机层、区块链层、业务逻辑层四个方面数百项审计内容,全面保障智能合约安全。

SharkTeam为客户提供高级别的区块链安全服务,区块链安全专家团队7*24小时为智能合约提供全生命周期的安全保障,服务包括:VIP安全审计服务、VIP合规审计服务、安全事故应急响应等。

SharkTeam也提供自动化审计工具,自动化审计以云服务的方式为用户提供服务。运用符号执行、形式化验证等智能合约分析技术,满足开发者智能合约日常审计需求。



相关文章