此次攻击关键在于调用外部合约造成的重入问题与Vault的rebase机制相结合,攻击者可以通过重入来凭空获得巨额收益分配。
原文标题:《闪电贷重入攻击,OUSD损失700万美金技术简析》撰文:慢雾安全团队
据慢雾区情报,2020年11月17日,以太坊DeFi项目OUSD遭受闪电贷攻击。慢雾安全团队于第一时间跟进并进行相关分析。以下是慢雾安全团队针对本次攻击的简要分析。攻击过程详细分析会在稍后发布。如有兴趣可保持持续关注。
背景提要
OriginDollar(OUSD)由OriginProtocol(OUSD)创建,是一种新型的ERC-20稳定币,当它仍然放在钱包里时,会自动从DeFi协议中获得有竞争力的收益。OUSD由USDT、USDC和DAI等其他稳定币的1:1支持。
QuickSwap因闪电贷攻击损失22万美元,将暂时关闭借贷市场:10月24日消息,据QuickSwap官方推特表示,暂时关闭借贷市场QuickSwap Lend,目前已因闪电贷攻击损失22万美元。本次攻击是通过Curve预言机漏洞实现的,只有Market XYZ借贷市场遭受影响,QuickSwap合约仍是安全的。
此外,QuickSwap表示,由于该市场由QiDAO提供资金,故没有用户的资金受到损失。[2022/10/24 16:37:18]
攻击流程简析
1.攻击者使用dydx闪电贷借出70000个ETH,随后通过Uniswap将其兑换为USDT和DAI。
Cream Finance遭遇闪电贷攻击,损失1800万美元:据Peckshield推特消息,抵押借贷平台Cream Finance遭遇闪电贷攻击,损失1800万美元。[2021/8/30 22:46:46]
2.攻击者调用OUSDVault的mint函数,Vault会先进行一次rebase将之前积累的奖励进行分配,随后将750万USDT从攻击者合约转入OUSDVault中。此时OUSD合约会铸出等量的750万OUSD代币给攻击合约,最后通过allocate来结算当前的收益。
3.在攻击者转入750万之前,Vault的价值约为7018138美元。攻击者转入750万USDT后将占Vault总价值的一半以上。
BSC链上项目xWin 遭到闪电贷攻击:北京时间 6月25日,PeckShield派盾预警显示,DeFi 协议 xWin遭到闪电贷攻击。[2021/6/25 0:05:15]
4.随后攻击合约利用mintMultiple函数传入DAI合约地址与攻击合约的地址,同样是先进行一次rebase,将之前累计的收益进行分配(包含先前转入的750万USDT部分),再通过transferFrom先将攻击合约的2050万DAI转入Vault中。随后将调用攻击合约的transferFrom函数,攻击者在攻击合约的transferFrom函数中构造再次调用Vault合约mint函数的逻辑来实现重入攻击。
flash.sx闪电贷智能合约遭攻击,项目方发起提案更改黑客EOS账号权限以转回资产:官方消息,EOS Nation旗下闪电贷被黑客攻击后,项目方发起提案直接更改了黑客EOS账号权限转回资产。据悉,项目方发起的提案,把黑客地址权限改成了BP,BP通过后执行。此前消息,flash.sx闪电贷智能合约遭攻击,120万EOS和46.2万USDT被盗。[2021/5/15 22:05:44]
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收益分配机制相结合,导致攻击者可以通过重入来凭空获得巨额的收益分配。针对此类情况,慢雾安全团队建议对传入资产进行检查后,对不在白名单内的资产直接进行回滚,并使用防重入锁以避免重入攻击。
相关链接:
参考攻击交易:0xe1c76241dda7c5fcf1988454c621142495640e708e3f8377982f55f8cf2a8401
Uniswap
Uniswap
Uniswap一种简单的无代币交换协议,被称为去中心化的Shapeshift或者Bancor,已经在主网上启动。用Vyper写作,Gas消耗奇低无比。UniswapUniswapUniswapUniswapUniswapUNI查看更多OriginProtocol
Gate.io一直秉承真实,透明的理念,不造假数据,不干预市场交易,为用户提供真实自由的市场工具和稳定健康的市场服务。杠杆交易提供做多和做空机制,可以有效稳定市场到合理价值.
1900/1/1 0:00:00Curve试图利用稳定币的特性实现比Uniswap更好的费率和交易体验,然而其在优化费率的同时,引入了新的流动性风险.
1900/1/1 0:00:00MakerDAO的「货币政策」与传统金融市场中央银行相似,只不过前者是由智能合约支撑的算法央行.
1900/1/1 0:00:00「价值」是加密世界中,长期,反复,被讨论的话题。是否有价值,是哪种价值?如何捕获价值?到底什么是ValueCapture?什么样的加密项目可以具备ValueCapture能力?价值判断的波动性,
1900/1/1 0:00:00索尼AI最近宣布了其美食旗舰项目,这是一项基于AI的计划,旨在“增强全球厨师的创造力和技术。”与自动驾驶汽车,虚拟助手或其他流行的AI程序相比,这听起来像是个小土豆问题。但是每个人都吃.
1900/1/1 0:00:00关于PoW和PoS的误解太多,想要在一篇文章中讲个明白实在是一个极高难度的任务,所以这里只简单讨论两点,一个是从经济学上思考PoS给出的美好承诺是否可靠,另一个是PoS本质上是一种许可机制.
1900/1/1 0:00:00