时间:2023-08-03|浏览:186
用戶喜愛的交易所
已有账号登陆后会弹出下载
原标题:OUSD遭“经典重入攻击”损失770万美元 DeFi安全亟待解决
近日,PeckShield监控到DeFi协议Origin Protocol的稳定币OUSD遭到攻击。攻击者利用在衍生品平台dYdX的闪电贷进行了重入攻击(Re-entrancy attack),导致价值770万美元的ETH和DAI损失。
重入攻击是以太坊智能合约中最经典的攻击手段之一,著名的theDAO被盗事件就是因为攻击者利用重入攻击导致以太坊发生硬分叉,损失了5000万美元的以太币。
从今年4月开始,DeFi项目频繁遭受重入攻击。4月18日,黑客利用Uniswap和ERC777标准的兼容性问题实施了重入攻击;4月19日,Lendf.Me也遭受了类似的重入攻击;11月14日,黑客利用Akropolis项目的SavingsModule合约中的某个缺陷实施了17次连续重入攻击,损失了203万枚DAI。
北京时间2020年11月17日,PeckShield监控到稳定币OUSD遭受了重入攻击。OUSD是Origin Protocol推出的一种与美元挂钩的ERC-20稳定币,用户可以通过将基础稳定币(例如USDT、USDC、DAI)存入Origin智能合约来铸造OUSD稳定币。之后,该协议将基础稳定币投资于多个DeFi协议,并为OUSD持有者赚取回报。
PeckShield通过追踪和分析发现,攻击者首先从dYdX闪电贷借出了70,000枚ETH;随后,在UniswapV2中将17,500枚ETH转换为785万枚USDT,将剩下的52,500枚ETH转换为2099万枚DAI。
接着,攻击者分四次铸造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是指对代币供应量进行弹性调整,即“此类重入攻击的发生主要是因为合约没有对用户存储的Token进行白名单校验。DeFi由多个智能合约和应用组成,整体安全性环环相扣。平台方不仅应确保在产品上线前进行严格的代码审计和漏洞排查,还应在不同产品做业务组合时考虑各自不同业务逻辑可能导致的系统性风险。”