SlowMist:对Euler Finance攻击事件的分析

  • slowmist
  • 发布于 2023-03-16 12:14
  • 阅读 18

本文章分析了2023年3月13日对Euler Finance的攻击事件,攻击者利用智能合约漏洞和高杠杆策略从中获利约2亿美元。SlowMist安全团队详细阐述了攻击的根本原因、过程及其对现有金融协议的安全建议,指出智能合约在处理用户资金时缺乏必要的流动性检查。

SlowMist:对Euler Finance攻击的分析

2023年3月13日,基于以太坊区块链的借贷项目Euler Finance遭到攻击,攻击者获利约2亿美元。SlowMist安全团队迅速介入并分析了情况,并分享了如下结果:

https://twitter.com/SlowMist_Team/status/1635230255878373377

背景信息

Euler Finance是一个去中心化和无许可的借贷协议,允许用户利用其加密货币资产赚取利息或对冲市场波动。

当用户在Euler Finance上存入抵押品时,他们会获得相应的EToken作为证明,随后的抵押品赎回和借贷均通过EToken进行。EToken的设计允许用户通过铸造EToken和直接将新EToken作为抵押品来借用更多资产,从而以分层杠杆的方式自我借贷。

Euler的软清算机制允许清算人灵活地帮助债务人偿还债务,而不是局限于固定系数。

以下是与此次攻击相关的地址:

攻击者的EOA地址1:0x5f259d0b76665c337c6104145894f4d1d2758b8c

攻击者的EOA地址2:0xb2698c2d99ad2c302a95a8db26b08d17a77cedd4

攻击合约地址:

https://etherscan.io/address/0xeBC29199C817Dc47BA12E3F86102564D640CBf99

https://etherscan.io/address/0x036cec1a199234fC02f72d29e596a09440825f1C

攻击交易:

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

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

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

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

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

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

根本原因

此次攻击的原因有两个关键点:

首先,在将资金捐赠给储备地址后,未能检查用户是否处于清算状态,导致直接触发了软清算机制。

其次,当软清算逻辑因高杠杆触发时,债务人的健康因子降到1以下。这使清算人的利润完全覆盖其债务,因为清算后获得的抵押品的价值超过债务的价值。因此,清算人可以成功提取所获得的资金,而无需任何额外抵押,轻松通过健康检查(checkLiquidity)。

攻击过程

本节分析哈希为0xc310a0af的攻击交易,其他攻击技术保持一致:

  1. 攻击者通过Aave的闪电贷借入30000000 DAI,并创建了两个子攻击合约(0x583c21和0xA0b3ee),以为后续攻击做准备。

  1. 攻击者通过存款功能将20000000 DAI存入Euler Finance,并获得19568124.3 eDAI作为抵押代币。

  1. 调用铸造功能(self-borrow)借入195681243 eDAI和200000000债务代币(dDAI)。

  1. 紧接着,攻击者调用还款功能,偿还剩余的10000000 DAI。这是为了减少债务并增加抵押品的价值,以准备进行另一轮借贷。

  1. 攻击者再次调用铸造功能(self-borrow)进行第二轮借贷,借入195681243 eDAI和200000000 dDAI。此时,账户持有约410930612 eDAI和390000000 dDAI。

  1. 攻击者然后调用donateToReserves功能,将100000000 eDAI捐赠给储备地址。此时,账户有310930612 eDAI和390000000 dDAI,导致账户处于清算状态。然而,donateToReserves功能并未检查账户的健康因子。

  1. 使用另一个子攻击合约0xA0b3ee调用清算函数,清算在前一步中处于清算状态的账户0x583c21。

在清算过程中,攻击者将账户0x583c21的259319058 dDAI债务转移到0xA0b3ee,并从该账户获得310930612 eDAI。

