简析 Alpha Finance & Cream 被攻击事件_ORC:USD ZEE

据慢雾区消息,2021年2月13日,以太坊DeFiAlphaFinance遭受攻击,慢雾安全团队第一时间跟进分析,并以简讯的形式分享给大家,供大家研究。

1.攻击者用一部分的WETH在UniswapWETH-UNI池子上添加流动性,再把一部分的WETH兑换成sUSD并在Cream中添加流动性获得cySUSD凭证。

2.攻击者通过AlphaHomoraV2从IronBank借出sUSD,并将LP抵押到WERC20中为后面开杠杆做准备。

Beosin:UVT项目被黑客攻击事件简析,被盗资金已全部转入Tornado Cash:金色财经报道,据Beosin EagleEye 安全预警与监控平台检测显示,UVT项目被黑客攻击,涉及金额为150万美元。攻击交易为0x54121ed538f27ffee2dbb232f9d9be33e39fdaf34adf993e5e019c00f6afd499

经Beosin安全团队分析,发现攻击者首先利用开发者部署的另一个合约的具有Controller权限的0xc81daf6e方法,该方法会调用被攻击合约的0x7e39d2f8方法,因为合约具有Controller权限,所以通过验证直接转走了被攻击合约的所有UVT代币,Beosin安全团队通过Beosin Trace进行追踪,发现被盗资金已全部转入Tornado Cash。[2022/10/27 11:48:46]

3.攻击者再通过AlphaHomoraV2将上一步借出的sUSD归还给IronBank。

慢雾:DEUS Finance 二次被黑简析:据慢雾区情报,DEUS Finance DAO在4月28日遭受闪电贷攻击,慢雾安全团队以简讯的形式将攻击原理分享如下:

1.攻击者在攻击之前先往DeiLenderSolidex抵押了SolidexsAMM-USDC/DEI的LP。

2.在几个小时后攻击者先从多个池子闪电贷借出143200000USDC。

3.随后攻击者使用借来的USDC在BaseV1Pair进行了swap操作,兑换出了9547716.9个的DEI,由于DeiLenderSolidex中的getOnChainPrice函数是直接获取DEI-USDC交易对的代币余额进行LP价格计算。因此在此次Swap操作中将拉高getOnChainPrice函数获取的LP价格。

4.在进行Swap操作后,攻击者在DeiLenderSolidex合约中通过borrow函数进行借贷,由于borrow函数中用isSolvent进行借贷检查,而在isSolvent是使用了getOnChainPrice函数参与检查。但在步骤3中getOnChainPrice的结果已经被拉高了。导致攻击者超额借出更多的DEI。

5.最后着攻击者在把用借贷出来DEI兑换成USDC归还从几个池子借出来的USDC,获利离场。

针对该事件,慢雾安全团队给出以下防范建议:本次攻击的原因主要在于使用了不安全的预言机来计算LP价格,慢雾安全团队建议可以参考Alpha Finance关于获取公平LP价格的方法。[2022/4/28 2:37:18]

4.上面几步似乎只是试探。

Force DAO 代币增发漏洞简析:据慢雾区消息,DeFi 量化对冲基金 Force DAO 项目的 FORCE 代币被大量增发。经慢雾安全团队分析发现: 在用户进行 deposit 操纵时,Force DAO 会为用户铸造 xFORCE 代币,并通过 FORCE 代币合约的 transferFrom 函数将 FORCE 代币转入 ForceProfitSharing 合约中。但 FORCE 代币合约的 transferFrom 函数使用了 if-else 逻辑来检查用户的授权额度,当用户的授权额度不足时 transferFrom 函数返回 false,而 ForceProfitSharing 合约并未对其返回值进行检查。导致了 deposit 的逻辑正常执行,xFORCE 代币被顺利铸造给用户,但由于 transferFrom 函数执行失败 FORCE 代币并未被真正充值进 ForceProfitSharing 合约中。最终造成 FORCE 代币被非预期的大量铸造的问题。 此漏洞发生的主要原因在于 FORCE 代币的 transferFrom 函数使用了`假充值`写法,但外部合约在对其进行调用时并未严格的判断其返回值,最终导致这一惨剧的发生。慢雾安全团队建议在对接此类写法的代币时使用 require 对其返回值进行检查,以避免此问题的发生。[2021/4/4 19:45:30]

5.随后攻击者开始利用AlphaHomoraV2的杠杆借贷从IronBank中循环借出sUSD,每次借出数量都是上一次的一倍,最后将借出的sUSD再转到Cream中添加流动性获得cySUSD凭证。

6.之后攻击者不满足于这种低效的杠杆循环借贷叠cySUSD的方式,开始使用闪电贷加快速度。

7.攻击者开始从AAVE中闪电贷借出180万USDC,并通过Curve将USDC兑换成sUSD,这时候攻击者就拿到了大量的sUSD了。

8.随后攻击者先用sUSD到Cream中添加流动性,并获得cySUSD凭证,再开始继续使用AlphaHomoraV2的杠杆借贷从IronBank中循环翻倍的借出sUSD,最后利用借出的sUSD去归还闪电贷。(偿还的闪电贷中有包含先前几步的一部分sUSD作为利息,因为最后一步借出的不足以还贷,但都是拿从Alpha借的去还的)?

9.重复上一步,闪电贷借出1000万USDC,换成sUSD,先添加在Cream中,添加9,668,335的流动性拿到cySUSD,再继续杠杆借贷,最后翻倍到10,088,930应该基本把池子借空了。然后开始重复添加流动性,获取cySUSD。最后再去归还闪电贷。

10.再闪电贷借出1000万,再重复添加流动性与借贷,获取cySUSD并归还闪电贷。

11.由于经过以上步骤攻击者已获得大量cySUSD,因此攻击者开始直接在Cream借出WETH、USDC、USDT、DAI、sUSD。

总结:攻击者使用闪电贷到AlphaFinance中进行杠杆借贷,并使用AlphaFinance本身的CreamIronBank额度来归还闪电贷,在这个过程中攻击者通过在Cream添加流动性获得了大量的cySUSD,使攻击者得以用这些cySUSD在CreamFinance中进行进一步的借贷。由于AlphaFinance的问题,导致了两个协议同时遭受了损失。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-6:494ms