据慢雾区情报,2020年11月17日,以太坊DeFi项目OUSD遭受闪电贷攻击。慢雾安全团队于第一时间跟进并进行相关分析。以下是慢雾安全团队针对本次攻击的简要分析。攻击过程详细分析会在稍后发布。如有兴趣可保持持续关注。
1.攻击者使用dydx闪电贷借出70000个ETH,随后通过Uniswap将其兑换为USDT和DAI。
2.攻击者调用OUSDVault的mint函数,Vault会先进行一次rebase将之前积累的奖励进行分配,随后将750万USDT从攻击者合约转入OUSDVault中。此时OUSD合约会铸出等量的750万OUSD代币给攻击合约,最后通过allocate来结算当前的收益。
谷燕西:比特币交易最终需要满足所有合规条件,机构投资者才能直接持有:12月25日,区块链和加密数字资产研究者谷燕西发表专栏文章称,目前同比特币交易相关的一些合规交易溢价表明依然有很大的资金量有待于直接进入比特币。他表示,比特币现在还没有成为一个主流金融交易产品。所以它依然没有在所有的合规的交易场所中进行交易。而机构的大部分资金只能在这些合规的交易场所中进行交易。它们为了在自己的持仓中持有比特币,只能通过间接的方式购买比特币。这就形成了比特币交易的一个间接的合规溢价。这样的一个溢价的形成,是因为很多机构投资者无法直接持有比特币,因此它们宁愿支付高度溢价来购买比特币信托份额,从而间接持有比特币。由此可见这些投资者对比特币未来走势的判断。谷燕西在最后指出,目前比特币的交易无法满足机构投资者所需的所有的合规条件,但机构投资者显然有非常迫切的需要现在就持有比特币,因此才产生了以上的合规溢价。这样的溢价显然是不会持久的。比特币的交易最终需要满足所有合规的条件,机构投资者才能开始持有。到那个时候,市场中就不会存在着这样的溢价。这也表明比特币价格会进一步地上升。[2020/12/25 16:28:01]
3.在攻击者转入750万之前,Vault的价值约为7018138美元。攻击者转入750万USDT后将占Vault总价值的一半以上。
谷燕西:BTC正成为一个为市场接受的交易产品 长期上涨是一个大概率事件:12月11日,针对Micro Strategy发债5.5亿美元用来购买比特币,区块链和加密数字资产研究者谷燕西发表专栏文章称,MicroStrategy只是比别的机构更加激进大胆。他在文中表示,在目前的全球范围内,越来越多的金融机构开始提供基于比特币的相关服务。对于比特币这个在全球范围内交易的产品,最近的这些主流金融机构的进入为比特币交易价格的增长提供了更加坚实的基础。
谷燕西指出,对比特币的交易可以至少从两个维度来看,合规与不合规,零售客户与机构客户。目前比特币已经被认可成为一个主流的交易产品。市场中也不再讨论它的本质。这个现象表明比特币已经被市场所接受。市场更加关心的是是否能对它进行便捷的买卖,它的价格会受什么影响,是否有充足的流动性等等关于交易产品的具体问题。他在文中还表示,美国市场对比特币交易产品的判断与监管的态度密不可分的。美国市场中数字美元稳定币的发行量的大涨也同样有利于比特币交易的活跃。所有这些因素都是推进比特币价格最近上涨的原因。
谷燕西最后表示,正是由于市场中的这些发展,比特币正在成为一个为市场接受的交易产品,会有更多的资金进入这个产品。即使未来会有大幅的震荡,但其长期上涨是一个大概率事件。市场中因此才有Micro Strategy这种看似疯狂的购买行为。[2020/12/11 14:53:08]
4.随后攻击合约利用mintMultiple函数传入DAI合约地址与攻击合约的地址,同样是先进行一次rebase,将之前累计的收益进行分配(包含先前转入的750万USDT部分),再通过transferFrom先将攻击合约的2050万DAI转入Vault中。随后将调用攻击合约的transferFrom函数,攻击者在攻击合约的transferFrom函数中构造再次调用Vault合约mint函数的逻辑来实现重入攻击。
声音 | 谷燕西:Libra的一个潜在的竞争者是Twitter和square的CEO Jack Dorsey:今日,在由火讯财经主办的“火讯Facebook Libra周”线上沙龙上,CBX研究院院长谷燕西表示,在潜在用户方面,Facebook确实在全球有27亿的注册用户,数量方面他确实是有优势。但是,具体到数字资产方面,加密数字资产的爱好者的活跃社交群体是Twitter,而不是Facebook,而且推特的用户也是遍及全球。如果一个基于加密数字资产的金融应用,需要在全球推广的话,实际上推特更适合于此目的。Libra稳定币的一个潜在的竞争者是 Twitter和square的CEO Jack Dorsey,他在社交网络和货币支付端方面都有优势,所以他很有可能是Facebook稳定币的一个很大的竞争者,而且他一直是加密数字货币的强烈的爱好者,特别是对比特币。在2018年5月在纽约举行的 Consensus大会上,他就提出,互联网需要自己的稳定数字货币。[2019/6/21]
5.在上一步骤中转入2050万DAI后通过攻击合约的transferFrom函数再次调用Vault的mint函数。由于重入时传入2000USDT符合判断是否调用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铸出2000OUSD,并通过allocate结算重入时2000USDT的收益(从上一步骤可以看出攻击合约传入的2000USDT只是为了满足调用rebase的条件,触发收益分配而已)。重入结束后仍将通过oUSD.mint铸出之前转入的2050万DAI等值的OUSD代币。
7.最后Vault的总价值约为3501万美元,但攻击者所拥有的价值超过3825万美元,因此攻击者用大部分的OUSD去Vault进行赎回操作,将Vault基本提空,而其余的OUSD是通过Uniswap和Sushiswap的OUSD-USDT池将OUSD换成USDT来增加收益。
总结:此次攻击关键在于调用外部合约造成的重入问题与Vault的rebase收益分配机制相结合,导致攻击者可以通过重入来凭空获得巨额的收益分配。针对此类情况,慢雾安全团队建议对传入资产进行检查后,对不在白名单内的资产直接进行回滚,并使用防重入锁以避免重入攻击。
相关链接:
(1)参考攻击交易:
0xe1c76241dda7c5fcf1988454c621142495640e708e3f8377982f55f8cf2a8401
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。