http://www.7klian.com

OUSD遭“经典重入进攻”损失770万美元,DeFi安详亟待办理

接下来,进攻者分四次锻造 OUSD 不变币:

随后,在 UniswapV2 中先将 17,500 枚ETH 转换为 785万 枚USDT,再将所贷剩余的 52,500 枚ETH转换为 2099万 枚DAI;

北京时间 2020 年 11 月 17 日,PeckShield 监控到不变币 OUSD 遭到重入进攻。OUSD 是 Origin Protocol 推出的一种与美元挂钩的 ERC-20 不变币,用户可通过将基本不变币(譬喻 USDT、USDC、DAI)存入 Origin 智能合约来锻造 OUSD 不变币,之后该协议会将基本不变币投资于多个 DeFi 协议并举办收益耕耘,为 OUSD 持有者赚取回报。

重入进攻重现 凭空缔造2050万枚OUSD

PeckShield 通过追踪和阐明发明,首先,进攻者从 dYdX 闪电贷贷出 70,000 枚ETH;

对付次进攻事件,Origin Protocol 官方回应称,正在努力采纳法子,以期收回资金。

跟着 DeFi 生态的发达成长,个中埋没的安详问题也逐渐凸显,由于 DeFi 相关项目与用户资产细密相连,其安详问题待办理。

最后,进攻者先用所得到的 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 闪电贷中。

OUSD遭“经典重入打击”损失770万美元,DeFi和平亟待治理

据 PeckShield 统计,进攻者在此次进攻中共计赢利 11,809 枚ETH 和 2,249,821 枚DAI,合计 770万 美元。

第二次通过 mintMultiple() 多种不变币函数锻造 OUSD 时,进攻者在 Origin 智能合约中存放了 2050万 枚DAI 和 0 枚假“不变币”,并在此步调中通过重入进攻来进攻合约。进攻者将 2050万 枚DAI 和 0 枚假“不变币”存入 VaultCore 中,此时智能合约收到 2050万 枚DAI,在实验吸收 0 枚假“不变币”时,进攻者操作恶意合约举办挟制,在智能合约正常启动锻造 2050万 枚OUSD 之前,挪用 mint() 函数,先恶意增发了 2050万 枚OUSD,此次恶意增发由 VaultCore 合约挪用 rebase() 函数实施。

rebase 指代币供给量弹性调解进程,即对代币供给量举办“从头设定”。在 DeFi 规模有一类代币拥有弹性供给量机制,即每个代币持有用户的钱包余额和代币总量会按照此代币价值的变革而等比例变换。此时,,进攻者共得到 2800.2万 枚OUSD,包罗抵押的 750万 枚USDT、2050万 枚DAI 和2000 枚USDT。由于挪用 rebase() 函数,进攻者所得到的 OUSD 总计上涨至 33,269,000 枚。

重入进攻是以太坊智能合约上最经典的进攻手段之一,著名的 the DAO 被盗事件就是进攻者运用重入进攻导致以太坊硬分叉,损失代价 5000 万美元以太币。

自本年4月起,DeFi 项目频遭重入进攻。4月18日,黑客操作 Uniswap 和 ERC777 尺度的兼容性问题缺陷实施重入进攻;4月19日,Lendf.Me 也遭到雷同重入进攻;11月14日,黑客操作 Akropolis项目标 SavingsModule 合约在处理惩罚用户存储资产时存在的某种缺陷持续实施了 17 次重入进攻,损失 203万 枚DAI。

对此,PeckShield 相关认真人暗示:“此类重入进攻的产生主要是由于合约没有对用户存储的 Token 举办白名单校验。DeFi 是由多个智能合约和应用所构成的’积木组合’,其整体安详性环环相扣,平台方不只要确保在产物上线前有过硬的代码审计和裂痕排查,还要在差异产物做业务组适时思量因各自差异业务逻辑而潜在的系统性风控问题。”

克日,PeckShield 监控到 DeFi 协议 Origin Protocol 不变币 OUSD 遭到进攻,进攻者操作在衍生品平台 dYdX 的闪电贷举办了重入进攻(Re-entrancy attack),造成代价 770万 美元的 ETH 和 DAI 的损失。

值得留意的是,为顺利实施挟制,进攻者在上述 mint() 函数挪用时,真金白银地存入了 2,000 枚USDT,同时得到第三次铸币 2,000 枚OUSD。随后,挪用 oUSD.mint() 函数第四次锻造 2050 万枚OUSD。

OUSD遭“经典重入打击”损失770万美元,DeFi和平亟待治理

第一次通过 mint() 函数锻造 OUSD 时,进攻者确实在 Origin 智能合约中存放了 750万 枚USDT,并得到 750万 枚OUSD;

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读