织梦CMS - 轻松建站从此开始!

我的网站

当前位置: 主页 > 区块链

Yearn.finance新项目Eminence攻击事件漏洞分析

时间:2020-09-30 16:31来源:未知 作者:admin 点击:
技术细节分析 在该笔交易中,攻击者首先通过Uniswap中的闪电贷(Flash Loan)服务借得1500万个DAI, 然后全部购买EMN代币,共购得约1,383,650,487个EMN代币。 其中一半EMN,共约691,825,243个EMN代币

  技术细节分析

  在该笔交易中,攻击者首先通过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)。

  从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

  分析总结

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

  因此,有关团队提出以下建议:

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

织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容