ROOT:惊天魔盗,近2亿美金损失,Nomad Bridge攻击事件分析-ODAILY

北京时间2022年8月2日,CertiK安全团队监测到NomadBridge遭受攻击,导致了价值约1.9亿美元的损失。

合约的问题在于在initialize()函数被调用的时候,“committedRoot”被设成了0x00地址。因此,攻击者可以通过消息的验证,将在桥合约中的代币转移。

攻击步骤

①攻击者调用process()函数开始攻击。

②process()函数中调用了acceptableRoot(messages),这个函数检查了被提交的root以及OptimisticTimeOut是否过期。

Wintermute创始人:不会投资三箭资本和CoinFlex拟议的新交易所:1月17日消息,加密货币做市商Wintermute创始人Evgeny Gaevoy发推文称:“由于我们正在讨论取消这些东西,如果你正在投资CoinFlex和三箭资本的‘交易所’,你可能会发现在未来与Wintermute合作(在关系建立方面)会有点困难。类似地,我们不会参与风险投资,因为这些人即将进入资本上限表,所以创始人要小心。”

金色财经此前报道,三箭资本创始人计划筹集2500万美元,与CoinFlex合作启动新加密货币交易所,旨在开始提供加密货币破产索赔交易,尽管三箭资本透露新加密货币交易所名为“GTX”,但CoinFlex称,不会使用GTX作为名称,GTX只是一个占位符名称。[2023/1/17 11:15:47]

Zebec联合Visa推出实体借记卡Zebec Card:11月17日消息,流支付生态Zebec与知名支付巨头Visa,联手推出了实体借记卡Zebec Card,该卡允许用户使用加密货币,在Visa签约的6000万家支付商户中进行支付消费,并有望获得消费现金返还。

目前, 任何具备美国政府签发的身份证以及地址证明的用户,都可以以无需信用检查或资产抵的方式申请Zebec Card ,该卡没有年费以及交易费用,是目前市场上费用最低的借记卡之一。

除了能够使用加密货币作为支付手段外,用户也可以通过向Zebec Card卡中质押$ZBC通证,来获得0.25%~7%的消费现金返还。 Zebec Card的推出,将推动加密货币在支付领域的大规模采用,并有望加速其流支付生态的发展进程。

Zebec协议创立于2021年,是具有税收功能的链上工资流支付产品之一,也是一个获准加入Visa计划的生态项目。Zebec目前已经发布了基于Zk-Rollup的流支付公链Zebec Chain的解决方案,揭示了该公链隐私保护、高迸发以及合规的主要优势,便于为更多web3生态应用集成流支付特性,并将在2023年Q3正式上线。

目前,其投资者包括Coinbase、Distributed Global、OKX Blockdream Ventures 、Circle Venture、Shima Captial等20多家全球一线投资机构。[2022/11/17 13:15:23]

③此时函数acceptableRoot(messages)返回了true,也就是说这条message就被批准了。这是因为0x0000在初始化过程中被设置为了true。

某地址从Curve上USDD/3CRV池移除约280万美元的流动性:11月14日消息,派盾(PeckShield)监测显示,0xdb29开头的地址已从Curve上USDD/3CRV池移除约280万美元的流动性,目前该流动性池中USDD占比约81%。[2022/11/14 13:02:10]

④当这条message被批准后,攻击者即可从桥中转移资金。

攻击交易

攻击示例:

IOHK:vasil是迄今为止最重要的卡尔达诺升级:金色财经报道,根据Twitter 上 Input Output (IOHK)的一份声明,Cardano的vasil升级将于9月22日进行。vasil升级旨在提高Cardano区块链的可扩展性,同时降低交易成本。该版本原定于夏季早些时候发布,但由于稍有延迟,现在将在9月发布,在以太坊合并几天后。

在所有核心组件成功完成和广泛测试之后,加上确认社区准备就绪,我们与卡尔达诺基金会今天可以宣布 9 月 22 日在卡尔达诺主网上进行Vasil升级,

IOHK补充道,vasil 是“迄今为止最重要的卡尔达诺升级,?带来了更大的网络容量和更低的交易成本。”?该公司还表示,随着智能合约平台 plutus 的增强,开发人员将能够创建更强大、更高效的基于区块链的应用程序。

IOHK由Cardano创始人Charles Hoskinson和Jeremy Wood于2015年推出。其重点是卡尔达诺区块链的研发。卡尔达诺团队分为三个独立的以卡尔达诺为中心的实体,包括卡尔达诺基金会和 Emurgo,以及 IOHK。[2022/9/4 13:07:34]

○在MoonbeamBridge上转移了0.01WBTC:https://moonscan.io/tx/0xcca9299c739a1b538150af007a34aba516b6dade1965e80198be021e3166fe4c

○在EtheremBridge接受了100WBTC代币转移:https://etherscan.io/tx/0xa5fe9d044e4f3e5aa5bc4c0709333cd2190cba0f4e7f16bcf73f49f83e4a5460

漏洞分析

在Replica合约中,“committedRoot”被错误地初始化为0。

合约地址:https://etherscan.io/address/0x88a69b4e698a4b090df6cf5bd7b2d47325ad30a3

函数process通过调用函数acceptableRoot()确保messagehash能通过验证。

函数acceptableRoot()会检查root是否已经被proven,processed或者confirmed。

然而在初始化的交易中0x53fd92771d2084a9bf39a6477015ef53b7f116c79d98a21be723d06d79024cad,owner传入了0x00并且它对应的`confirmAt`也会在初始化中被设为1。

因此0x00可以被当作一个`acceptableRoot`,这也可以在replica合约中查询到https://etherscan.io/address/0xb92336759618f55bd0f8313bd843604592e27bd8。

Prove函数的实现导致了一条unprovenmessage的root是0,而0作为一个有效的confirmedroot可以通过require的检查。攻击者只需调用process函数就能从桥中转移资金。

资金去向

大约价值1.9亿美元的代币从桥合约中转移出去。

https://defillama.com/protocol/nomad?denomination=USD

写在最后

由于该问题是由部署参数中的错误引起的,我们假设所有的部署和配置都是正确的,那么在传统的审计中确实很难发现该问题。然而,在包含验证部署过程等更广泛的审计过程中,是可以有效指出该问题的。

CertiK可提供部署阶段后的附加服务——合约验证,其中包括对智能合约的分析和部署后合约验证的深入分析。

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

金星链

[0:15ms0-1:314ms