使用“扫一扫”即可将网页分享至朋友圈。
首发 | CertiK:Yearn.finance新项目Eminence攻击事件漏洞分析
北京时间9月29日,CertiK安全研究团队发现Yearn.finance的新项目Eminence.finance出现异常交易。有三笔共计价值约1.09亿人民币的资金,被从Eminence智能合约中转出,地址为:0x5ade7ae8660293f2ebfcefaba91d141d72d221e8。CertiK安全研究团队认为该事件是攻击者使用脚本程序,通过闪电贷flashloan借得初始资金,利用Eminence项目中的联合曲线(Bonding Curve)模型,反复购买出售EMN和eAAVE来获得收益。
技术细节分析
以下分析以:
https://etherscan.io/tx/0x3503253131644dd9f52802d071de74e456570374d586ddd640159cf6fb9b8ad8为例子,该笔交易流程图如下:
在该笔交易中,攻击者首先通过Uniswap中的闪电贷(Flash Loan)服务借得1500万个DAI, 然后全部购买EMN代币,共购得约1,383,650,487个EMN代币。
其中一半EMN,共约691,825,243个EMN代币, 通过OP0步骤用于购买eAAVE代币,共获得约572,431个eAAVE代币。
到当前为止,攻击者共持有1,383,650,487-691,825,243 = 691,825,244个EMN和572,431个eAAVE代币。
接下来攻击者的脚本继续执行了OP0, OP1, OP2, OP3, OP4共5个内部交易(Internal Transactions),该5个内部交易产生的影响如下表:
从OP4售出的DAI总数目为16,673,637,比攻击者通过闪电贷借得的DAI总数目1500万个要多出近170万。造成以上结果的原因是:在OP0使用EMN购买eAAVE的过程中,EminenceCurrency.sol 智能合约第231行中claim函数被调用,随后第233行的_burn函数将用于交易的691,825,243个EMN进行了燃烧:
然而在下图_burn函数的定义中我们可以看到,仅仅只有EMN代币的数目被燃烧掉,而其对应的DAI数目并没有改变。这就造成了一个问题:EMN和DAI的比率由于EMN数目的减少,造成了DAI相对价格的降低,因此采用同样数目的EMN去购买DAI,可以获得的DAI数目更多。
因此,当OP0完成后,EMN数目对DAI数目比率下降。攻击者通过OP1将剩余的一般EMN兑换成DAI,由于此时DAI相对价格低,因此购入的DAI数目相比正常情况多。
完成OP1后,攻击者将持有的eAAVE通过OP2,OP3兑换回EMN,然后兑换到DAI。最终,当进行OP4之前,攻击者持有的DAI数目会高于从Uniswap中借得的数目。
至此,攻击者通过漏洞完成一次获利。
攻击者在同一次交易中重复三次利用了该漏洞。每次到达OP4时,会将获利后总共的DAI再次利用,进行攻击行为。当完成全部三次后,攻击者偿还了Uniswap的借款,将该次交易获利发送至其地址:
0x223034edbe95823c1160c16f26e3000315171ca9
攻击者总计执行了3次交易,交易地址如下:
第一次:
0x3503253131644dd9f52802d071de74e456570374d586ddd640159cf6fb9b8ad8
第二次:
0x045b60411af18114f1986957a41296ba2a97ccff75a9b38af818800ea9da0b2a
第三次:
0x4f0f495dbcb58b452f268b9149a418524e43b13b55e780673c10b3b755340317
分析总结
该事件是一个典型的由于逻辑设计与实际智能合约代码实现不符而造成安全漏洞的案例。而且项目上线前,尚未经过安全审计。对于该种类型漏洞,传统的测试方法与测试工具均无法检查出该种逻辑漏洞。
因此,CertiK提出以下建议:
当前DeFi项目热潮持续不减,很多项目为了抓住热点与机遇,在未经严格测试和审计的情况下便匆忙上线。这些项目中,大部分的漏洞是无法通过常见的测试方法和工具来发现的。只有寻找专业的审计专家进行严谨的数学模型证明,才可以发现该漏洞。
安全审计现在已经是高质量DeFi项目的标配。若项目没有被审计,对于用户来说,投资行为则要格外慎重;对于项目方来说,则需要找专业并且声誉好的审计公司进行审计。若项目被审计过,则需尽量了解审计公司背景以及其审计报告中的各项指标,其中包括但不限于:
安全审计的范围,方法,及结论
合约是否有漏洞或者安全隐患?如果有,需要了解这些问题的严重程度及可能影响
合约整体的代码质量
审计公司的专业性和独立性
“广东财经网”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与
我们联系删除或处理,客服邮箱1098101642@qq.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同
其观点或证实其内容的真实性。
- 声音提醒
- 60秒后自动更新
【民政部回应何时恢复婚姻登记】民政部社会事务司二级巡视员杨宗涛表示,婚姻登记场所是人群聚集场所,部分地区暂停婚姻登记工作是对人民群众安全负责。未停止登记的地方推广用电话、网络、qq群预约登记,控制登记人数,分批分段登记,减少人员聚集和在登记机关停留时间。已停止婚姻登记地方将根据当地疫情控制情况逐渐恢复。
15:54欧洲央行副行长金多斯:欧洲央行还没有达到逆转利率。宽松政策的副作用更明显了。
15:54财经网站Forexlive分析师Justin Low评瑞士1月CPI月率:尽管通胀年率保持稳定,但核心通胀率有所下降,这一点令人更加担忧。这只是进一步巩固了瑞士央行维持现有货币政策不变,并可能在未来寻求更多宽松措施的观点。
15:54【武汉两大批发市场商户开业率超过80%】商务部市场建设司司长朱小良10日称,目前武汉生活必需品供应基本正常,除冷鲜肉、鲜叶菜等少数品种存在结构性短缺外,大部分重要生活物资供应充足,未发生明显抢购或脱销断档情况。当地白沙洲和四季美两大批发市场正常营业,商户开业率超过80%,日交易量上升至3000吨以上。(国是直通车)
15:53【日本2019年经常项目顺差增长4.4%】日本财务省10日发布的国际收支初步统计报告显示,主要受外国人入境游消费扩大影响,2019年日本经常项目顺差增长4.4%。报告显示,2019年日本经常项目顺差为20.06万亿日元(1美元约合109.8日元)。其中,商品贸易方面,由于液化天然气价格下跌等因素,进口下降5.6%至75.56万亿日元;由于汽车部件及钢铁等产品出口减少,出口下降6.3%至76.12万亿日元。货物贸易顺差减少53.8%,为5536亿日元。(新华社)
15:53欧元兑美元EUR/USD短线波动不大,现报1.0952。
15:53瑞士1月CPI年率:0.2%,前值:0.2%,预期:0.1%;瑞士1月CPI月率:-0.2%,前值:0%,预期:-0.2%。
15:52英镑兑美元GBP/USD短线走低13点,现报1.2890。
15:52【宁德时代“供电”国产特斯拉 有望拉低售价20%】全国乘联会秘书长崔东树分析认为,“随着特斯拉国产化率提升和产能爬坡,未来特斯拉国产车型的价格下探空间还是很大的。”他预计今年下半年,国产Model 3车型的售价就有望降至25万元,降幅接近20%。(新京报)
15:51【内蒙古:对不裁员或少裁员企业返还上年度50%失业保险费】据内蒙古新型冠状病毒肺炎疫情防控工作指挥部消息,疫情期间,内蒙古对不裁员或少裁员的企业返还上年度实际缴纳失业保险费的50%,对面临暂时性经营困难的中小企业,返还标准提高到上年度6个月企业及其职工缴纳社会保险费的50%。
15:51【商务部:2019年服务进出口总额54152.9亿元 同比增长2.8%】商务部新闻发言人表示,2019年,在服务贸易创新发展试点等政策的激励下,我国服务贸易总体保持平稳向上态势,逆差明显下降,结构显著优化,高质量发展成效初步显现。全年服务进出口总额54152.9亿元(人民币,下同),同比增长2.8%。其中,出口总额19564.0亿元,同比增长8.9%;进口总额34588.9亿元,同比减少0.4%。(第一财经)
15:51【振华股份:疫情导致下游客户开工推迟 产品库存上升】振华化学公告,公司目前生产经营稳定,所有产能均正常开工,原材料采购能基本满足生产需要,由于疫情导致下游客户开工推迟,公司出货量减少,产品库存有所上升。公司将根据客户需求、疫情及市场变化,适度调整生产经营策略,尽可能保持生产经营的稳定。
15:50环旭电子2月10日晚间公告,公司2020年1月合并营业收入为23.27亿元,较去年同期的合并营业收入减少27.83%,较2019年12月合并营业收入环比减少37.23%。
15:49精测电子:与京东方集团签订了多份销售合同,合同累计金额达到6.96亿元。
17:12华夏银行:银保监会同意本公司在全国银行间债券市场发行不超过100亿元人民币的金融债券,募集资金全部用于绿色信贷。
17:03