本文章分析了2023年3月13日对Euler Finance的攻击事件,攻击者利用智能合约漏洞和高杠杆策略从中获利约2亿美元。SlowMist安全团队详细阐述了攻击的根本原因、过程及其对现有金融协议的安全建议,指出智能合约在处理用户资金时缺乏必要的流动性检查。
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的攻击交易,其他攻击技术保持一致:
在清算过程中,攻击者将账户0x583c21的259319058 dDAI债务转移到0xA0b3ee,并从该账户获得310930612 eDAI。
显而易见,清算人只承担了少量债务,但能够获得绝大多数抵押品。这是因为Euler Finance的软清算机制:当清算人开始清算过程时,根据债务人的健康因子计算折扣。因此,这一机制导致健康因子越低,折扣越大,能够转移的抵押品越多。最终,清算人只需补偿自己的债务即可完成此次攻击。
由于账户0xA0b3ee在清算后获得的抵押品金额超过债务,因此该账户能够成功通过清算检查。
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等。
网站:
Twitter:
https://twitter.com/SlowMist_Team
Github:
- 原文链接: slowmist.medium.com/slow...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!