首页 资讯 安全 查看内容

Web3史上首次黑客“混战”:Nomad跨链桥被攻击事件分析

2022-8-20 21:43 1645 0

摘要: 就在本月初,一个名为 Nomad 的跨链桥协议,遭受到了 Web3.0 有史以来最混乱的一次黑客攻击,攻击发生期间 WETH 和 WBTC 以每次百万美元的速度被持续转出,参与此次攻击的黑客地址超 500 条,短时间内,Nomad 跨链桥 ...
关键词: 攻击者 地址 合约 资金 Nomad 攻击 区块 此次 黑客 项目


就在本月初,一个名为 Nomad 的跨链桥协议,遭受到了 Web3.0 有史以来最混乱的一次黑客攻击,攻击发生期间 WETH 和 WBTC 以每次百万美元的速度被持续转出,参与此次攻击的黑客地址超 500 条,短时间内,Nomad 跨链桥中锁定的近 2 亿美元资产被洗劫一空。


从 Multichain 到 Axie Infinity 侧链 Ronin ,再到如今的 Nomad 跨链桥,公开数据统计显示,自今年年初以来,黑客们通过跨链桥已经窃取了超过 14 亿美元。频发的区块链安全事件中,跨链桥俨然成为了网络犯罪分子们的“新宠”。


跨链和跨链桥

跨链技术伴随着区块链的发展一直存在。


由于以太坊是第一个支持完全可编程的智能合约网络,所以大部分智能合约应用都部署在以太坊主网上。但随着用户对智能合约需求的不断增加,以太坊上的计算资源出现了供不应求的现象,这也导致了交易费的不断攀升。于是人们便寻求其他低成本的解决方案,将智能合约开始部署在其他 Layer 1 区块链、侧链以及 Layer 2 rollup 上,以此来满足用户和开发者的需求。然而,这些链上的资产之间无法直接流动,大大阻碍了整个区块链行业的发展,因此,可以使链间实现价值转移的跨链技术应运而生。


我们都知道,如今的区块链就像早期的互联网,各种公链各自发展,自成一套规则、协议和共识机制,相当于一个个独立的生态,它们之间并不相通,也就是人们常说的“价值的孤岛”。跨链就是连接这些“岛屿”——将孤立在两条或多条平行公链上的资产,进行直接流通的一种技术;跨链桥则是公链间资产跨链的一种工具。跨链并没有改变每个区块链上的价值总额,只是不同链上的地址之间进行了价值的兑换。


黑客频频“光顾”跨链桥

DeFi 加密资产规模的增长,促成了一个又一个“桥”的建成,跨链桥上的总锁仓量(TVL)也日益增大。因为跨链协议负责锁定资产,以支撑另一条链上的平行资产,所以该储存点很容易成为目标,引来黑客们的频繁“光顾”。


同时,跨链作为一项发展中的技术,其本身还存在很大的安全问题。由于跨链项目不仅仅是链上智能合约,还有链下的代码,无论哪一部分出现了问题,都会被黑客所利用。


知帆安全团队盘点了过去跨链桥中比较重大的 10 次攻击情况,其中 Ronin Network 被盗一事,更是被称为 DeFi 史上最大的黑客攻击事件,被盗金额高达 6.2 亿美元。



DeFi 安全事故频发,跨链桥资金量大,并且频繁遭受攻击。此次 Nomad 跨链桥被洗劫一事,更是被网友戏称,“甚至连「黑客技术」都没有用到”。


Nomad被攻击始末

北京时间 8 月 2 日,跨链互操作性协议 Nomad 桥遭黑客攻击,Nomad 上近 2 亿美元的 TVL 在短时间内被攻击者“掏空”。起因是一名黑客发现了 Nomad 跨链桥合约副本存在一个巨大漏洞,其盗币完成后将此漏洞在社交平台公布,引发众人竞相效仿,哄抢平台中的资产。


此次攻击事件堪称一场 Web3.0版“薅羊毛”——黑客薅完平台羊毛,还把方法发在了“羊毛群”,引发众羊毛党一拥而上,直接把平台“薅”垮。


1、漏洞分析

1-1合约地址

  • 此次事件的漏洞合约地址为:

0x5d94309e5a0090b165fa4181519701637b6daeba

