本次攻击发生的主要原因是资金池合约初始化函数没有任何鉴权和防止重复调用初始化的限制,攻击者利用漏洞将假币换成真币转出。
原文标题:《狸猫换太子——DODO被黑分析》撰文:慢雾安全团队
据消息,去中心化交易平台DODO的wCRES/USDTV2资金池被黑客攻击,转走价值近98万美元的wCRES和近114万美元的USDT。DODO表示,团队已下线相关资金池建池入口,该攻击仅影响DODOV2众筹池,除V2众筹池之外,其他资金池均安全;团队正在与安全公司合作调查,并努力挽回部分资金。
慢雾安全团队在第一时间跟进并分析,下面将细节分析给大家参考。
AFME提出关于DeFi潜在监管方法的建议:金色财经报道,欧洲金融市场协会(AFME)发表了一篇关于DeFi的论文。随着欧盟最近采用加密资产市场(MiCA)法规,DeFi基本上被忽略了。该文件包括AFME关于潜在监管方法的建议。该论文称,当前的DeFi工作可以被视为正规金融体系的外包创新和研发(R&D)实验室。随着DeFi侵蚀借贷和交易领域,现有企业渴望看到一个公平的监管领域。[2023/7/7 22:22:50]
攻击细节分析
通过查看本次攻击交易,我们可以发现整个攻击过程非常简单。攻击者先将FDO和FUSDT转入wCRES/USDT资金池中,然后通过资金池合约的flashLoan函数借出wCRES和USDT代币,并对资金池合约进行初始化操作。
声音 | Interchange联合创始人:美国国会官员关于比特币的讨论都是对比特币的支持:针对近期美国国会Libra听证会上的讨论,美联储主席Jerome Powell将比特币称为“价值投机存储”,Interchange联合创始人Dan Hedl表示,主流官员的断言,将比特币与当前的黄金价值储备相比较是很重要的。每一条评论都是对比特币的热烈支持,我相信唯一的出路是向上(和监管层合作)。比特币现在需要做的就是证明它的合法性,这样它就可以被用作一种交易形式和价值储存手段。 同时对于美国财政部长Steve Mnuchin指责比特币是非法活动的主要渠道这一说法,Dan Hedl表示,监管机构目前对整个行业一无所知,但(该言论表明)存在一线希望的是他们正在学习。同时他们的重点不应放在加密货币上,而应放在法定货币上,原因在于“数十亿美元也被用于不法活动”。(AMBCrypto)[2019/7/22]
为何存入FDO和FUSDT代币却能成功借出wCRES和USDT,并且初始化资金池合约呢?是因为资金池的闪电贷功能有漏洞吗?
Reddit用户已创建三百万个加密货币钱包,以购买NFT头像:金色财经报道,Reddit首席产品官PaliBhat透露,迄今为止,已有超过300万Redditor使用Reddit的Vault区块链钱包创建了超过 300 万个加密钱包。 他说,其中大部分(250万个)是为了购买NFT头像而创建的,这些头像可以用作平台上的个人资料图片。(techcrunch)[2022/10/19 17:32:38]
接下来我们对flashLoan函数进行详细分析:
通过分析具体代码我们可以发现,在进行闪电贷时会先通过_transferBaseOut和_transferQuoteOut函数将资金转出,然后通过DVMFlashLoanCall函数进行具体外部逻辑调用,最后再对合约的资金进行检查。可以发现这是正常闪电贷功能,那么问题只能出在闪电贷时对外部逻辑的执行上。
本周NFT销售量略有上升:金色财经消息,截至7月2日通过cryptoslam获得的7天NFT销售数据,本周NFT销售量略有上升。在撰写本文时,18个不同的区块链记录了约154,366,090美元的NFT销售额,该指标比前一周高出约0.96%。[2022/7/3 1:47:19]
通过分析闪电贷的外部逻辑调用,可以发现攻击者调用了wCRES/USDT资金池合约的init函数,并传入了FDO地址和FUSDT地址对资金池合约进行了初始化操作。
到这里我们就可以发现资金池合约可以被重新初始化。为了一探究竟,接下来我们对初始化函数进行具体的分析:
通过具体的代码我们可以发现,资金池合约的初始化函数并没有任何鉴权以及防止重复调用初始化的逻辑,这将导致任何人都可以对资金池合约的初始化函数进行调用并重新初始化合约。至此,我们可以得出本次攻击的完整攻击流程。
攻击流程
攻击者先创建FDO和FUSDT两个代币合约,然后向wCRES/USDT资金池存入FDO和FUSDT代币。接下来攻击者调用wCRES/USDT资金池合约的flashLoan函数进行闪电贷,借出资金池中的wCRES与USDT代币。由于wCRES/USDT资金池合约的init函数没有任何鉴权以及防止重复调用初始化的逻辑,攻击者通过闪电贷的外部逻辑执行功能调用了wCRES/USDT资金池合约的初始化函数,将资金池合约的代币对由wCRES/USDT替换为FDO/FUSDT。由于资金池代币对被替换为FDO/FUSDT且攻击者在攻击开始时就将FDO和FUSDT代币存入了资金池合约,因最终通过了闪电贷资金归还的余额检查而获利。总结
本次攻击发生的主要原因在于资金池合约初始化函数没有任何鉴权以及防止重复调用初始化的限制,导致攻击者利用闪电贷将真币借出,然后通过重新对合约初始化将资金池代币对替换为攻击者创建的假币,从而绕过闪电贷资金归还检查将真币收入囊中。
参考攻击交易:
https://cn.etherscan.com/tx/0x395675b56370a9f5fe8b32badfa80043f5291443bd6c8273900476880fb5221e
免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。
DODO
DODO
DODO是一个由主动做市商算法驱动的去中心化交易平台。它的特点是具有高资本效率的流动性池,支持单边代币的流动性提供,减少无常损失,并能最小化交易滑点。DODO还提供SmartTrade-这是一种去中心化的流动性聚合器服务,通过智能路由支持任意代币之间的最优价格兑换。此外,DODO提供新资产发行平台,可自定义和实时调整资产比例、流动性深度、手续费率等,最大限度的降低了新资产发行的门槛。基于此,DODO开发了众筹建池以及面向专业链上做市商的可定制化灵活技术解决方案。DODO查看更多
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。