Yearn Finance攻击事件分析-ODAILY_SDC:Cryptokki

概述

2023年4月13日,YearnFinance遭到黑客攻击,导致大约损失1000万美元。本文将分析攻击过程以及漏洞产生的原因。

攻击分析

这是一笔攻击交易:

https://etherscan.io/tx/0xd55e43c1602b28d4fd4667ee445d570c8f298f5401cf04e62ec329759ecda95d

攻击者从Balancer发起了闪电贷,借了500万DAI、500万USDC和200万USDT:

然后在Curve上,攻击者将500万DAI兑换成了695,000USDT,并将350万USDC兑换成151USDT:

攻击者调用IEarnAPRWithPool的recommend函数来检查当前的APR。此时,只有Aave的APR不等于0:

加拿大丰业银行:美联储会议纪要或进一步着眼于政策沟通:美国联邦公开市场委员会(FOMC)委员们可能会讨论在经济增长、就业和通胀相对乐观预期实现的情况下,其政策利率长期持稳观点将如何改变。鲍威尔曾在发布会上表示,利率决议需要看到的是实际数据,而不仅仅是预测。因此,尽管仍存疑,但若会议纪要中出现美联储对收紧政策预期的表述,将是值得注意的。[2021/4/7 19:54:48]

接下来,攻击者将800,000USDT转移到了攻击合约0x9fcc1409b56cf235d9cdbbb86b6ad5089fa0eb0f中。在该合约中,攻击者多次调用了Aave:LendingPoolV1的repay函数,帮助其他人偿还债务,以使Aave的APR等于0:

攻击者调用了yUSDT的deposit函数,抵押了900,000USDT,并获得了820,000yUSDT:

接下来,攻击者调用了bZxiUSDC的mint函数,使用156,000USDC铸造了152,000bZxiUSDC,并将其转移到了YearnyUSDT:

声音 | 肖磊:DC/EP应着眼长远 不应限制数字货币本身的国际属性:资深金融分析师肖磊今日发表公众号文章称,如果没有国际市场作为支持,没有区块链最具战略性应用的数字货币的支撑,中国在区块链领域建立全球性影响力恐怕难度较大。所以,官方数字货币,虽然基于国内市场,但一定得需要着眼于长远,不能因为存在某些金融方面的性担忧,就限制数字货币本身的国际属性。希望中国的数字货币早日推出,因为这不亚于纸币的诞生或中央银行的发明。[2019/11/22]

攻击者调用Yearn:yUSDT的withdraw函数,将820,000yUSDT兑换成1,030,000USDT。此时,合约中只剩下攻击者转移的bZxiUSDC:

接下来攻击者调用Yearn:yUSDT的rebalance函数,销毁bZxiUSDC:

然后攻击者向yUSDT合约转移了1/e6个USDT,并调用了deposit函数,抵押了10,000USDT,获得了1,252,660,242,850,000yUSDT:

动态 | 制药巨头默克着眼于利用区块链打击假冒药品:据coindesk报道,制药巨头默克(Merck)公司正寻求利用区块链在供应链追踪货物的专利。该专利于2016年12月提交,上周四发布,主要目的是是防伪。该专利概述了区块链可用于存储有关物理对象(在此情况下为单一产品)信息的方法,并在从原点开始向前移动时接收更新,这个分布式网络可以用来存储验证物品真实性的信息。默克已经制定了消除假货的内部流程,拟议的专利将促进更广泛的努力。[2018/6/26]

然后在Curve上,攻击者将70,000yUSDT兑换成5,990,000yDAI,将4亿yUSDT兑换成4,490,000yUSDC,将1,240,133,244,352,200yUSDT兑换成1,360,000yTUSD:

然后在yearn:yDAI和yearn:yUSDC中分别调用withdraw,提取678万个DAI和562w万个USDC,并归还闪电贷:

