当前位置:主页 > 区块链 > 资讯 > Ronin Bridge提取跨链资产异常

Ronin Bridge 出现异常提取跨链资产行为根本原因分析

2024-08-10 10:22:56 | 来源: | 作者:佚名
据区块链安全审计公司 Beosin Alert 监测显示,Ronin Bridge 项目出现异常提取跨链资产的行为,据 Beosin 安全团队分析,此次异常行为的根本原因在于项目方升级合约时,未正常初始化配置跨链交易确认所需的 operator 权重

注意安全风险

作者:Beosin

封面:Ronin

8 月 6 日,据区块链安全审计公司 Beosin Alert 监测显示,Ronin Bridge 项目出现异常提取跨链资产的行为。据 Beosin 安全团队分析,此次异常行为的根本原因在于项目方升级合约时,未正常初始化配置跨链交易确认所需的 operator 权重,导致合约中的 minimumVoteWeight 参数为零,从而使得任何人的签名都能通过跨链验证。

攻击交易链接:

https://etherscan.io/tx/0x2619570088683e6cc3a38d93c3d98899e5783864e15525d5f5810c11189ba6cb

图片

Beosin 目前正与项目方合作处理此次事件,本篇长文,我们也将与大家分析本笔交易存在异常的点在于两点:

首先,提取数量过高。在 Ronin Bridge 中,有跨链提取额度的限制,如果跨链提取的额度太大,则需要转至人工确认,而本次交易的跨链资产 WETH 的限制额度为 4000。此笔交易提取了 3996 个。当然这不是漏洞,但足以让人引起了注意。

其次,查看这笔提取交易发现,其跨链验证者 Operator 只有一个,且对应的操作权重为 0,那就可以确认这笔交易是存在问题的,因为在 Ronin Bridge 项目中,用户提取跨链资产需要得到多个 Operator 的签名,且累计的权重必须达到指定阈值。

事件分析:

分析链上合约和数据发现,合约 Operator 是对应的 Manager 合约独立管理,并且它是一个治理合约,专门用于管理 ronin bridge,查看其交易记录,发现最近一笔交易是对 Ronin Bridge 合约进行升级,并且就在异常交易之前。所以漏洞的大致方面就基本明确,应该是项目方升级合约所导致的问题。

图片

进一步深入,对比 Ronin Bridge 升级前后的代码发现,事件所使用的关键参数 “_totalOperatorWeight” 是本次升级新增的,并且需要在升级中调用 initializeV3 函数进行 V3 版本新增的 “OperatorWeight” 进行初始化。

图片

但遗憾的是:升级合约的交易中,并未调用 initializeV3 函数,而是错误调用 initializeV4 函数进行了 V4 版本的初始化。

图片

至此,该事件的漏洞原理已经明了,Ronin Bridge 项目方在合约升级时未正确对新增数据进行初始化,导致对应的关键数据 “_totalOperatorWeight” 始终为 0,使得任意用户的提取请求都可以通过审核。

至本文发布前,项目方已经确认该问题,并发文说了本次攻击行为是白帽所为,并已进行退款,并未造成过多的损失。这是一个好消息,但是也暴露了合约升级这一大易出错的点。

可升级合约


可升级合约是一种 solidity 智能合约设计方案,使得已部署的合约能够在未来进行升级或修改,而无需完全重新部署。这个概念的核心在于将合约的逻辑和数据分离,并利用 “delegatecall” 实现对逻辑合约的调用。

图片

尽管这种模式提供了灵活的升级能力,我们也必须高度重视其安全性。由于代理合约负责转发所有的用户请求,它实际上成为了合约系统的入口点。任何对代理合约的攻击都可能影响到整个合约的安全性。因此,在设计和部署可升级合约时,确保代理模式的安全性至关重要。目前代理模式的合约需要注意以下几点:

函数选择器冲突

在以太坊虚拟机(EVM)中,每个智能合约函数都有一个唯一的标识符,称为函数选择器。这个选择器是函数签名的前 4 个字节的哈希值。函数选择器用于确定合约中的具体函数,确保调用请求被正确路由到相应的函数实现。而在代理模式在调用函数时,会先检查代理合约中的函数接口是否能匹配调用函数,如果不能匹配,才会利用 fallback 中的 delegatecall 调用逻辑合约。

因此,如果代理合约和逻辑合约中存在函数选择器相同的函数,当代理合约接收到调用时,它直接调用代理合约中的函数,而不是逻辑合约,这可能导致预期之外的行为或安全漏洞。

存储冲突

在以太坊虚拟机(EVM)中,合约的状态数据存储在特定的存储槽中,每个存储槽的地址由其索引(从 0 开始)确定。合约中的每个状态变量都对应一个存储槽,数据在这些槽中持久化。

在代理模式中,存储槽通常是由代理合约管理的,而逻辑合约则通过代理合约来访问这些槽。存储冲突可能发生在逻辑合约中新增的状态变量与代理合约中现有的状态变量槽发生冲突时。这可能导致代理合约中的数据被覆盖或不一致

合约初始化问题

在代理模式中,由于代理合约和逻辑合约的分离,而每次升级可能都涉及到变量的更改和新增,因此在升级时必须确保在正确设置这些关键变量。本次的 ronin bridge 事件就是因为这个问题没做好,导致被攻击。

此外,需要确保初始化函数 initialize 只能被调用一次,以防止在初始化后被恶意攻击者重复调用,从而修改关键变量。

ldelegatecall 调用机制

delegatecall 是一种低级调用机制,它允许一个合约在其上下文中执行另一个合约的代码。这意味着,调用合约的存储、地址和消息发送者保持不变,但执行的逻辑来自被调用的目标合约。虽 delegatecall 提供了强大的功能,但也需要谨慎使用。

