奇妙的化学反应:Euler Finance 被黑分析_DAI:TOR

By: 九九 & Zero

据慢雾安全团队情报,2023 年 3 月 13 日,Ethereum 链上的借贷项目 Euler Finance 遭到攻击,攻击者获利约 2 亿美元。慢雾安全团队第一时间介入分析,并将结果分享如下:

Euler Finance 是以太坊上的一个非托管的无许可借贷协议,帮助用户为他们的加密货币资产赚取利息或对冲波动的市场。

当用户在 Euler Finance 上进行存款抵押时会收到对应的 EToken 作为凭证,后续赎回抵押品和进行借贷时都是通过 EToken。EToken 的设计使用户可以通过铸造 EToken 并直接使用新的 EToken 作为抵押品来借出更多的资产并增加债务,即以叠加杠杆的方式进行自我借贷(self borrow)。

Euler 的软清算机制是允许清算人灵活的帮被清算人偿还其债务,而不是只能按照固定的系数进行清算。

以下是本次攻击涉及的相关地址:

攻击者 EOA 地址:

0x5f259d0b76665c337c6104145894f4d1d2758b8c(下称攻击者 EOA 地址 1)

0xb2698c2d99ad2c302a95a8db26b08d17a77cedd4(下称攻击者 EOA 地址 2)

攻击合约地址:

稳定币项目Hector Network将需要6至12个月的时间进行清算:金色财经报道,在社区金库因Multichain崩溃而损失了数百万美元(可能还有更多的法律费用)之后,稳定币项目Hector Network背后社区已决定进行清算,但Discord团队帖子显示,该清算过程可能需要“至少六到十二个月”,并将涉及清算人、律师和审计员。Hector项目金库曾经持有1亿美元的代币,目前仅剩余1600 万美元。

Discord评论显示,老社区成员和新成员都对该时间线表示不满,认为Hector的团队在对该项目的未来进行投票时隐瞒了信息。周三,Hector 关闭了Discord服务器,删除了两年的历史记录,并剥夺了社区成员向领导层提问的机会。[2023/7/27 16:01:12]

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

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

攻击交易:

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

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

沉睡八年某以太坊早期投资者将200枚ETH转入Coinbase:7月20日消息,据Twitter用户/img/2023525213035/1.jpg">

2. 其次将 20,000,000 枚 DAI 通过 deposit 函数存入 Euler 中,获得了 19,568,124.3 枚抵押物凭证代币 eDAI。

3. 之后调用 mint 函数(self borrow) 进行借款,借出了 195,681,243 枚 eDAI 和 200,000,000 枚债务代币 dDAI。

沙特财富基金推出240亿美元的科技基金:金色财经报道,由沙特王储穆罕默德·本·萨勒曼 (Mohammed Bin Salman) 领导的主权财富基金推出了一项针对中东科技行业的 240 亿美元投资基金。

?该基金由公共投资基金 (PIF) 管理,旨在促进该地区蓬勃发展的科技和电信行业。作为基金启动的一部分,PIF 将在巴林、阿曼、苏丹、约旦和伊拉克建立五家独立的投资公司。?据 PIF 称,该基金将为其投资组合公司以及沙特阿拉伯的私营部门增加区域投资机会。[2022/10/28 11:53:35]

4. 紧接着调用 repay 函数用剩余的 10,000,000 枚 DAI 进行还款,其目的是为了减轻债务并增加抵押物价值,以便再次进行借贷。

5. 再次调用 mint 函数(self borrow) 进行第二次借款,借出了 195,681,243 枚 eDAI 和 200,000,000 枚 dDAI,此时该账户中大约 410,930,612 枚 eDAI 与 390,000,000 枚 dDAI。

6. 然后调用 donateToReserves 函数将 100,000,000 枚 eDAI 捐赠给储备地址,此时账户中的 eDAI 剩下 310,930,612 枚,而债务代币 dDAI 有 390,000,000 枚,此刻账户处于爆仓状态,但 donateToReserves 函数并没有检查账户的健康系数。

