作者:PeckShield
原标题:OUSD遭“经典重入攻击”损失770万美元DeFi安全亟待解决
近日,PeckShield监控到DeFi协议OriginProtocol稳定币OUSD遭到攻击,攻击者利用在衍生品平台dYdX的闪电贷进行了重入攻击(Re-entrancyattack),造成价值770万美元的ETH和DAI的损失。
重入攻击是以太坊智能合约上最经典的攻击手段之一,著名的theDAO被盗事件就是攻击者运用重入攻击导致以太坊硬分叉,损失价值5000万美元以太币。
自今年4月起,DeFi项目频遭重入攻击。4月18日,黑客利用Uniswap和ERC777标准的兼容性问题缺陷实施重入攻击;4月19日,Lendf.Me也遭到类似重入攻击;11月14日,黑客利用Akropolis?项目的SavingsModule合约在处理用户存储资产时存在的某种缺陷连续实施了17次重入攻击,损失203万枚DAI。?
主力数据复盘:Bitfinex买入推高价格,其他平台跟随确认突破:AICoin PRO版主力数据及秒级周期K线显示:在今天7点的这轮上涨中,07:00:11,Bitfinex BTC/USDT主动买入183.62BTC,买入价格9749.3,被卖价格9777美元,滑点高达42.7美元,把价格推至9791美元。 随后的07:00:12,BitMEX开始出现大额主动买入,41秒内主动买入7笔,共计1442万美元。 差不多相同时间,火币BTC季度合约上亦出现大量主动买入单子。72秒内,有16笔,共计2560万美元成交。 此位置为三角形上沿及日线级别下降趋势线附近,可见大量的买入确认了突破。三分钟后市场开启大幅度拉升。[2020/6/2]
北京时间2020年11月17日,PeckShield监控到稳定币OUSD遭到重入攻击。OUSD是OriginProtocol推出的一种与美元挂钩的ERC-20稳定币,用户可通过将基础稳定币存入Origin智能合约来铸造OUSD稳定币,之后该协议会将基础稳定币投资于多个DeFi协议并进行收益耕作,为OUSD持有者赚取回报。
主力数据复盘:大量主力恐慌性平空买入推高了价格:AICoin PRO版K线主力数据显示,在此轮拉升中,多个平台都出现了大量的大额买入平空单,大量的买入推高了价格。
最先是火币BTC季度合约在28日17:00~19:00中短时挂起7笔,共计2333.19万美元大额委托买单并成交,买入均价9211美元。成交后,价格开始拉升。
20:50~22:50,OKEx BTC季度合约短时挂起25笔,共计6284.92万美元的大额委托买单并成交,买入均价9494.9美元。
05:15,BitMEX XBT永续合约市价主力市价买入1000万美元,买入价格9445.5美元,滑点41,价格向上插针至9523美元。不久后价格再度拉升至最高9629美元。
结合AI秒级持仓量分析,以上大部分买单成交后,持仓量均下降明显,可判断大部分均为买入平空单。
可见,大量主力恐慌性的平空买入推高了价格。[2020/5/29]
重入攻击重现凭空创造2050万枚OUSD
复盘:405万张主力卖出后价格迅速回落:AICoin PRO版K线主力成交数据显示:BitMEX XBT永续合约从4月23日23:00至今在小时周期中做上涨中继平台。
10:05分,价格接近平台上沿压力线,并突破。突破后,并无主力买入单子跟进,相反有2笔,共计405.97万美元的主力卖出单子。因此可判断为假突破,随后价格迅速回调,最高点最低点相差近200美元。 当前,价格仍然比较接近上沿线,请密切留意主力成交情况。[2020/4/29]
PeckShield?通过追踪和分析发现,首先,攻击者从dYdX闪电贷贷出70,000枚ETH;
随后,在UniswapV2中先将17,500枚ETH转换为785万枚USDT,再将所贷剩余的52,500枚ETH?转换为2099万枚DAI;
动态 | 主力大单跟踪复盘:昨晚有主力做多:AICoin PRO版K线显示:昨晚快讯提到的三笔单笔超过千万美元的BTC季度合约委托单均为买单,其中价格为9900美元的委托买单已于2月22日23:24分成交1491万美元后撤单,结合AI-PD-持仓差值分析,这一过程持仓量增长明显,该单或是主力开多。此外,在凌晨00:08分,火币BTC季度合约亦有一笔价格为9935USD,成交数量为1619万美元的买单成交,持仓量同样放大,因此或亦为主力开多。主力开多12小时后,加密货币市场集体上涨,比特币现货价格一度拉升至9943美元。[2020/2/23]
接下来,攻击者分四次铸造OUSD稳定币:
第一次通过mint()函数铸造OUSD时,攻击者确实在Origin智能合约中存放了750万枚USDT,并获得750万枚OUSD;
第二次通过mintMultiple()多种稳定币函数铸造OUSD时,攻击者在Origin智能合约中存放了2050万枚DAI和0枚假“稳定币”,并在此步骤中通过重入攻击来攻击合约。攻击者将2050万枚DAI和0枚假“稳定币”存入VaultCore中,此时智能合约收到2050万枚DAI,在尝试接收0枚假“稳定币”时,攻击者利用恶意合约进行劫持,在智能合约正常启动铸造2050万枚OUSD之前,调用mint()函数,先恶意增发了2050万枚OUSD,此次恶意增发由VaultCore合约调用rebase()函数实施。
值得注意的是,为顺利实施劫持,攻击者在上述mint()函数调用时,真金白银地存入了2,000枚USDT,同时获得第三次铸币2,000枚OUSD。随后,调用oUSD.mint()函数第四次铸造2050万枚OUSD。
rebase指代币供应量弹性调整过程,即对代币供应量进行“重新设定”。在DeFi领域有一类代币拥有弹性供应量机制,即每个代币持有用户的钱包余额和代币总量会根据此代币价格的变化而等比例变动。此时,攻击者共获得2800.2万枚OUSD,包括抵押的750万枚USDT、2050万枚DAI和2000枚USDT。由于调用rebase()函数,攻击者所获得的OUSD总计上涨至33,269,000枚。?
最后,攻击者先用所获得的33,269,000枚OUSD赎回1950万枚DAI、940万枚USDT、390万枚USDC;再在Uniswap中将1045万枚USDT兑换为22,898枚ETH,将390万枚USDC兑换为8,305枚ETH,将190万枚DAI兑换为47,976枚ETH,共计79,179枚ETH,并将其中70,000枚ETH归还到dYdX闪电贷中。
据PeckShield统计,攻击者在此次攻击中共计获利11,809枚ETH和2,249,821枚DAI,合计770万美元。
对于次攻击事件,OriginProtocol官方回应称,正在积极采取措施,以期收回资金。
随着DeFi生态的蓬勃发展,其中隐藏的安全问题也逐渐凸显,由于DeFi相关项目与用户资产紧密相连,其安全问题亟待解决。
对此,PeckShield相关负责人表示:“此类重入攻击的发生主要是由于合约没有对用户存储的Token进行白名单校验。DeFi是由多个智能合约和应用所组成的’积木组合’,其整体安全性环环相扣,平台方不仅要确保在产品上线前有过硬的代码审计和漏洞排查,还要在不同产品做业务组合时考虑因各自不同业务逻辑而潜在的系统性风控问题。”
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。