显而易见,清算人只承担了少量债务,但能够获得绝大多数抵押品。这是因为Euler Finance的软清算机制:当清算人开始清算过程时,根据债务人的健康因子计算折扣。因此,这一机制导致健康因子越低,折扣越大,能够转移的抵押品越多。最终,清算人只需补偿自己的债务即可完成此次攻击。

由于账户0xA0b3ee在清算后获得的抵押品金额超过债务,因此该账户能够成功通过清算检查。

  1. 最后,攻击者调用withdraw函数,提取之前清算获得的资金并偿还从闪电贷获得的利润。

MistTrack链上分析

在撰写本文时,攻击者已将100 ETH转移至Tornado Cash。

剩余资金仍保留在攻击者的地址中。

以下是详细信息:(注:价格截至2023年3月14日10:00 UTC)

值得注意的是,此次攻击共发生了6笔攻击交易,其中第一笔攻击交易由攻击者的EOA地址1发起,所有其他攻击交易都由攻击者的EOA地址2发起。

以下是6笔攻击交易的时间线:

在2023年3月13日,UTC时间11:38:11,攻击者的EOA地址1从攻击者的EOA地址2提取了8877507.34 DAI。

在2023年3月13日,UTC时间12:08:35,攻击者的EOA地址1发起了一项链上信息交易,声称自己是一个超过第一笔由攻击者的EOA地址2发起的攻击交易的MEV机器人,试图超越其他攻击交易但失败。不幸的是,机器人创建的攻击合约仅能提取到攻击者EOA地址2的利润地址。

根据MistTrack的链上分析团队,攻击者的EOA地址1所使用的费用来源追溯到一个此前在Binance Smart Chain上对EPMAX项目进行闪电贷攻击的黑客地址,盗取了总计346399.28 USDT。

攻击后,EPMAX黑客地址通过cBridge转至ETH链,将利润转移至Tornado Cash。EPMAX黑客所使用的平台工具包括Multichain、FixedFloat、cBridge、1inch和KyberSwap。

攻击者的EOA地址2所用的费用也被追溯到Tornado Cash。

总结

经过详细分析,可以显而易见,将“捐赠”操作单独检查而不验证捐赠用户的流动性是没有问题的。当用户在捐赠后处于清算状态时,套利机器人执行必要的清算程序是不可避免的。此外,专注于软清算的特征可以缓解过度清算和不足清算的场景。在正常清算情况下,清算人需提供抵押品,以避免在完成清算后未通过流动性检查。

然而,当“捐赠”操作与软清算结合时,将产生不同的反应。攻击者可以利用杠杆(自我借贷)和捐赠功能将其健康因子降低至1以下,这直接导致清算人在完成清算后,可以用收益来覆盖其债务。

此次攻击的主要原因是在涉及用户资金的关键功能中缺乏流动性检查,而这与动态更新折扣的清算机制结合起来,给攻击者创造了可观的套利机会,使其能够在不提供抵押品或偿还债务的情况下抽走大量抵押品。因此,SlowMist安全团队建议借贷协议在涉及用户资金的功能中纳入必要的健康检查,同时考虑组合不同模块可能带来的安全风险。这样将有助于设计出安全且可行的经济模型,有效缓解未来类似攻击。

关于SlowMist

SlowMist是一家成立于2018年1月的区块链安全公司。该公司由拥有十年以上网络安全经验的团队成立,旨在成为全球性力量。我们的目标是使区块链生态系统对每个人尽可能安全。我们现在是一家知名的国际区块链安全公司,已为许多知名项目提供服务,如Huobi、OKX、Binance、imToken、Crypto.com、Amber Group、Klaytn、EOS、1inch、PancakeSwap、TUSD、Alpaca Finance、MultiChain、O3Swap等。

网站:

https://www.slowmist.com

Twitter:

https://twitter.com/SlowMist_Team

Github:

https://github.com/slowmist/

  • 原文链接: slowmist.medium.com/slow...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
slowmist
slowmist
江湖只有他的大名,没有他的介绍。