「不听劝」导致超200万美元损失,简析Zunami Protocol被攻击原理

23-08-15 11:25
阅读本文需 9 分钟
总结 AI 总结
看总结 收起
原文标题:《「任性」的代价?Zunami Protocol 因价格操纵被攻击,损失超过 210 万美元》
原文来源:Beosin


2023 年 8 月 14 日,Beosin EagleEye 安全风险监控、预警与阻断平台监测显示,以太坊链上 Zunami Protocol 协议遭遇价格操纵攻击,损失 1152 个 ETH,价值 210 万美元。


据了解,Zunami Protocol 是一个为用户分配稳定币的平台,可以理解为去中心化收入聚合器,为稳定币持有者创造更有益的解决方案。


关于本次事件有一个小插曲,此前已有安全公司善意提醒其出现漏洞,但项目方却没有重视,「任性」不管,结果本次事件发生后,已为时已晚。



Beosin 安全团队第一时间对事件进行了分析,结果如下:


事件相关信息


●攻击交易 Tx1:0x2aec4fdb2a09ad4269a410f2c770737626fb62c54e0fa8ac25e8582d4b690ccaTx2:0x0788ba222970c7c68a738b0e08fb197e669e61f9b226ceec4cab9b85abe8cceb


●攻击者地址 0x5f4c21c9bb73c8b4a296cc256c0cde324db146df


●攻击合约 0xa21a2b59d80dc42d332f778cbb9ea127100e5d75


●被攻击合约 0xe47f1cd2a37c6fe69e3501ae45eca263c5a87b2b


漏洞分析


本次攻击原因是漏洞合约中 LP 价格计算依赖了合约自身的 CRV 余额,和 CRV 在 wETH/CRV 池中的兑换比例。攻击者通过向合约中转入 CRV 并操控 wETH/CRV 池子的兑换比例,从而操控了 LP 价格。


攻击流程


我们以 0x2aec4...... 交易为例:


攻击准备:


1. 黑客首先通过 balancer:Vault 闪电贷借出 6811 枚 ETH 作为攻击资金。 



2. 使用闪电贷的 300ETH 兑换出 84 zETH,为后续 zETH 增值做准备 



攻击阶段:


1. 使用 11 ETH 兑换 35293 CRV 转入 sEthFraxEthCurveConvex 合约,攻击者操纵 sEthFraxEthCurveConvex 合约中的 CRV 余额,为了后续攻击操控提前做好准备。


 


2. 然后使用 406 个 ETH 在 wETH/CRV 池子中多次重复兑换 CRV,从而 CRV 被拉高了大约 10 倍价格。



 3. 由于 zETH(LP)的价值计算由 CRV 代币的价格和依赖 sEthFraxEthCurveConvex 合约中 CRV 与 ETH 计算的估价 2 个因素共同决定。


4. 攻击者通过上面的步骤操纵了 CRV 的价格和漏洞合约的 CRV 余额,导致最终_assetPriceCached 变大。






5. 由于计算 zETH(LP)的 balanceOf 中使用的_assetPriceCached 变大,使得 84zETH 增值到 221 zETH。 





6. 使用第 4 步兑换出来的 CRV 再兑回 ETH,用来归还闪电贷。 



7. 将增值后的 221 zETH(LP)兑换成 389 ETH。 



 


8. 归还 6811 ETH 闪电贷及其他费用,最终获利 26ETH。



资金追踪


截止发文时,Beosin 安全分析团队发现被盗资金已全部转入 Tornado cash。



总结


针对本次事件,Beosin 安全团队建议:


1. 相关类似的项目方应该在计算 Lp 价值时,考虑不同代币池依赖关系。


2. 项目上线前,建议选择专业的安全审计公司进行全面的安全审计,规避安全风险。


原文链接


欢迎加入律动 BlockBeats 官方社群:

Telegram 订阅群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方账号:https://twitter.com/BlockBeatsAsia

本平台现已全面集成Farcaster协议, 如果您已有Farcaster账户, 可以登录 后发表评论
选择文库
新增文库
取消
完成
新增文库
仅自己可见
公开
保存
纠错/举报
提交