首发 | 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代币。

Argent X钱包更新,用户需创建新钱包并转移旧钱包代币:6月18日消息,StarkNet发布Argent X钱包近期更新(v4.0.0 - v4.1.3)提醒 。由于StarkNet主网v0.9.0更新引用费用机制,代理合约与合约部署方式发生变化,因此Argent X需要相应更新。用户需要创建新钱包,旧钱包中的代币需要转移到新钱包中,转账时间从6月17日开始至少持续五周左右,具体时长未定。

在本次主网升级完成后,整个网络的旧钱包的交易记录会随之消失,请用户及时转移资产到新钱包。[2022/6/18 4:37:08]

其中一半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个内部交易产生的影响如下表:

LBank蓝贝壳将于5月24日21:00上线GDT并开放USDT交易:据官方公告,5月24日21:00,LBank蓝贝壳(LBank.me)上线GDT(Gorilla Diamond Inc),开放USDT交易,于5月24日19:00开启充值,23:00开启提现。

资料显示,Gorilla Diamond Inc将通过与所有代币持有者共享奖励的方式来引领加密公司的商业模式,从公司发展到公司部门内的各种计划。Gorilla Diamond Inc以6%的反射率启动通缩代币,这意味着GDT持有者从区块链上处理的每笔交易中获得6%的反射率。[2021/5/23 22:35:22]

从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次交易,交易地址如下:

第一次:

第二次:

0x045b60411af18114f1986957a41296ba2a97ccff75a9b38af818800ea9da0b2a

第三次:

0x4f0f495dbcb58b452f268b9149a418524e43b13b55e780673c10b3b755340317

该事件是一个典型的由于逻辑设计与实际智能合约代码实现不符而造成安全漏洞的案例。而且项目上线前,尚未经过安全审计。对于该种类型漏洞,传统的测试方法与测试工具均无法检查出该种逻辑漏洞。

因此,CertiK提出以下建议:

当前DeFi项目热潮持续不减,很多项目为了抓住热点与机遇,在未经严格测试和审计的情况下便匆忙上线。这些项目中,大部分的漏洞是无法通过常见的测试方法和工具来发现的。只有寻找专业的审计专家进行严谨的数学模型证明,才可以发现该漏洞。

安全审计现在已经是高质量DeFi项目的标配。若项目没有被审计,对于用户来说,投资行为则要格外慎重;对于项目方来说,则需要找专业并且声誉好的审计公司进行审计。若项目被审计过,则需尽量了解审计公司背景以及其审计报告中的各项指标,其中包括但不限于:

安全审计的范围,方法,及结论

合约是否有漏洞或者安全隐患?如果有,需要了解这些问题的严重程度及可能影响

合约整体的代码质量

审计公司的专业性和独立性

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

区块博客

DAI金色观察丨你真能分辨“去中心化”项目真伪吗?

金色财经 区块链10月2日讯? 就在上周,DeFi行业发生了一起“黑客攻击事件”。在此次事件中,黑客窃取了高达1.5亿美元的客户资金,也导致一些去中心化金融项目不得不冻结被盗的代币,然而这一举动似乎让人们发现这些项目可能只是在业内打着“去中心化”旗号而已,他们并没有做到真正的去中心化。 黑客事件回顾 9月26日,KuCoin监测到多笔热钱包大额提现。

AVAX什么是预言机?

Oracle 是什么?Oracle 的中文意思是先知,预言者。电影黑客帝国里扮演先知角色的老太太就叫做 Oracle。 Oracle 的定义之一是,在某方面具有绝对权威或可提供指引的人或物。 举个例子,在一个小镇上,有个男人每天早上 9 点出来遛狗,风雨无阻。渐渐地,镇上的居民根据这个男人有没有在遛狗,来判断时间。

[0:0ms0-9:274ms