0xB92336759618F55bd0F8313bd843604592E27bd8

  • Nomad 桥资产合约地址为:

0x88A69B4E698A4B090DF6CF5Bd7B2D47325Ad30A3


1-2攻击过程

此次攻击分为四步进行:


Step1

攻击者调用了 Replica 合约中的 process 函数。


Step2

process 函数调用了 acceptableRoot(message[_messageHash]),这个函数是保证提交过的 message 被验证过。但由于 acceptableRoot(0x00) 在初始化的时候被设置成了 True,并且在 solidity 中如果 map 映射中没有对应的键的时候,它会自动返回 0,所以 message 就被设置为了 0,这样攻击者就绕过了 require 的检查。



Step3

进入到了 acceptableRoot(_root) 函数,_root 为 0 时,confirmAt[0]=1,保证了 confirmAt[_root] 满足不为零且小于等于 block.timestamp 的值。



Step4

然后回到 process 函数中,在了解了上述漏洞产生的原因后,只需要每次输入没有被使用过的 _messageHash ,就能在 messages mapping 中获取到 0 值,从而绕过 !proven 的检测,最终从跨链桥上盗取资产。


由于 Replica 合约初始化时,默认零值为 True,导致之后合约中的 confirmAt[0x000…000] 均为 true。在 process 方法中可直接通过判断条件,导致每条消息在默认情况下都被证明有效,项目方的资金池就成了一个大众都可以提钱的公共的资金池。


总而言之,就像引发这个恶性事件的匿名 discord 消息所说的一样,任何人只需要复制第一个黑客的交易并更改地址,然后点击通过 Etherscan 发送,“就可以在 Nomad 桥上搞到三千到两万美元”。



2、链上分析

由于方法极其简单,而且 Nomad 项目方没有紧急停止机制,此次攻击事件有大量普通用户参与其中。8 月 3 日官方发布返还被盗资金说明,请求白帽黑客将资金返还到官方资金回收钱包,并在 5 日补充称,“将为归还至少 90% 所盗资金的攻击者提供最高 10% 的奖励”。


知帆安全团队对此次 Nomad 跨链桥攻击事件的相关地址进行了分析,从链上获取了自 UTC 时间 2022 年 8 月 1 日 21:32至 2022 年 8 月 2 日 0:05 时间内的 1206 条交易,共涉及 ETH 地址和合约 585 个,币种 14 个。


这些攻击地址分为两种,一是帮助项目减少损失的白帽地址,二是从事恶意攻击的黑客地址。我们来重点分析一下恶意攻击的黑客地址。


经过分析判断,获利额度在百万美元以上的黑客地址实体有 10 个,获利情况如下图:



接下来,我们分别看一下每个攻击者实体具体的资金流向。


攻击者1

攻击者1 在此次攻击中获利约 6000 万美元,涉及普通地址 2 个与合约地址 11 个。攻击者1 获取 Nomad 项目资金的方式主要有三种。


第一种:地址直接调用项目方的漏洞合约,给自己的地址转币。



第二种:地址通过自建合约调用项目方的漏洞合约,将项目方资金转到自建合约后再转到自己地址。



第三种:地址通过自建合约调用项目方的漏洞合约,将项目方资金转到自建合约后再进行换币操作兑换为 ETH,随后将 ETH 提到自己的地址或者与自己相关的地址。



目前攻击者0在Nomad项目中获取的资金,全部保存在 2 条普通地址中,未发生转移。


地址1:
0x56d8b635a7c88fd1104d23d632af40c1c3aac4e3

地址2:
0xb5c55f76f90cc528b2609109ca14d8d84593590e


两条地址的余额情况

地址1:12,869.99 ETH、10203.49 WETH、7123204.2 DAI、37514864.7 CQT、12502.96 FXS;

地址2:810.95 ETH、3450068.37 DAI、103 WBTC、300 WETH、2706359.86 CQT、14004.36 FXS。


攻击者2

攻击者2 地址:
0xbf293d5138a2a1ba407b43672643434c43827179。


攻击者2 在此次事件获利约 4000 万美元,涉及普通地址 1 个及合约地址 200 个。攻击者2 直接调用项目方漏洞合约进行了一次攻击获取 3 WBTC,之后全部都是调用合约对 Nomad 资金池进行攻击,合约获得资金后将资金直接转移到了地址7179 中,之后资金都未发生移动。


