2023年4月13日,据Beosin-EagleEye态势感知平台消息,YearnFinance的yusdt合约遭受黑客闪电贷攻击,黑客获利超1000万美元。
https://eagleeye.beosin.com/RiskTrxDetail/0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d
关于本次事件,Beosin安全团队在白天已将简析以快讯的形式分享给大家,现在我们再将长文分享如下:
事件相关信息
攻击交易
0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d
美老牌杂志《新共和》将扎克伯格评为“2021年度恶人”:金色财经报道,美国老牌杂志《新共和》(The New Republic)将Meta首席执行官马克·扎克伯格评为“2021年度恶人”,他们认为Meta是一个“将人变成嗜血份子”的机器,持续向用户推送奇怪的广告,狠讽正常人都不会对Meta元宇宙构想感兴趣。对于Meta试图以元宇宙概念重振品牌形象,特斯拉CEO马斯克也曾坦言,他觉得这个想法目前看来只是个行销流行语。(环球网)[2021/12/26 8:05:12]
0x8db0ef33024c47200d47d8e97b0fcfc4b51de1820dfb4e911f0e3fb0a4053138
0xee6ac7e16ec8cb0a70e6bae058597b11ec2c764601b4cb024dec28d766fe88b2
攻击者地址
0x5bac20beef31d0eccb369a33514831ed8e9cdfe0
美国老牌超市Kroger发言人:Kroger节假日将接受比特币的新闻稿为不实消息:美国老牌超市Kroger发言人:表示Kroger节假日将接受比特币的新闻稿为不实消息。(金十)[2021/11/5 21:28:47]
0x16Af29b7eFbf019ef30aae9023A5140c012374A5
攻击合约
0x8102ae88c617deb2a5471cac90418da4ccd0579e
攻击流程
下面以
0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d为例进行分析。
1.攻击者首先通过闪电贷借出了500万Maker:DaiStablecoin、500万USD以及200万Tether:USDTStablecoin作为攻击本金。
声音 | 链塔智库:老牌BBS社区与区块链创业公司展开了激烈竞争:据链塔智库,老牌BBS社区与区块链创业公司展开了激烈竞争。区块链社区网络平台的激励机制构建还不够完善,滋生了大量工作室控制批量账号恶意刷赞赚取奖励的现象,给社区平台生态构建造成极大影响。区块链社交平台的最大优势在于独特运营机制所保证的高质量内容生产,因此,如何优化激励机制,保证内容质量就成了社交平台今后发展的关键。[2018/8/27]
2.攻击者调用aave池子合约的repay函数偿还其他人的欠款,这一步是为了将aave池子抵押收益降低,从而降低yearn:yUSDTToken合约中aave池子的优先级。
老牌耳机生产商Monster正在开发新数字货币:据CryptoDaily消息,Beats耳机前生产商Monster称目前正在开发新数字货币Monster Money Token,并计划通过销售它筹集3亿美元,另外将建立以区块链技术为基础的全球电子商务运营系统与亚马逊竞争。美国证券交易委员会数据显示,Monster持续亏损,2017年净亏损2670万美元,2018年第一季度亏损1960万美元。CryptoDaily文章评论称Monster可能是想借此使公司重获生机。[2018/5/31]
3.接着攻击者调用yearn:yUSDTToken合约的deposit函数质押了90万Tether:USDTStablecoin,该函数会根据质押量为调用者铸相关数量的yUSDT,计算方式与池子中各种代币余额有关,如下图,此时为攻击者铸了82万的yUSDT。
老牌矿池F2Pool鱼池宣布挖BTC手续费全免:昨日,老牌矿池F2Pool鱼池发布公告称挖BTC手续费全免,并且为pps+收益分配,目前此为全网最高的分配模式。[2018/2/24]
4.此时,合约中有90万Tether:USDTStablecoin与13万Aave:aUSDTTokenV1
5.接下来攻击者使用15万USD兑换了15万的bZxUSDCiToken,并将其发送给了yearn:yUSDTToken合约,此时,合约中有118万的资金,攻击者拥有90/103的份额,也就是能提取103万资金。
6.随后,攻击者调用yearn:yUSDTToken合约的withdraw函数提取质押资金,此时合约中仅有攻击者之前质押的90万Tether:USDTStablecoin、初始的13万Aave:aUSDTTokenV1以及攻击者转入的15万bZxUSDCiToken,而如果一个池子中代币不足的话,会按顺序提取后续池子的代币,此时攻击者将90万Tether:USDTStablecoin以及13万Aave:aUSDTTokenV1全部提取出来,经过本次操作,合约中仅有15万bZxUSDCiToken。
7.随后,攻击者调用yearn:yUSDTToken合约的rebalance函数,该函数会将当前池子的代币提取出来,并质押到另一个收益更高的池子中,由于第2步操作,合约会将USDT和USDC提取出来,添加到收益更高的池子中,但当前合约仅有bZxUSDCiToken,也只能提取出USDC,提取出来后将复投到其他USDT池子,此时复投将跳过。
8.攻击者向池子中转入1单位的Tether:USDTStablecoin,并再次调用yearn:yUSDTToken合约的deposit函数质押了1万Tether:USDTStablecoin,由于第7步的操作,合约已经将所有池子中的资金全部取出来了,并且没办法添加到新池子中,导致pool这个变量计算出来就是攻击者向其中打入的1,而作为除数的pool,将计算出一个巨大的值,向攻击者铸了1.25*10^15枚yUSDT。
9.最后,攻击者利用yUSDT将其他稳定币全部兑换出来并归还闪电贷。
漏洞分析
本次攻击主要利用了yUSDTToken合约配置错误,在进行rebalance重新选择池子的时候,仅使用了USDT作为添加数量,而USDC无法添加池子,从而导致了攻击者使用USDC将该合约所有USDT“消耗掉”后,池子余额变为了0,从而铸了大量的代币。
资金追踪
截止发文时,BeosinKYT反分析平台发现被盗资金1150万美元部分已经转移到Tornadocash,其余还存储在攻击者地址。
总结
针对本次事件,Beosin安全团队建议:初始化配置时进行严格检查。同时项目上线前建议选择专业的安全审计公司进行全面的安全审计,规避安全风险。
原文:《被盗超1000万美元,YearnFinance如何被黑客“盯上”?》
来源:panewslab
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。