0x1 事件背景
DEUS Finance 是一个去中心化的合成资产协议。为其他人建立金融工具提供基础设施,如合成股票交易平台、期权和期货交易等,用户可以将任何可数字验证的资产安全地转移到区块链上,无论是其他链上资产、传统领域的大宗商品、股票等等,都可以在Deus Finance上将其通证化。投资者,可以基于Deus Finance直接以加密货币的形式直接的在链上交易。对于镜像的资产与现实世界中的资产 1:1 等价。
零时科技区块链安全情报平台监控到消息,北京时间 2022年3月15日,DEUS 在官方推特称遭到黑客攻击,零时科技安全团队及时对此安全事件进行分析。
0x2 攻击者信息
零时科技安全团队通过初步追踪分析,此次攻击发生在 Fantom 链,主要攻击信息如下:
-
攻击者钱包地址
https://ftmscan.com/address/0x1ed5112b32486840071b7cdd2584ded2c66198dd
-
攻击者创建的合约地址
https://ftmscan.com/address/0xb8f5c9e18abbb21dfa4329586ee74f1e2b685009
-
攻击交易
https://ftmscan.com/tx/0xe374495036fac18aa5b1a497a17e70f256c4d3d416dd1408c026f3f5c70a3a9c
-
Oracle 漏洞合约
https://ftmscan.com/address/0x5CEB2b0308a7f21CcC0915DB29fa5095bEAdb48D#code
-
DEUS Finance 官方项目 DeiLenderSolidex 合约地址
https://ftmscan.com/address/0xec1fc57249cea005fc16b2980470504806fca20d
0x3 攻击分析
先来看一下攻击者获利的一笔交易操作:
步骤1:攻击者通过 SPIRIT-LP_USDC_DEI 闪电贷款了 9,739,342 个 DEI
步骤2:攻击者紧接着又从 SAMM-USDC/DEI 闪电贷款了 24,772,798 个 DEI
步骤3:接下攻击者通过操控合约币价而大量的对步骤2中出现无力偿还的用户进行清算
步骤4:攻击者将借来的 24,772,798 DEI 偿还给 sAMM-USDC/DEI
步骤5:攻击者销毁清算后的 LP Token,获得 5,218,173 USDC 和 5,246,603 DEI
步骤6:攻击者将 5,218,173 个USDC 全部兑换为 5,170,594 个DEI
步骤7:攻击者将兑换到的 9,768,648 DEI 用于对第一笔闪电贷进行还款
最后攻击者合约通过新的一笔交易 0x30534f710b38c93f108eea89244be2bad5d7041ed406dff12de492f5cdbe6631 将获利的DEI全部兑换成USDC,总价值达到300多万美元。
0x4 漏洞细节
通过对事件日志的分析,发现攻击者合约多次并且连续的调用了 RemoveCollateral 事件以及 Repay 事件,从而得知攻击者频繁调用 liquidate 清算函数,并且经分析都进行了无力偿还的处理。
liquidate 函数中调用了 isSolvent() 函数判断用户是否达到了被清算的要求
在 isSolvent 函数中调用了 IOracle 接口中的 getPrice() 来判断抵押物的价格,这里我们通过项目合约创建时交易查到初始 oracle 合约地址
由 oracle 合约内函数 getPrice() 可知,代币价格算法:
由此可知 DEI 的代币价格是根据池中 DEI 和 USDC 的余额来判断的,所以攻击者利用闪贷发起了这次攻击,控制了 DEI 代币的价格,对普通用户资产进行清算,最终获利。
3月16日 官方已推送新的 Oracle 合约
https://ftmscan.com/address/0x8878eb7f44f969d0ed72c6010932791397628546
官方使用新的 Oracle 预言机合约,已修复该漏洞,新的 getPrice 从Oracle 合约内获取指定的 price 值
0x5 总结
通过此次攻击事件来看,攻击成功最重要的因素是 DEUS 官方 设置了一个不安全的 Oracle 预言机合约,导致攻击者可通过闪电贷获取资金来影响代币价格,所以对于此类安全事件,零时科技安全团队给出以下建议。
0x6 安全建议
-
建议项目上线前对项目源码进行全面安全审计;
-
建议严格判断预言机价格计算逻辑合理性。
?扫描关注零时科技服务号?
?区块链安全威胁情报实时掌握?
出品 | 零时科技安全团队
·END·
关注
往期内容回顾
区块链安全100问 | 第四篇:保护数字钱包安全,防止资产被盗
区块链安全100问 | 第五篇:黑客通过这些方法盗取数字资产,看看你是否中招?
零时科技 | 被盗6.1亿美金,Poly Network 被攻击复盘分析
原文始发于微信公众号(零时科技):DEUS Finance攻击事件分析|零时科技