金色财经现场报道 德勤高级经理:美国正度着眼于能够实现现代化的技术例如区块链:金色财经现场报道,今日2018 Coindesk共识会议正式在纽约开幕。在有关政府如何使用加密技术的圆桌讨论环节,德勤高级经理Wendy Henry表示,美国正着眼于能够实现现代化的技术。这些技术例如区块链技术,实际上可以作为连接的组织,人们必须弄清关于如何使用区块链技术。伊利诺州区块链业务联络的Jennifer O’RourkeLinux表示,区块链技术并非将房子烧毁一样的革命,而是提供政府目前已经提供了的服务的更好版本。疾病控制和预防中心的Tom Savel认为,区块链可以帮助疾病监测。作为一项企业服务,该技术可以帮助追踪携带特定疾病的人群和人口统计数据,并且区块链在药物分销方面也很有效。Deloitte Consulting的Wendy Henry认为,公用事业硬币将促进生态系统的经济发展。各国政府内部的改革将会发生。Inux基金会的Jamie E Smith表示,政府需要先了解什么是区块链,然后最终要围绕这项技术改革,并且政府终将参与比特币的加密货币挖掘的工作当中去。[2018/5/14]

漏洞分析

这次攻击中最关键的一点,是攻击者使用100,000USDT铸造了1,252,660,242,850,000个yUSDT。查看deposit函数的实现:

索尼着眼于将数字版权数据放在区块链上:据coindesk消息,美国专利和商标局周四公布的一份专利申请显示,日本科技巨头索尼正在考虑使用区块链来存储数字版权数据。索尼方面表示,目前的数字版权管理(DRM)解决方案旨在实现互操作性,可能不太可靠。根据提交的文件,区块链可以存储所需的识别信息,以确保用户可以看到他们购买的产品。索尼也认为,基于区块链的系统可以管理各种类型的内容和数据,如电影、电视、视频、音乐、音频、游戏、科学数据、医疗数据等。[2018/4/27]

可以看到share的数量和变量pool相关,pool越小,share越大,而pool的值由_calcPoolValueInToken获得:

攻击者在调用rebalance函数后,合约中只存在了USDC,但是_balance()获取的是USDT的余额,USDC的余额并不计入其中,因此此时的pool为1:

这里显然是项目方的配置错误,yUSDT合约中应当都是USDT类的代币,但是其fulcrum变量却是USDC相关的bZxIUSDC代币,因此yUSDT中的USDC不计入balance中:

攻击者为什么能调用rebalance函数来burn掉bZxiUSDC代币呢?查看rebalance函数的实现:

可以看到在_withdrawFulcrum()中会存在redeem和burn操作,因此我们需要让"newProvider!=provider"成立,其中recommend()的实现:

攻击者通过控制IIEarnManager(apr).recommend(token)的返回值,使其为都为0来操控newProvider:

如何让其都为0呢,该函数的返回值和计算出的各个DeFi中的APR相关,由于Compound,bZx,dydx中没有池子,因此只需要控制Aave(Aave:LendingPoolCoreV1)即可:

要使其值返回为0,需要让apr.calculateInterestRates函数的第一个返回值为0:

即让currentLiquidityRate为0,该值和_totalBorrowsStable、_totalBorrowsVariable相关,当这两个个值都为0时,currentLiquidityRate为0:

_totalBorrowsVariable为0,即Aave:LendingPoolCoreV1此时没有人存在债务,为了达成这个条件,攻击者将池中所有人的债务进行了repay:

最后,攻击者让_totalBorrowsVariable变为0,所以它能够调用rebalance函数burn掉bZxiUSDC代币:

总结

此次Yearn攻击事件的根本原因是项目方的配置错误。攻击者通过一系列精妙的手法利用了该漏洞,最终获利大约1000万美元。

关于我们

AtEoceneResearch,weprovidetheinsightsofintentionsandsecuritybehindeverythingyouknowordon'tknowofblockchain,andempowereveryindividualandorganizationtoanswercomplexquestionswehadn'tevendreamedofbackthen.

了解更多:Website|Medium|Twitter

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

金智博客

聚币SignalPlus每日点评(20230419)-ODAILY_IGN:LUS

各位朋友,欢迎来到SignalPlus每日晨报。SignalPlus晨报每天为各位更新宏观市场信息,并分享我们对宏观趋势的观察和看法。欢迎追踪订阅,与我们一起关注最新的市场动态.

[0:15ms0-5:76ms