By:九九&;零
根据慢雾安全团队的信息,2023年3月13日,以太坊链条上的贷款项目欧拉金融遭到攻击,攻击者获利约2亿美元。慢雾安全小组立即介入分析,并分享了如下结果:
欧拉金融(Euler Finance)是以太坊(Ethereum)上一种不受管理且未经许可的借贷协议,帮助用户从其加密货币资产中赚取利息或对冲波动的市场。
用户在欧拉金融上抵押存款时,会收到相应的EToken作为凭证,后续的赎回抵押和借款都是通过EToken。EToken的设计允许用户通过铸造EToken和直接使用新EToken作为抵押品,即通过重叠杠杆进行自我借款,借出更多资产和增加债务。
欧拉的软清算机制是让清算人帮助清算人灵活偿还债务,而不是仅仅按照一个固定的系数进行清算。
以下是此次攻击涉及的相关地址:
攻击者EOA地址:
0x5f 259 d0b 76665 c 337 c 6104145894 f 4 D1 d 2758 b 8 c(以下简称攻击者EOA地址1)。
0xb 2698 C2 d 99 a d2c 302 a 95 A8 db 26 b 08d 17 a 77 cedd 4(以下简称攻击者EOA地址2)。
攻击合同地址:
https://ethers can . io/address/0x ebc 29199 c 817 DC 47 ba 12 E3 f 86102564d 640 CBF 99
https://ethers can . io/address/0x 036 cec1 a 199234 fc 02 f 72d 29 e 596 a 09440825 f1c
https://ethers can . io/address/0x 036 cec1 a 199234 fc 02 f 72d 29 e 596 a 09440825 f1c
攻击交易:
https://ethers can . io/tx/0xc 310 a 0 affe 2169 D1 F6 feec 1c 63 DBC 7 f 7 c 62 a 887 fa 48795d 327d 4d 2d 6 b 111d
https://ethers can . io/tx/0x71a 908 be 0 bef 6174 bccc 3d 493 bec DFD 28395d 78898 e 355d 451 CB 52 f 7 BAC 38617
https://ethers can . io/tx/0x 62 BD 3d 31 a 7 b 75 c 098 CCF 28 BC 4d 4 af 8 C4 a 191 B4 B9 e 451 fab 4232258079 E8 b 18 c 4
https://ethers can . io/tx/0x 465 a 6780145 f1 EFE 3 ab 52 f 94 c 006065575712d 2003 d83d 85481 F3 d 110 ed 131d 9
https://ethers can . io/tx/0x 3097830 e 9921 e 4063d 334 ACB 82 f 6a 79374 f 76 f 0 B1 A8 f 857 e 89 b 89 BC 58 df1 f 311
https://ethers can . io/tx/0x 47 AC 3527d 02 e6b 9631 c 77 fad 1 cdee 7 BFA 77 A8 a7 bfd 4880 DCC BDA 5146 ace 4088 f
攻击核心点主要有两个原因:
1.把资金捐到保留地址后,没有检查自己是否处于爆炸状态,导致产生了可以直接触发软清算的机制。
2.当高杠杆触发软清算逻辑时,清算人的健康系数会降低到小于1,导致清算人的清算利润可以完全覆盖其负债。因此,由于清算后获得的抵押资金的价值大于负债的价值,清算人可以通过自己的支票流动性成功地提取所获得的资金,而无需额外的过度抵押。
这里的详细分析是基于攻击交易0xc310a0af,其他攻击的方法也是一样的:
1.攻击者先以闪电方式从Aave借出30,000,000 DAI,并创建了两个子攻击契约(0x583c21)和(0xA0b3ee)为后续攻击做准备。
2.其次,通过存款功能将20,000,000个代币存入欧拉,获得19,568,124.3个抵押凭证代币eDAI。
3.之后调用mint函数(self borrow)借钱,借出195,681,243 eDAI和200,000,000债务代币dDAI。
4.然后调用偿还函数偿还剩余的10,000,000代,目的是减少债务,增加抵押物的价值,以便再次借款。
5.第二次调用mint函数(自借),借出195,681,EDAIs和200,000,DDAIs。此时,账户中大约有410,930,612个EDAIs和390,000,000个DDAIs。
6.然后调用DonateStoreServers函数向保留地址捐赠100,000,EDAIs。此时账户中剩余310,930,612 edai,还有390,000,000债务代币dDAI。此时此刻,账号处于爆炸状态,但DonateStoreServers函数并不检查账号的健康系数。
7.通过另一个子攻击契约0xA0b3ee调用清零函数,将上一步处于清零状态的账户0x583c21清零。
清算时,0x583c21账户259,319,058 dDAI负债转入0xA0b3ee,取得该账户310,930,612 edai。
可以看出,清算人能够以较少的债务获得大部分的抵押物,这是因为欧拉的软清算机制:清算人开始清算时,会根据债务人的健康系数计算贴现。根据这个特点,健康系数越低,贴水越大,可以转让的抵押物越多,最后只要能覆盖自己的债务就可以完成盈利。
清算后,账户0xA0b3ee获得的抵押物超过债务金额,因此顺利通过清算检查。
8.最后通过调用提现函数,将之前清算获得的资金提现,返还闪电贷获利。
追踪MistTrack chain上发帖的截止日期,100 ETH已经被黑客转到Tornado Cash了。
剩余资金作为余额保存在黑客的地址。以下为详情:(注:价格为2023-03-14 10:00 UTC)
值得注意的是,本次攻击共有6次攻击交易。除了第一次攻击交易是由攻击者EOA地址1发起的,其他所有攻击交易都是由攻击者EOA地址2发起的。
以下是六次攻击交易的时间线:
2023-03-13 UTC时间11: 38: 11,攻击者地址1提取利润8877507.34戴到攻击者地址2的利润地址。
UTC时间2023年3月13日12: 08: 35,攻击者EOA地址1在链上发起外呼交易。号召的内容是,攻击者EOA地址1自称是MEV机器人,窃取了攻击者EOA地址2的第一笔攻击交易,并试图窃取其他攻击交易但未成功。不幸的是,它创建的攻击契约只能撤回到攻击者的盈利地址EOA地址2。
根据MistTrack chain上分析团队的分析,攻击者EOA地址1的手续费来源地址是30天前使用闪电贷攻击方法攻击BSC链中EPMAX项目的黑客地址,攻击获利346399.28 USDT T..
攻击获利后,EPMAX黑客地址通过cBridge跨链到ETH链,再将获利资金转到Tornado Cash。EPMAX黑客使用的平台工具有Multichain、Fixed Float、CBRIDGE、1 inch和KyberSwap。
攻击者EOA地址2的费用来源是龙卷风现金。
综上所述,我们可以发现,不检查捐赠用户的流动性,单看捐赠操作是没有问题的。当用户在捐赠后处于爆发状态时,自然会有套利机器人进行清算。相反,单看软清算的特点,可以缓解过度清算和清算不足的情况。正常清算情况下,要求清算人有一定的抵押物,以避免清算后无法通过流动性检查。
然而,当捐赠操作与软清算相结合时,就会发生奇妙的化学反应。攻击者通过自我借贷和捐赠特性将自身的健康系数降低到1以下,这直接导致清算人在完成清算后的利润覆盖了其负债。
这种攻击的根本原因是缺乏对涉及用户资金的关键功能的流动性检查,与动态更新折扣的清算机制形成套利空,导致攻击者无需抵押或偿还债务就能获得大量抵押品。慢雾安全团队建议,借贷类协议在涉及用户资金的功能上要有必要的健康检查,要考虑不同模块组合带来的安全风险,设计安全的经济模式和商业模式。
温馨提示:注:内容来源均采集于互联网,不要轻信任何,后果自负,本站不承担任何责任。若本站收录的信息无意侵犯了贵司版权,请给我们来信,我们会及时处理和回复。
免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如有疑问请发送邮件至:goldenhorseconnect@gmail.com