SharkTeam独家分析 | 闪电贷&重入攻击:DeFiPie被攻击事件分析
北京时间2021年7月13日,以太坊和币安智能链上的借贷协议 DeFiPie (PIE)遭到黑客攻击,建议所有流动性提供者从应用程序中提取所有流动性,PIE 代币 24 小时跌逾 66%。
SharkTeam第一时间对此事件进行了分析,并总结了安全防范手段,希望后续的区块链项目可以引以为戒,共筑区块链行业的安全防线。
一、事件分析
(1)攻击者首先通过攻击合约2(总共有3个攻击合约)创建了三个Token代币合约:pX1、pX2、pX3
(2)三种X Token分别铸造2.8K个,并创建资金池,并通过抵押其他流通代币(USDT/DAI/USDC/BNB等)为X Token提供真实流动性。
(3)攻击者通过攻击合约3通过闪电贷从PancakeSwap中借出12.5K的BUSD,抵押到PErc20Delegator合约中并获得pBUSD。
并利用在第2步中铸造的三种X Token进行循环借贷(XToken中的transfer函数是恶意修改的):pX1-pX2-pX3-PIE,共超额借出4.23M个PIE。
(4)攻击者将获得的PIE在PancakeSwap中兑换成54个BNB
(5)触发清算机制,攻击合约3的资产被清算并获得124个BUSD
(6)归还闪电贷并获利。此漏洞在PIE的流动性池中均存在。
此次攻击事件发生的根本原因在于:
A:缺少Token白名单机制,任意用户可以创建任意Token并创建流动性池,进行流动性添加。
B:函数中的转账动作在状态更新之前进行,所以攻击者可以进行重入攻击,并借出超过抵押品价值的PIE。
二、安全建议
此次事件是又一次与闪电贷有关的安全事件,DeFi项目的业务逻辑设计复杂,涉及的经济学计算和参数较多,却不同项目和协议之间可组合性极其丰富,很难预测,非常容易出现安全漏洞。如下表,利用闪电贷这种新型产品进行攻击的DeFi事件在过去的一年里层出不穷,已增加到29起。通常闪电贷攻击包括“哄抬套利”、“操纵预言机”、“重入攻击”和“技术漏洞”四种,本次属于基于“重入攻击”。
SharkTeam提醒您,在涉足区块链项目时请提高警惕,选择更稳定、更安全,且经过完备多轮审计的公链和项目,切不可将您的资产置于风险之中,沦为黑客的提款机。
而作为项目方,智能合约安全关系用户的财产安全,至关重要!区块链项目开发者应与专业的安全审计公司合作,进行多轮审计,避免合约中的状态和计算错误,为用户的数字资产安全和项目本身安全提供保障。
SharkTeam作为领先的区块链安全服务团队,为开发者提供智能合约审计服务。智能合约审计服务由人工审计和自动化审计构成,满足不同客户需求,独家实现覆盖高级语言层、虚拟机层、区块链层、业务逻辑层四个方面近两百项审计内容,全面保障智能合约安全。