By:?九九&Zero
据慢雾安全团队情报,2023年3月13日,Ethereum链上的借贷项目EulerFinance遭到攻击,攻击者获利约2亿美元。慢雾安全团队第一时间介入分析,并将结果分享如下:
相关信息
EulerFinance是以太坊上的一个非托管的无许可借贷协议,帮助用户为他们的加密货币资产赚取利息或对冲波动的市场。
当用户在EulerFinance上进行存款抵押时会收到对应的EToken作为凭证,后续赎回抵押品和进行借贷时都是通过EToken。EToken的设计使用户可以通过铸造EToken并直接使用新的EToken作为抵押品来借出更多的资产并增加债务,即以叠加杠杆的方式进行自我借贷(selfborrow)。
Euler的软清算机制是允许清算人灵活的帮被清算人偿还其债务,而不是只能按照固定的系数进行清算。
以下是本次攻击涉及的相关地址:
攻击者EOA地址:
0x5f259d0b76665c337c6104145894f4d1d2758b8c
0xb2698c2d99ad2c302a95a8db26b08d17a77cedd4
攻击合约地址:
https://etherscan.io/address/0xeBC29199C817Dc47BA12E3F86102564D640CBf99
https://etherscan.io/address/0x036cec1a199234fC02f72d29e596a09440825f1C
币安美国寻找银行存取客户现金将变得艰难:金色财经报道,知情人士称,在此前合作的签名银行倒闭后,交易平台币安难以找到另一家银行进行合作,以存取客户现金。[2023/4/9 13:52:21]
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
攻击核心点
此次攻击的主要原因有两点:
美媒:马斯克曾试图就推特问题与FTC主席会面,但遭到拒绝:金色财经报道,马斯克曾要求与美国联邦贸易委员会(FTC)主席莉娜·可汗(Lina Khan)会面,但遭到了拒绝。该委员会一直在调查推特的隐私和数据操作。一位知情人士表示,马斯克是在去年年底做出这一尝试的。马斯克试图与FTC联系,表明了该机构对推特调查的严重性。该机构调查的重点是,在马斯克去年收购这家社交媒体公司并解雇了数千名员工之后,这家公司是否有足够的资源保护用户的隐私。据悉该机构曾单独寻求就调查与马斯克面谈,但一位知情人士说,会谈尚未进行。[2023/3/31 13:36:33]
1.将资金捐赠给储备地址后没有检查自身是否处于爆仓状态,导致能直接触发软清算的机制。
2.由于高倍杠杆触发软清算逻辑时,被清算者的健康系数会降低到1以下,导致清算者的清算获利可以完全覆盖其负债。因此由于清算后获得的抵押资金的价值是大于负债的价值,所以清算者无需进行额外的超额抵押即可成功通过自身的健康系数检查(checkLiquidity)而提取获得的资金。
具体细节分析
这里以攻击交易0xc310a0af进行分析,其他攻击的手法均一致:
1.攻击者首先从Aave中闪电贷出30,000,000枚DAI,并创建了两个子攻击合约(0x583c21)和(0xA0b3ee),为后续攻击做准备。
2.其次将20,000,000枚DAI通过deposit函数存入Euler中,获得了19,568,124.3枚抵押物凭证代币eDAI。
众筹平台Republic取消7500万美元的元宇宙基金:金色财经报道,美国第三大股权众筹门户网站Republic在2021年3月推出“Republic Realm Metaverse房地产基金”,只面向少数经过认证的投资者。它在很短的时间内就达到了7500万美元的最高预订额。该基金主要专注于购买NFT游戏中的虚拟房地产,如Sandbox, axxie Infinity和Decentraland。买下土地后,他们的想法是长期持有,同时继续将其开发成虚拟购物中心、活动空间和其他社区。但基于加密的资产自2021年的高点以来已大幅下降,自FTX崩溃以来,美国证券交易委员会(SEC)一直在打击该领域。此外,自2021年12月以来,此次融资一直处于搁置状态,无法获得投资者的资金。Republic表示,现在 SEC 已正式将其关闭,因此该基金不会取得进展。[2023/2/27 12:31:13]
3.之后调用mint函数(selfborrow)进行借款,借出了195,681,243枚eDAI和200,000,000枚债务代币dDAI。
4.紧接着调用repay函数用剩余的10,000,000枚DAI进行还款,其目的是为了减轻债务并增加抵押物价值,以便再次进行借贷。
保时捷NFT项目宣布减少供应,将于1月25日19时停止铸造:1月25日消息,保时捷NFT项目“PORSCHΞ911”官方在社交媒体上发文表示,鉴于持有者的意见,保时捷NFT将减少供应,停止铸造,以继续为专属社区创造最佳体验。铸造目前仍然开放,并将于北京时间1月25日19时关闭。
此前报道,保时捷NFT项目“PORSCHΞ911”二级市场地板价已跌破其发行价0.911ETH,现报0.9ETH。[2023/1/25 11:29:22]
5.再次调用mint函数(selfborrow)进行第二次借款,借出了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函数并没有检查账户的健康系数。
Tether回应《华尔街日报》:从未披露过任何股权是由于得到重要利益相关者的支持:8月30日消息,USDT 发行方 Tether 发文回应《华尔街日报》的质疑,称其试图诋毁 Tether 在与公众进行透明和诚实的沟通方面所做的工作。文中强调 Tether 所持有的 3 个月的国库券是安全资产,Tether 的业务能够产生利润,从未披露过任何股权是由于得到重要利益相关者的支持,并已被 NYAG 接受。
此外,Tether 还表示攻击 Tether 的储备资产是因为有利于市面上的其他稳定币,Tether 的披露是市场上最诚实和最透明的。任何提及 Tether 的商业模式中存在的失败边际,都是基于《华尔街日报》假定的卖空者叙述。Tether 在最近几个月轻松赎回超过 160 亿美元的已发行代币,使资产配置与前几个月基本保持一致,同时显着减少其对商业票据的敞口。?
据悉,《华尔街日报》此前发表文章称,目前 Tether 拥有价值 677.4 亿美元的资产和价值 675.4 亿美元的负债,两者仅相差 1.91 亿美元。这样的情况或将导致,即使其储备资产价值下降 0.3% 也可能“使 Tether 在技术上无力偿债”。[2022/8/30 12:58:25]
7.通过另一个子攻击合约0xA0b3ee调用清算函数去清算上一步中处于可被清算状态下的账户0x583c21。
清算过程中将0x583c21账户的259,319,058枚dDAI的负债转移到0xA0b3ee上,并获取了该账户的310,930,612枚eDAI。
可以看出清算人仅承担较少的债务却可以获得绝大部分的抵押品,这是因为Euler的软清算机制:当清算人开始进行清算时,将会根据债务人的健康系数计算折扣。根据这个特性当健康系数越低时,折扣越大,所能转移抵押品越多,最终只要能覆盖本身的债务既可完成获利。
由于清算后0xA0b3ee账户获得的抵押品是超过债务数量的,所以能成功通过清算检查。
8.最后通过调用withdraw函数进行提款上一步清算中得到的资金,并归还闪电贷获利。
MistTrack链上追踪
截止发文时间,100ETH已经被黑客转移到TornadoCash。
剩余资金作为余额保留在黑客地址,以下为详情:
值得注意的是,此次攻击事件共有6笔攻击交易,除了第一笔攻击交易为攻击者EOA地址1发起的外,其他的攻击交易发起人均为攻击者EOA地址2。
以下是6笔攻击交易的时间线:
2023-03-1311:38:11UTC,攻击者EOA地址1将获利的8,877,507.34DAI提款到攻击者EOA地址2的获利地址。
2023-03-1312:08:35UTC,攻击者EOA地址1发起链上喊话交易,喊话内容为:攻击者EOA地址1自称为MEV机器人,抢跑了攻击者EOA地址2的第一笔攻击交易,尝试抢跑其他的攻击交易但失败。更不幸的是,它创建的攻击合约只能提款到攻击者EOA地址2的获利地址。
根据MistTrack链上分析团队分析,攻击者EOA地址1的手续费来源地址是30天前在BSC链采用闪电贷攻击手法攻击EPMAX项目的黑客地址,攻击获利346,399.28USDT。
攻击获利后,EPMAX黑客地址通过cBridge跨链到ETH链后将获利资金转移到TornadoCash。EPMAX黑客使用到的平台工具有Multichain,FixedFloat,cBridge,1inch和KyberSwap。
攻击者EOA地址2的手续费来源是TornadoCash。
总结
综上所述,我们可以发现其实单独看donate操作,不检查捐赠用户的流动性是没有问题的。当用户捐赠后处于爆仓状态时,自然会有套利机器人进行清算。而单独看软清算的特性反而可以减轻过度清算以及清算不足的情况,正常清算的情况下是要求清算者需要有一定的抵押物,以避免完成清算后无法通过流动性检查。
但当捐赠操作与软清算相结合时就发生了奇妙的化学反应,攻击者通过杠杆(selfborrow)与捐赠特性将本身的健康系数降低到1以下,这就直接导致了清算者在完成清算后的获利可以覆盖其负债。
此次攻击事件的根本原因在于涉及用户资金的关键函数缺少流动性检查,并与动态更新折扣的清算机制构成了套利空间,导致攻击者无需抵押或偿还债务即可套取大量的抵押品。慢雾安全团队建议借贷类型的协议在涉及用户资金的函数需要做好必要的健康检查,并且需要考虑到不同模块组合后会形成的安全风险,设计安全的经济模型与业务模型。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。