如果目标合约地址不存在,delegatecall 的执行将失败并返回失败码,但这种失败可能不会被立刻发现。结果,代理合约中的调用可能看起来像是成功,但实际操作并未生效,从而导致系统的不一致或错误。

代理合约权限管理

在代理模式中,权限管理是另一个关键的安全问题。代理模式通过分离代理合约和逻辑合约的职责,使得合约可以在不改变数据存储的情况下进行升级,但同时也引入了复杂的权限管理问题。正确地管理权限对于保证合约系统的安全性和稳定性至关重要。

免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与本站立场无关。文章内的信息仅供参考,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。

免责声明:本文只为提供市场讯息,所有内容及观点仅供参考,不构成投资建议,不代表本站观点和立场。投资者应自行决策与交易,对投资者交易形成的直接或间接损失,作者及本站将不承担任何责任。!
Tag:跨链资产   Bridge   Ronin  

你可能感兴趣的文章

更多

热门币种

  • 币种
    最新价格
    24H涨跌幅
  • bitcoin BTC 比特币

    BTC

    比特币

    $ 71464.9¥ 483531.51
    -3%
  • ethereum ETH 以太坊

    ETH

    以太坊

    $ 1993.05¥ 13484.97
    -0.44%
  • tether USDT 泰达币

    USDT

    泰达币

    $ 0.9987¥ 6.7572
    -0.02%
  • binance-coin BNB 币安币

    BNB

    币安币

    $ 693.08¥ 4689.37
    -2.29%
  • ripple XRP 瑞波币

    XRP

    瑞波币

    $ 1.2949¥ 8.7612
    -2.32%
  • usdc USDC USD Coin

    USDC

    USD Coin

    $ 1.0007¥ 6.7707
    -0.02%
  • solana SOL Solana

    SOL

    Solana

    $ 80.7205¥ 546.15
    -1.18%
  • tron TRX 波场

    TRX

    波场

    $ 0.3445¥ 2.3308
    -1.46%
  • hyperliquid HYPE Hyperliquid

    HYPE

    Hyperliquid

    $ 73.6221¥ 498.12
    +6.74%
  • dogecoin DOGE 狗狗币

    DOGE

    狗狗币

    $ 0.099893¥ 0.6758
    +0.36%

币圈快讯

  • 分析师对Strategy出售比特币看法不一多数认为不影响长期囤币战略

    2026-06-02 03:15
    6月2日,在Strategy披露四年来首次出售比特币后,华尔街分析师对于这一举动释放的信号出现分歧,但多数观点认为该交易规模极小,不足以改变公司的长期比特币积累战略。根据公告,Strategy于5月26日至31日期间以约77,135美元均价出售32枚比特币,套现约250万美元,用于支付其高收益永续优先股STRC(Stretch)的股息。截至5月底,Strategy仍持有超过84.37万枚比特币,本次出售仅占总持仓的约0.004%。TDCowen分析师LanceVitanza表示,市场将此次交易解读为Strategy大幅减仓比特币的说法具有误导性。他认为,这笔交易在经济层面影响微乎其微,不会改变公司的核心比特币增持逻辑,因此维持对MSTR股票400美元目标价不变。Benchmark分析师MarkPalmer也认为,Strategy未来不会依赖出售比特币作为支付优先股股息的主要资金来源,更可能继续通过发行股票补充现金储备。不过,他指出,此次出售表明公司比特币储备可在必要时作为优先股股息支付的「安全后盾」。另一方面,RiskDimensions首席投资官MarkConnors认为,此举反映出Strategy开始优先维护资本结构健康,而非坚持「永不卖币」的绝对立场。他表示,这说明MichaelSaylor愿意在必要时出售部分比特币,以保障股东和债权人的利益。
  • Salesforce对Anthropic的投资估值约为50亿美元

    2026-06-02 03:13
    在多次向Anthropic公司进行投资后,Salesforce在该公司持有的股份价值约达50亿美元。据知情人士透露,这家软件巨头于2023年初首次参与Anthropic的融资,投资额约为5000万美元,此后在后续融资轮次中持续跟投。在此过程中,Anthropic已成为全球增长最快、备受瞩目的公司之一。另一家从早期投资Anthropic中获益的软件公司是ZoomCommunications,该公司通过2023年初对AnthropicC轮融资的投资,净赚逾10亿美元。
  • 伊朗外交部:美对以色列违反黎以停火协议负有直接责任

    2026-06-02 02:49
    6月2日,当地时间1日,伊朗外交部就美以持续违反停火协议发表声明。声明指出,美国对违反伊美停火协议以及以色列违反黎以停火协议负有直接责任,美国应对此局势的后果承担全部责任。伊朗将在认为必要时捍卫自身利益。(央视)
  • 黎官员称真主党已准备好与以色列全面停火

    2026-06-02 02:46
    6月2日,据美国阿克西奥斯新闻网站1日报道,黎巴嫩议会议长纳比·贝里的高级顾问阿里·哈姆丹说,贝里已告知美方,黎巴嫩真主党已准备好与以色列立即全面停火,并承诺担保停火协议的落实。哈姆丹说,他于5月31日致电美国驻黎巴嫩大使米歇尔·伊萨,代表议长贝里告知他,“真主党已准备好全面落实停火协议,而我们也准备好为此提供担保”。(新华社)
  • 消息人士称以色列应美国要求推迟空袭黎巴嫩贝鲁特

    2026-06-02 02:46
    6月2日,消息人士称,以色列应美国的要求推迟了原定对黎巴嫩贝鲁特的空袭计划,并补充说,美国正在推进一项停火倡议,并要求以色列等待。但相关消息未得到以色列官方证实。(央视新闻)
  • 查看更多