USDC在智能合约中的供应量占比达4个月高点:金色财经报道,Glassnode数据显示,目前USDC在智能合约中的供应量占比为42.230%,达4个月高点。此前监测到的高点为9月14日的42.222% 。[2022/9/16 7:00:44]

7. 通过另一个子攻击合约 0xA0b3ee 调用清算函数去清算上一步中处于可被清算状态下的账户 0x583c21。

清算过程中将 0x583c21 账户的 259,319,058 枚 dDAI 的负债转移到 0xA0b3ee 上,并获取了该账户的 310,930,612 枚 eDAI。

可以看出清算人仅承担较少的债务却可以获得绝大部分的抵押品,这是因为 Euler 的软清算机制:当清算人开始进行清算时,将会根据债务人的健康系数计算折扣。根据这个特性当健康系数越低时,折扣越大,所能转移抵押品越多,最终只要能覆盖本身的债务既可完成获利。

由于清算后 0xA0b3ee 账户获得的抵押品是超过债务数量的,所以能成功通过清算检查。

8. 最后通过调用 withdraw 函数进行提款上一步清算中得到的资金,并归还闪电贷获利。

截止发文时间,100 ETH 已经被黑客转移到 Tornado Cash。

剩余资金作为余额保留在黑客地址,以下为详情:(备注:价格取 2023-03-14 10:00 UTC)

值得注意的是,此次攻击事件共有 6 笔攻击交易,除了第一笔攻击交易为攻击者 EOA 地址 1 发起的外,其他的攻击交易发起人均为攻击者 EOA 地址 2。

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

2023-03-13 11:38:11 UTC,攻击者 EOA 地址 1 将获利的 8,877,507.34 DAI 提款到攻击者 EOA 地址 2 的获利地址。

2023-03-13 12:08:35 UTC,攻击者 EOA 地址 1 发起链上喊话交易,喊话内容为:攻击者 EOA 地址 1 自称为 MEV 机器人,抢跑了攻击者 EOA 地址 2 的第一笔攻击交易,尝试抢跑其他的攻击交易但失败。更不幸的是,它创建的攻击合约只能提款到攻击者 EOA 地址 2 的获利地址。

根据 MistTrack 链上分析团队分析,攻击者 EOA 地址 1 的手续费来源地址是 30 天前在 BSC 链采用闪电贷攻击手法攻击 EPMAX 项目的黑客地址,攻击获利 346,399.28 USDT。

攻击获利后,EPMAX 黑客地址通过 cBridge 跨链到 ETH 链后将获利资金转移到 Tornado Cash。EPMAX 黑客使用到的平台工具有 Multichain, FixedFloat, cBridge, 1inch 和 KyberSwap。

攻击者 EOA 地址 2 的手续费来源是 Tornado Cash。

综上所述,我们可以发现其实单独看 donate 操作,不检查捐赠用户的流动性是没有问题的。当用户捐赠后处于爆仓状态时,自然会有套利机器人进行清算。而单独看软清算的特性反而可以减轻过度清算以及清算不足的情况,正常清算的情况下是要求清算者需要有一定的抵押物,以避免完成清算后无法通过流动性检查。

但当捐赠操作与软清算相结合时就发生了奇妙的化学反应,攻击者通过杠杆(self borrow) 与捐赠特性将本身的健康系数降低到 1 以下,这就直接导致了清算者在完成清算后的获利可以覆盖其负债。

此次攻击事件的根本原因在于涉及用户资金的关键函数缺少流动性检查,并与动态更新折扣的清算机制构成了套利空间,导致攻击者无需抵押或偿还债务即可套取大量的抵押品。慢雾安全团队建议借贷类型的协议在涉及用户资金的函数需要做好必要的健康检查,并且需要考虑到不同模块组合后会形成的安全风险,设计安全的经济模型与业务模型。

慢雾科技

个人专栏

阅读更多

金色财经 善欧巴

金色早8点

Arcane Labs

MarsBit

Odaily星球日报

欧科云链

深潮TechFlow

BTCStudy

澎湃新闻

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

水星链

[0:0ms0-1:73ms