一、事件概览
北京时间2021年2月5日,舆情监测到,DeFi知名项目YearnFinance发生闪电贷攻击事件。?
简言之,本次攻击事件的具体手法为攻击者利用闪电贷借取巨额资金,而后进行循环套利。根据成都链安安全团队的响应和分析,本次攻击事件的合约为yValutCurvePool。
二、事件分析
1.攻击者在yVault合约中存入DAI,并调用earn触发yValut向流动性池使用DAI添加流动性,如下图所示:
成都链安:whaleswap.finance项目遭受攻击,至少损失5,946 个BUSD和5964个USDT:6月21日消息,据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,whaleswap.finance项目遭受攻击,成都链安技术团队分析发现原因可能是因为whaleswap.finance Pair合约的K值校验存在问题。每当用户在进行交换时,K值校验中传入的参数量级存在问题,造成K值校验失效。攻击者先通过闪电贷借一笔BSC-USD,之后归还闪电贷时K值校验参数量级为10000^4。而K值校验时采取的参数校验量级为10000^2,导致K校验失效。[2022/6/21 4:41:57]
△图1
成都链安:bDollar项目遭受价格操控攻击,目前攻击者获利2381BNB存放于攻击合约中:据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,bDollar项目遭受价格操控攻击。攻击者地址:0x9dadbd8c507c6acbf1c555ff270d8d6ea855178e
攻击交易eth:0x9b16b1b3bf587db1257c06bebd810b4ae364aab42510d0d2eb560c2565bbe7b4
攻击合约:0x6877f0d7815b0389396454c58b2118acd0abb79a
目前攻击者获利2381BNB,存放于攻击合约中。[2022/5/21 3:32:53]
上图红框显示,在进行铸币时,需要读取合约中的DAI余量,但因为策略合约中的DAI已经抵押至curve合约进行盈利,所以要计算DAI代币的量,只能通过价值换算,计算出所持有的Curve代币能够兑换的DAI的量。
成都链安:WienerDogeToken遭遇闪电贷攻击事件分析:据成都链安“链必应-区块链安全态势感知平台”安全舆情监控数据显示,WienerDogeToken遭受闪电贷攻击。成都链安安全团队对此事件进行了简要分析,分析结果如下:攻击者通过闪电贷借贷了2900个BNB,从WDOGE和BNB的交易对交换了5,974,259,851,654个WDOGE代币,然后将4,979,446,261,701个代币重新转入了交易对。这时攻击者再调用skim函数,将交易对中多余的WDOGE代币重新提取出来,由于代币的通缩性质,在交易对向攻击地址转账的过程中同时burn掉了199,177,850,468个代币。这时交易对的k值已经被破坏,攻击者利用剩下WDOGE代币将交易对内的2,978个BNB成功swap出来,并且将获利的78个BNB转到了获利地址。
这次攻击事件中,攻击者利用了代币的通缩性质,让交易对在skim的过程中burn掉了一部分交易对代币,破坏了k值的计算。成都链安安全团队建议项目上线前最好进行安全审计,通缩代币在与交易对的交互时尽量将交易对加入手续费例外。[2022/4/26 5:11:33]
2.攻击者利用借来的资金向流动性池使用USDT添加流动性,获得Curve代币,如下图所示:
△图2
这里值得注意的是,攻击者向池中注入的是单一的USDT,因为池子的特性,我们知道,当一种代币的含量上升,其相对价格也就下降。
3.攻击者取出yValut合约中存入的DAI,如下图所示:
△图3
根据#2可知,此时的池子中因为USDT的含量增加,所以DAI的相对价格是上升的,这也就导致攻击者所持有的Curve代币兑换出的DAI相对下降,池子中将会余留少量DAI。
4.攻击者指定与添加流动性时相等的USDT数量,进行流动性移除,注意这里因为#3时将一部分DAI取走,所以USDT的相对#2时价格下降,所以这里将余下一部分Curve代币。
△图4
不断进行上述循环,这使得攻击者消耗DAI进而获取Curve代币。
经过多次循环之后,攻击者套取了大量的Curve代币,而将DAI代币打入了Curve合约中。在整个攻击流程结束时,攻击者使用Curve代币,兑换出DAI/USDC。
这次兑换,因为不是USDT的兑换,即使此时的DAI相对攻击前含量较高,也会按照同等比例进行兑换,也就是攻击者打入Curve池子中多出的DAI代币,也会分发给攻击者。
这里,我们再来看攻击者在进行攻击时的第一步操作,如下图所示:
△图5
攻击者利用闪电贷向池子中添加了巨量的流动性,这就导致这些多出的DAI,最终将会大部分分给攻击者。
而除去这一部分损失,攻击者还获得了更多的Curve代币,从而获利。
三、安全建议
针对本次事件,成都链安安全团队认为,很大程度上源于项目方潜在的合约漏洞未得到全面的安全排查,进而导致闪电贷攻击事件的发生。
在此,成都链安需要提醒区块链各生态项目方,切不可因项目上线完成之后就掉以轻心,做好日常的安全排查和安全加固等工作,寻求第三方安全公司的力量,建立一整套的安全防护机制,防范于未然。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。