目前地址7179 中余额

17.74 ETH、39753037.51 DAI。


攻击者3

攻击者3 在此次事件中获利 1000 多万美元,是一个合约地址。

通过分析发现,此合约被调用 65 次攻击Nomad资金池,每次攻击后都将获得的资金转入至地址
0x56178a0d5f301baf6cf3e1cd53d9863437345bf9
,目前资金仍存在于这个地址中。


攻击者4

攻击者4 在此次事件中获利约 800 万美元,涉及普通地址 11 个。

攻击者4 在 Nomad 项目中获取资金后,将所获得的币种全部兑换为了 ETH,共计 4788.99 ETH。之后通过三个地址充值到了 Tornado 中进行混币操作。


攻击者5

攻击者5 在此次事件中获利 740多万美元,涉及普通地址 3 个及合约地址 4 个。

攻击者5 在 Nomad 项目中获取资金后,将资金全部兑换为了 ETH,其中有 540 ETH 通过 3 个地址中的一个被充值到 Tornado 进行混币,剩下的全部留在了剩下的两个地址中,共计 3129.29 ETH。


攻击者6

攻击者6 在此次事件中获利 600 多万美元,涉及普通地址 2 个及合约地址 20 个。


攻击者6 在 Nomad 项目中获取资金后,进行过换币提币的操作,目前全部资金都沉淀在两个地址中,余额为 1197354.04 CQT、450120 C3、5750025.15 DAI、133.91 ETH。


攻击者7

攻击者7 在此次事件中获利 500 多万美元,涉及地址 3 个。


攻击者7 在 Nomad 项目中获得资金后,全部兑换为了 ETH,共计 3100.72 个,全部通过地址
0x72ccbb2002254bd8a0485d13a3a2faa9b0f992c6
充值到 Tornado 进行混币。


攻击者8

攻击者8 在此次事件中获利约 440 万美元,涉及普通地址 2 个及合约地址 2 个。

攻击者8 在 Nomad 项目中获取资金后全部兑换为了 ETH,之后在两个地址上沉淀,共计 2223.03 个 ETH。


攻击者9

攻击者9 在此次事件中获利约 175 万美元,涉及地址 2 个。

攻击者9 在项目 Nomad 中获取资金后,将其中的一部分兑换为 71.51 个 ETH 在其中一个地址沉淀,其余币种也全部都留在这两个地址未发生转移。


攻击者10

攻击者10 在此次事件中获利 140 多万美元,涉及地址 1 个。

攻击者10 在项目 Nomad 中获取资金后,进行过两笔换币,将 USDC 和 FRAX 兑换为了 DAI,之后资金在此地址沉淀,目前地址中余额为:1402215.46 DAI、150040 CQT。


3、总结

8月18日,Nomad 发布了“复苏之路”计划,将在未来几月内重启跨链桥和分配回收资金。截止发稿,近 20%(3700 万美元)的被盗资金已返还至 Nomad 资金回收地址,目前仍有大量资金沉淀在攻击者地址中。预计黑客后续将会通过 Tornado 等混币平台洗钱以逃避追踪,知帆安全团队将持续关注攻击者地址。


安全提醒

Nomad 平台通过悬赏的方式以期追回资产,再一次将虚拟货币领域的安全问题暴露在大众视野。随着虚拟货币市场的快速增长,网络安全问题也日益凸显,网络犯罪频频发生,一度造成严重后果。此次 Nomad 被攻击事件中,如果黑客不打算归还资金,那么官方将难追回这部分损失。


知帆安全团队提醒加密机构不断寻求可靠的安全措施,以保证平台和用户的资产安全,同时提醒广大用户,目前区块链技术尚处于早期发展阶段,仍存在很大的风险,全球相关监管和措施也尚不完备,投资需谨慎。对于监管和执法机构来说,未来还会有许多区块链安全事件发生,监管和执法上都将面临极大的挑战。知帆科技作为行业领先的区块链大数据分析安全公司,一直利用自身在区块链大数据领域的优势和积累,帮助公安等监管机构解决涉虚拟货币相关案件查证难题,为共同构建区块链生态安全不断努力。

本文出处: https://www.toutiao.com/article/7133535927053419008/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部