分析:Nomad Bridge黑客攻击的独特之处

分析:Nomad Bridge黑客攻击的独特之处

未标题-3

2022年8月1日,Nomad桥的各种资产被抽走了1.9亿美元。这次的漏洞特别在于,它是第一次由普通公众积极参与的黑客攻击。

Nomad Bridge的黑客攻击最初是由一个人策划的,但很快,普通用户就能发现最初黑客利用的bug,并通过简单地使用Ctrl+C,Ctrl+V来利用它。

本文将深入研究这种攻击最初是如何成为可能的。

Nomad是什么?

Nomad是一个跨链桥,允许用户在链之间转移加密资产,但转移从未真正发生。Nomad运行多个智能合约,在原始链上销毁资产,并在新链上铸造资产。这就是为什么当我们利用跨链转移资产时,我们将拥有wETH而不是ETH。Wrapped Ether是与其他链兼容的Ether的镜像版本。

Nomad黑客的分析

截屏2022-08-03 上午11.12.22

黑客攻击发生在前天,攻击发起者发现并开始利用一个弱点。人们很快就明白了被利用的是什么,并开始复制粘贴漏洞,以便自己从Nomad桥中吸走资产。这实际上掏空了Nomad的钱包——几小时内从1.9亿美元减至700美元。

截屏2022-08-03 上午11.13.26

这种前所未有的机会主义攻击之所以成为可能,是因为它非常容易复制。为了复制黑客,我们所要做的就是复制黑客的交易调用数据,并用自己的地址替换原来的地址。

最初是什么让黑客攻击发生的?

该漏洞是由nomad智能合约文件Replica.sol中的一个错误造成的。此外,根据Nomad GitHub存储库中的审计报告,审计团队实际上已经标记了这个特殊的弱点,并得到了团队的承认。

扫描二维码关注公众号,回复: 15751046 查看本文章

更具体地说,问题源于下面的process()函数,在 Replica.sol 文件的第 192 行:

require(acceptableRoot(messages[_messageHash]), "!proven");

这一行本身并没有本质上的错误,因为它通常会确保请求来自智能合约认为可接受的根。

require()是一个内置的Solidity函数,它确保只有授权的地址才能在特定的智能合约上执行操作。不幸的是,在41天前,该团队在合约merkle根启动过程中犯了一个错误,添加了0x00作为可接受的根。这意味着每个人的钱包地址都是该合约的可接受根,并且能够成功地调用合约的各种函数。

一个糟糕的merkle根初始化是这个问题的根本原因。一旦漏洞被发现,它就非常容易被复制,人们开始从Nomad中吸走资金。一些人承诺把钱还回去。

Source:https://cryptomaton.medium.com/the-great-nomad-bridge-hack-inside-the-first-decentralised-crowd-looting-event-98af2c5444f8

关于

ChinaDeFi - ChinaDeFi.com 是一个研究驱动的DeFi创新组织,同时我们也是区块链开发团队。每天从全球超过500个优质信息源的近900篇内容中,寻找思考更具深度、梳理更为系统的内容,以最快的速度同步到中国市场提供决策辅助材料。

Layer 2道友 - 欢迎对Layer 2感兴趣的区块链技术爱好者、研究分析人与Gavin(微信: chinadefi)联系,共同探讨Layer 2带来的落地机遇。敬请关注我们的微信公众号 “去中心化金融社区”

img

猜你喜欢

转载自blog.csdn.net/chinadefi/article/details/126138237