mt logoMyToken
总市值:
0%
恐慌指数:
0%
币种:--
交易所 --
ETH Gas:--
EN
USD
APP
Ap Store QR Code

Scan Download

闪电贷+重入攻击,解析OUSD被盗700万美金始末

收藏
分享

By :  Kong@慢雾安全团队

据慢雾区情报,2020 年 11 月 17 日,以太坊 DeFi 项目 OUSD 遭受闪电贷攻击。慢雾安全团队于第一时间跟进并进行相关分析。以下是慢雾安全团队针对本次攻击的简要分析。攻击过程详细分析会在稍后发布。如有兴趣可保持持续关注。

背景提要

Origin Dollar (OUSD)由Origin Protocol (OUSD)创建,是一种新型的ERC-20 稳定币,当它仍然放在钱包里时,会自动从DeFi 协议中获得有竞争力的收益。OUSD 由USDT、USDC 和DAI 等其他稳定币的1:1 支持。

攻击流程简析

1. 攻击者使用 dydx 闪电贷借出 70000 个 ETH,随后通过 Uniswap 将其兑换为 USDT 和 DAI。

2. 攻击者调用 OUSD Vault的 mint 函数,Vault 会先进行一次 rebase 将之前积累的奖励进行分配,随后将 750 万 USDT 从攻击者合约转入 OUSD Vault 中。此时 OUSD 合约会铸出等量的 750 万 OUSD 代币给攻击合约,最后通过 allocate 来结算当前的收益。

3. 在攻击者转入 750 万之前,Vault 的价值约为 7018138 美元。攻击者转入 750 万 USDT 后将占 Vault 总价值的一半以上。

4. 随后攻击合约利用 mintMultiple 函数传入 DAI 合约地址与攻击合约的地址,同样是先进行一次 rebase ,将之前累计的收益进行分配(包含先前转入的 750 万 USDT 部分),再通过 transferFrom 先将攻击合约的 2050 万 DAI 转入 Vault 中。随后将调用攻击合约的 transferFrom 函数,攻击者在攻击合约的 transferFrom 函数中构造再次调用 Vault 合约 mint 函数的逻辑来实现重入攻击。

5. 在上一步骤中转入 2050 万 DAI 后通过攻击合约的 transferFrom 函数再次调用 Vault 的 mint 函数。由于重入时传入 2000 USDT 符合判断是否调用 rebase 的条件,此时将进行一次 rebase,而由于 rebase 需要 Vault 中的资产总价值和 OUSD 的总铸币数有差值才能触发。按照原本的业务场景是进行 allocate 结算收益后改变 Vault 中的资产总价值然后通过 rebase 进行分配。而由于重入原因并没有先通过 oUSD.mint 进行铸币操作,且攻击者已先将 2050 万的 DAI 转入 Vault 中,所以 Vault 中的资产总价值仍然增加了,导致合约中的资产总价值大于 OUSD 的总铸币量。因此 Vault 会将增加的 2050 万 DAI 当成收益部分进行 rebase 分配。在步骤 3 中由于攻击者资产已占 Vault 总价值的一半以上,所以此时攻击者将凭空获得超过价值 1025 万的收益分配。

6. 随后将通过 oUSD.mint 铸出 2000 OUSD,并通过 allocate 结算重入时 2000 USDT 的收益(从上一步骤可以看出攻击合约传入的 2000 USDT 只是为了满足调用 rebase 的条件,触发收益分配而已)。重入结束后仍将通过 oUSD.mint 铸出之前转入的 2050 万 DAI 等值的 OUSD 代币。

7. 最后 Vault 的总价值约为 3501 万美元,但攻击者所拥有的价值超过 3825 万美元,因此攻击者用大部分的 OUSD 去 Vault 进行赎回操作,将 Vault 基本提空,而其余的 OUSD 是通过 Uniswap 和 Sushiswap 的 OUSD - USDT 池将 OUSD 换成 USDT 来增加收益。

总结

此次攻击关键在于调用外部合约造成的重入问题与 Vault 的 rebase 收益分配机制相结合,导致攻击者可以通过重入来凭空获得巨额的收益分配。针对此类情况,慢雾安全团队建议对传入资产进行检查后,对不在白名单内的资产直接进行回滚,并使用防重入锁以避免重入攻击。

相关链接:

(1) 参考攻击交易:

0xe1c76241dda7c5fcf1988454c621142495640e708e3f8377982f55f8cf2a8401

免责声明:本文版权归原作者所有,不代表MyToken(www.mytokencap.com)观点和立场;如有关于内容、版权等问题,请与我们联系。
相关阅读

DeFi潮流新风口:从链上数据看跨链桥的发展新方向

总锁仓额突破131亿美元,9月独立地址总数超12万个

Bitwise 向美SEC提交比特币策略ETF申请,旨在投资比特币期货和其他金融产品

PANews 9月15日消息,根据一份公开的监管文件,资产管理公司Bitwise 下属部门 Bitwise Index Services 向美国证券交易委员会(SEC)递交了比特币期货交易所交易基金 ETF申请,新基金名为Bitwise Bitcoin Strategy ETF。旨在投资比特币期货和其他金融产品。该文件称:“该基金不会直接投资于比特币,虽然该基金主要通过间接投资于在 CFTC 注册的商品交易所交易的标准化、现金结算的比特币期货合约来获得比特币敞口,但它也可能投资于集合投资工具和加拿大上市的提供比特币敞口的基金”。文件显示,ETF 还可能投资于现金、美国政府证券或货币市场基金。US Bancorp Fund Services 将担任转账代理和管理人,而美国银行将担任托管方。据了解,美国证券交易委员会(SEC)至今还未批准任何比特币 ETF 基金。此外,美证监会主席 Gary Gensler 表示该机构更有可能批准比特币期货 ETF 而不是现货 ETF,因为期货 ETF 将投资于芝加哥商品交易所(CME)提供监管的比特币期货产品,而比特币现货则不受监管。来源链接

知情人士:因需求强烈,Coinbase计划发行的债券或增加至20亿美元

PANews 9月15日消息,有知情人士称,此前计划发行15亿美元债券的Coinbase会将交易规模提升至20亿美元,因为至少已经有70亿美元的订单涌入。其他知情人士表示,等额的7年期和10年期债券将分别以3.375%和3.625%的利率发行,低于最初讨论的借贷成本。彭博社表示,固定收益投资者对该产品的热捧,代表了加密货币不再是一个专属于风险资本的行业,因为养老基金和对冲基金在内的专注投资债务的投资者都希望参与到此次的投资中。此前根据 Coinbase 提交给美国证券交易委员会(SEC)文件显示,Coinbase 将通过私募发行 15 亿美元于 2028 年和 2031 年到期的有担保高级票据,这些票据将由 Coinbase 的全资子公司 Coinbase, Inc. 提供全额无条件担保。来源链接