By:小白@慢雾安全团队
2022 年 3 月 21 日,据慢雾区消息,OneRing Finance 存在严重漏洞遭到攻击,黑客获利约 1,454,672.244369 USDC(约 146 万美元),慢雾安全团队第一时间介入分析,并将结果分享如下:
相关信息
OneRing Finance 是一个去中心化应用程序(DApp),它支持加密货币的质押挖矿。用户可以存入代币来获取收益。
以下是本次攻击涉及的相关地址:
攻击者地址:
0x12efed3512ea7b76f79bcde4a387216c7bce905e
攻击交易:https://ftmscan.com/tx/0xca8dd33850e29cf138c8382e17a19e77d7331b57c7a8451648788bbb26a70145
攻击合约:
0x6a6d593ed7458b8213fa71f1adc4a9e5fd0b5a58
稳定币收益优化器OneRing发布补偿计划,将补偿200万枚RING:3月24日消息,官方消息,Fantom生态稳定币收益优化器OneRing发布补偿计划,在遭遇闪电贷攻击后,OneRing从TVL中收回2,216,146美元,占漏洞利用前TVL的51.80%,将立即用于偿还。此外,200万枚RING作为被盗资金的赔偿(150万枚原为团队代币,50万枚来自储备金和生态系统钱包),分12 个月线性归属。
此前消息,OneRing:遭到闪电贷攻击,黑客窃取逾145万美元。[2022/3/24 14:14:58]
被攻击合约:
OneRingVault:0xc06826f52f29b34c5d8b2c61abf844cebcf78abf
攻击核心点
OneRing 直接使用了 Pair 中的 reserves 参与 OShare 的价格计算,攻击者利用 OneRingVault 正常的业务逻辑进行巨额的 Swap 操作产生的大滑点,使得 Pair 中的 reserves 非预期的增加,从而拉高了 OShare 的价格,导致相同数量的 OShare 可以取出更多的资金。
Converter.Finance与去中心化交易所RPone达成战略合作:火币生态链杠杆聚合收益平台Converter.Finance宣布,与即将上线Heco的去中心化交易所RPone达成战略合作,RPone将于上线后第一时间支持CON的流动性挖矿,Converter.Finance也将第一时间支持RPone平台的LP挖矿。Converter与RPone亦将就代币生态、市场拓展、社区建设等方面开展深度合作,共同繁荣HECO生态。
据悉,RPone将于4月20日正式上线Heco并开启挖矿,作为新一代swap,RPone具有高性能、高收益、低滑点、低费用及双挖、回购等特点,且开启前7天挖矿奖励翻倍。
Converter.Finance于3月16日正式上线,是Heco上一款融合了Harvest和Alpha杠杆收益聚合器协议。用户只需将资产存入,Converter.Finance会自动寻找最高收益的链上协议进行投资,帮助用户优化理财收益率,并会在风险较低的情况下,为用户投资增加杠杆最大化理财收益。[2021/4/20 20:39:32]
具体细节分析
Monex集团CEO:CBDC将大大增强加密货币互操作性活跃加密市场:11月25日,日本Monex集团(Coincheck母公司)首席执行官Oki Matsumoto表示对日本央行研究发行央行数字货币(CBDC)的计划表示欢迎,并称该举措将帮助日本迈向更高效,数字化的经济。他称,CBDC将大大增强加密货币的互操作性,将使加密货币市场更加活跃。央行数字货币将通过提供一个更便捷的平台,以将加密货币转换为法定货币来帮助促进加密货币交易。(路透社)[2020/11/25 22:04:29]
1. 攻击者构造了攻击合约,利用闪电贷从 Solidity 借出 80000000 个 USDC 到攻击合约中
2. 接着通过 swap 函数将 1 个 USDC 兑换成 miMatic 代币,这里可以看到当前代币兑换率是 1:1.001109876698508218
BigONE将于3月27日开通FLT/ETH交易对:据官方消息,BigONE将在3月27日(UTC+8)开通FLT/ETH交易对,目前FLT充值功能已开启。为庆祝FLT上线,将开启FLT充值及交易大赛活动。据Flit介绍,项目通过强效的加密技术保证金融交易的安全,为金钱的使用带来了更多的自由。
BigONE,是一家诚信、安全、专业、共赢的全球区块链数字资产托管及交易平台。[2020/3/26]
3. 调用 depositSafe 函数将 79,999,997($80,079,997.00)个 USDC 充值进合约
声音 | Block.one创始人:比特币将成为世界上最大的价值储备:据newsbtc报道,Block.one创始人兼首席执行官Brendon Blumer在推特回复网友称,他也喜欢比特币,但这不会让比特币变得快速或便宜。比特币拥有成功所需的一切,Blumer认为它将成为世界上最大的价值储备,EOS不是为了与比特币竞争而设计的,而是针对不同的用例进行了优化。Blumer还概述了一个可以解决比特币可扩展性问题的项目,并且从长远来看也有利于EOS。这个想法显然表明将比特币作为资产添加到EOS智能合约中。[2019/4/9]
这里 depositSafe 函数会内部调用 _deposit 函数,_deposit 函数会调用 _doHardWorkAll 函数,在该函数中会使用 for 循环将部分存入的 USDC 全部兑换成其他的代币
然后 depositSafe 将约 41,965,509.691846094312718922 个 OShare 代币 mint 给攻击者。此时我们可以看到 OShare 的价格是 1062758591235248117 这个值
从下面这张图中可以看出在 swap 后攻击者使用两个 USDC 再次兑换 miMATIC 代币时此时的兑换率已经产生巨大变化:
4. 然后调用 withdraw 函数。我们可以看到 withdraw 函数也调用了getSharePrice 函数进行 OShare 的价格计算
我们来看 getSharePrice 函数:
这里调用了 balanceWithInvested 函数,继续跟进发现调用了 investedBalanceInUSD 函数:
这里可以看到最终影响价格的是 getUSDBalanceFromUnderlyingBalance 函数
在 getUSDBalanceFromUnderlyingBalance 函数中我们可以看到,该函数使用合约中两个代币的数量? _reserves0 和 _reserves1 这两个值进行计算,由于之前的 swap 导致大量的 USDC 留在池子中,所以导致池子中的 USDC 数量变大,从而使 _amount 变大,这就导致了 getSharePrice 函数获取到的当前 OShare 的价格变大了
由下图我们可以看到当前的 OShare 的价格为 1136563707735425848 这个值:
从下面的 withdraw 函数中可以看出最终的提现数量是通过 _withdraw 进行计算得出的
跟进去后发现 _toWithdraw 也是由 balanceWithInvested 计算得出的,这也就导致这个值变大
然后会在这一步将攻击者持有的 41965509 个 OShare 兑换为 81534750101089 个 USDC
5. 攻击者归还闪电贷后获利离场
MistTrack
据慢雾 MistTrack 分析,攻击者将获利的部分 USDC 换成 FTM、ETH,最后将 USDC、ETH 跨链到以太坊。同时,以太坊上黑客地址初始资金来自于 Tornado.Cash 转入的 0.1 ETH,接着黑客将 521 ETH 转入 Tornado.Cash。
截止目前,黑客以太坊地址仍有近 4.5 万美元,包括 14.86 ETH 和 100.29 USDC。慢雾 MistTrack 将持续监控黑客地址。
总结
本次攻击是由于在 MasterChefBaseStrategy 合约中的 getUSDBalanceFromUnderlyingBalance 函数实时储备量进行计算导致攻击者可以利用闪电贷制造巨大差值从而获利。慢雾安全团队建议在进行 share 的价格计算时不要使用实时储备量进行计算,避免再次出现此类事故。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。