| 关键词: 攻击者 地址 合约 资金 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
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: 地址2: 两条地址的余额情况 地址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 地址: 攻击者2 在此次事件获利约 4000 万美元,涉及普通地址 1 个及合约地址 200 个。攻击者2 直接调用项目方漏洞合约进行了一次攻击获取 3 WBTC,之后全部都是调用合约对 Nomad 资金池进行攻击,合约获得资金后将资金直接转移到了地址7179 中,之后资金都未发生移动。 目前地址7179 中余额 17.74 ETH、39753037.51 DAI。 攻击者3 攻击者3 在此次事件中获利 1000 多万美元,是一个合约地址。 通过分析发现,此合约被调用 65 次攻击Nomad资金池,每次攻击后都将获得的资金转入至地址 攻击者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 个,全部通过地址 攻击者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/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|