6

SharkTeam独家分析 | 闪电贷攻击:Cream再次被黑事件分析

 2 years ago
source link: https://www.tuoniaox.com/news/p-517614.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

SharkTeam独家分析 | 闪电贷攻击:Cream再次被黑事件分析

SharkTeam 2021-10-28 20:43
article_qmarks.svg 摘要:

闪电贷攻击:Cream再次被黑事件分析

北京时间2021年10月27日,DeFi借贷协议Cream Finance再次遭受闪电贷攻击,损失达1.15亿美元,代币价格出现断崖式下跌。被盗的资金主要是Cream LP代币和其他ERC-20代币。其中9200万美元和2300万美元分别被盗到两个不同地址。根据统计数据,这是有史以来第三大DeFi黑客攻击,

image.png

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

一、事件分析

攻击交易:

https://etherscan.io/tx/0x0fe2542079644e107cbf13690eb9c2c65963ccb79089ff96bfaf8dced2331c92

image.png

攻击过程:

1. 攻击者使用合约1从 DssFlash 中闪电贷借出 5 亿个 DAI,随后将借出的 5 亿个 DAI 抵押至 yearn 的 yDAI 池中,以获得约 4.5 亿个 yDAI 凭证。随后攻击者将获得的 yDAI 代币在 Curve 的 yDAI/yUSDC/yUSDT/yTUSD 池子中进行单币流动性添加,以获得相应的流动性凭证。紧接着攻击者就将获得的凭证抵押到 yUSD 池子中以获得 yUSD 凭证,为后续在 Cream crYUSD 借贷池中抵押做准备。

2. 攻击者调用合约2从AAVE中利用闪电贷借出524,102个WETH(大约20亿美元),通过在 crETH 池子中抵押大量 ETH,来使得其有足够的借贷能力将 crYUSD 池子中的 yUSD 全部借出并重复抵押到 crYUSD 池子中,随后通过在 crYUSD 池子中进行循环贷以杠杆的形式扩大了本身在 crYUSD 池子中 yUSD 的抵押规模,借出10亿个crYUSD和5个亿的yUSD并将其转给合约1;

3. 攻击者调用合约1将5个亿的crYUSD存入,并借出5个亿的yUSD(此时合约1拥有10个亿的crYUSD和10个亿的yUSD);

4. 攻击者用约 1,873 个 ETH 从 Uniswap V3 中兑换出约 745 万个 USDC,并通过 Curve 3Pool 将其兑换成 DUSD 代币约 338 万 个。通过获得的 DUSD 代币从 YVaultPeak 中赎回yDAI/yUSDC/yUSDT/yTUSD 4Pool 凭证,并利用此凭证从 yUSD 池子中取回 yDAI/yUSDC/yUSDT/yTUSD 代币。

5. 攻击者查询池中yUSD的余额,并将等数量的约 8,431,514万个 yDAI/yUSDC/yUSDT/yTUSD 代币直接转回 yUSD 池子中,由于其不是通过正常抵押操作进行抵押的,所以这 843 万个 yDAI/yUSDC/yUSDT/yTUSD 代币并没有被单独记账,而是直接分散给了 yDAI/yUSDC/yUSDT/yTUSD 凭证的持有者,其目的是为了改变池子的 pricePerShare参数(由1变成2),其计算公式为:pricePerShare=Amount_USD/Amount_yUSD。

image.png

image.png

image.png

6. 此时Cream根据错误的pricePerShare值来计算攻击合约1的yUSD的资产价格,合约1拥有10个亿的crYUSD和10个亿的yUSD,攻击者此时进行借贷,借出了远超于抵押物原资产价值的多种其他代币。最后攻击者将 Cream 的其他 15 个池子全部借空。

image.png

7. 攻击者归还合约1与合约2的闪电贷,并将价值1.3亿的代币转走。

攻击要点:

本次攻击是典型的利用闪电贷进行价格操控,由于 Cream 的借贷池在获取 yUSD 池子 share 价格时直接使用了 pricePerShare 接口,而此接口是通过合约的抵押物余额与策略池抵押资产数额相加除总 share 数来计算单个 share 的价格的。因此用户直接往 yUSD 转入抵押物就可以很容易的拉高单个 share 价格,最终使得 Cream 借贷池中抵押物可以借出更多的资金。

二、安全建议

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

image.png

SharkTeam提醒您,在涉足区块链项目时请提高警惕,选择更稳定、更安全,且经过完备多轮审计的公链和项目,切不可将您的资产置于风险之中,沦为黑客的提款机。而作为项目方,智能合约安全关系用户的财产安全,至关重要!区块链项目方应与专业的安全审计公司合作,进行多轮审计,避免合约中的状态和计算错误,为用户的数字资产安全和项目本身安全提供保障。

SharkTeam作为领先的区块链安全服务团队,为开发者提供智能合约审计服务。智能合约审计服务由人工审计和自动化审计构成,满足不同客户需求,独家实现覆盖高级语言层、虚拟机层、区块链层、业务逻辑层四个方面近两百项审计内容,全面保障智能合约安全。

image.png

和2万人一起加入鸵鸟社群

添加QQ群:645991580

添加TG群:鸵鸟中文社区 https://t.me/tuoniaox

声明: 鸵鸟区块链所有发布内容均为原创或授权发布,如需转载,请务必注明文章作者以及来源:鸵鸟区块链(微信公众号:MyTuoniao),任何不尊重原创的行为鸵鸟区块链都将进行责任追究!鸵鸟区块链报道和发布内容,不构成任何投资建议。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK