金色观察|“首次去中心化抢劫”:还原Nomad被攻击始末
8月2日7时,加密KOL @0xfoobar发推称,跨链互操作性协议Nomad桥正在被黑客攻击,WETH和W BTC 正以每次百万美元的频次转出,合约中仍有1.26亿美元可能存在风险。提醒用户尽快提取资金。最近的一次就有1万枚 以太坊 (约合1600万美元)转出,Nomad桥还有8000万美元的 USDC 正在流出。
Nomad官方团队称,已知晓涉及 Nomad 代币桥的事件,目前正在调查中。受该事件影响,Moonbeam称:Moonbeam 网络已进入维护模式,以调查网络上部署的智能合约的安全事件。在此期间,功能将受到限制,用户将无法执行常规用户交易和智能合约交互。治理、质押、取消暂停和升级的能力将继续有效。
截至目前,据defillama数据显示,Nomad TVL 中超过 1.9 亿美元的加密货币在几小时内被撤出,钱包中目前仅剩5336美元。 Terra 研究员FatMan评论此次攻击事件称,这是以真正的加密方式——第一次去中心化的抢劫。
对此,投资机构Paradigm研究员@samczsun试图还原黑客攻击的全过程:
1,一切都开始于@officer_cia分享@spreekaway ETH Security Telegram 频道的推文。尽管当时并不知道发生了什么事,但从桥上撤离的大量资产来看显然是一个不好的信号。
2,第一个想法是代币的小数点配置有误。毕竟,桥上好像在运行“发送 0.01 WBTC,返还 100 WBTC”的促销活动。
3,然而,在 Moonbeam 网络上进行了一些手动挖掘之后,确认虽然 Moonbeam 交易确实桥接了 0.01 WBTC,但以太坊交易以某种方式桥接了 100 WBTC。
4,此外,在 WBTC 中桥接的交易实际上并没有证明什么。它只是直接调用了`process`。可以说,能够在不首先证明的情况下处理消息是非常不好的
5,在这一点上,有两种可能性。要么是在较早的区块中单独提交了证明,要么是 Replica 合约存在严重错误。但是,绝对没有迹象表明最近有任何事情被证明。
6, 这只剩下一种可能性——副本合约存在致命缺陷。但是怎么做?快速浏览表明提交的消息必须属于可接受的根。否则,第 185 行的检查将失败。
7,幸运的是,有一种简单的方法可以检查这个假设。知道没有被证明的消息的根是 0x00,因为messages[_messageHash] 将未初始化。接下来所要做的就是检查合同是否会接受它作为根。
8,事实证明,在例行升级期间,Nomad 团队将可信根初始化为 0x00。需要明确的是,使用零值作为初始化值是一种常见的做法。不幸的是,在这种情况下,它具有自动验证每条消息的微小副作用。
9,这就是黑客如此混乱的原因——你不需要了解 Solidity 或 Merkle Trees 或类似的东西。你所要做的就是找到一个有效的交易,用你的地址找到/替换对方的地址,然后重新广播它。
10,例行升级将零哈希标记为有效根,这具有允许在 Nomad 上欺骗消息的效果。攻击者滥用它来复制/粘贴交易,并在疯狂的混战中迅速耗尽了桥。
A16z应用安全成员Matt Gleason 发推介绍了Nomad 被攻击的原因 :
Nomad 桥以与 Qubit 的 QBridge 类似的方式获得。桥的不安全配置导致特定路径允许发送任何事务。错误出现在 Replica 的“进程”函数中。
Process 旨在确保消息已被证明,然后处理该消息,这通常应该没问题。
它使用acceptableRoot 来执行此操作,它将检查根是否已被证明或在当前时间之前已被确认。
出现这个问题是因为在 solidity 中,如果一个映射键在此之前没有被看到,那么它将默认为零,从而导致尝试确认根值为零。但是,由于它们初始化时使用的是 0 的 confirmed Root ,这意味着零在技术上是一个已确认的根。
因此,系统会接受任何以前从未见过的消息,并将其当作真实消息来处理,这意味着你所需要做的就是要求所有的桥的钱,你就会得到它。
Paradigm工程师@ParadigmEng420发推 提醒用户如果在Nomad 、Evmos、Moonbeam、Milkomeda有任何资金,需要交换出游牧资产,并使用不同的跨链桥,尽快回到以太坊或另一个链。 他还指出,Nomad 暂停了中继器,并试图使用观察者审查所有桥接交易,但是,这可能没什么帮助,因为漏洞利用是在合同方面而不是在基础设施方面。
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum