Ronin Bridge出现异常提取跨链资产行为根本原因是什么?

链得得Publicado a 2024-08-07Actualizado a 2024-08-07

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 的执行将失败并返回失败码,但这种失败可能不会被立刻发现。结果,代理合约中的调用可能看起来像是成功,但实际操作并未生效,从而导致系统的不一致或错误。

代理合约权限管理

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

Beosin作为全球最早一批从事形式化验证的区块链安全公司,主打”安全+合规“全生态业务,在全球10多个国家和地区设立了分部,业务涵盖项目上线前的代码安全审计、项目运行时的安全风险监控与阻断、被盗追回、虚拟资产反洗钱(AML)以及符合各地监管要求的合规评估等“一站式”区块链合规产品+安全服务

链得得仅提供相关信息展示,不构成任何投资建议

Criptos en tendencia

Lecturas Relacionadas

¿Cómo usa Codex el ordenador? Tres puntos de entrada y límites de permisos

Este artículo explica las tres formas en que Codex interactúa con el entorno externo: Uso del Ordenador, la extensión de Chrome y el Navegador integrado en la aplicación. Cada una aborda la tarea de "usar el ordenador", pero se adapta a diferentes escenarios, niveles de permisos y confianza. * **Uso del Ordenador (@Computer)**: Es el de mayor alcance, permitiendo operar aplicaciones nativas de macOS/Windows, configuraciones del sistema, el simulador de iOS, e incluso flujos de trabajo entre múltiples apps. Es ideal para procesos GUI sin API o herramientas estructuradas, pero es más lento y tiene los permisos más amplios. Se debe usar como último recurso cuando las herramientas estructuradas no cubren la tarea. * **Extensión de Chrome (@Chrome)**: Permite acceder al estado ya iniciado de sesión en Chrome, incluyendo cookies, perfiles y pestañas abiertas. Es óptimo para tareas que dependen de identidad, como trabajar en Gmail, LinkedIn, Salesforce, paneles internos o investigación que requiera autenticación en múltiples sitios. Ofrece control multi-pestaña y un contexto nativo del navegador, pero acciones como enviar o publicar requieren supervisión. * **Navegador integrado (@Browser)**: Es un navegador aislado dentro del hilo de Codex, sin el estado de inicio de sesión o cookies del navegador principal. Es ideal para desarrollo y depuración web, como trabajar con servidores locales, reproducir bugs visuales, verificar diseños responsivos o dar retroalimentación de diseño directa en la página. Su aislamiento lo hace seguro para tareas de desarrollo, pero no es apto para sitios que requieran identificación. **Appshots** no es un método de control, sino una herramienta para proporcionar contexto visual (capturando la ventana frontal en macOS) y señalar a Codex qué elementos observar, sin otorgar permisos de control. El principio central es elegir la interfaz de operación **más estricta, segura y estructurada** posible para cada tarea: priorizar plugins o MCP sobre control visual; usar el Navegador integrado para desarrollo web; cambiar a Chrome cuando se necesite identidad del navegador; y recurrir al Uso del Ordenador solo como "último kilómetro" para flujos GUI inevitables.

marsbitHace 1 hora(s)

¿Cómo usa Codex el ordenador? Tres puntos de entrada y límites de permisos

marsbitHace 1 hora(s)

La "ley férrea" de la industria de equipos de chips se está rompiendo

El largo dominio del mercado por parte de los compradores en la industria de equipos de semiconductores está mostrando grietas. Recientemente, proveedores clave de SK Hynix han solicitado aumentos de precios del 3-4%, un hecho casi inaudito en un sector tradicionalmente presionado por reducciones anuales de costos. Este cambio se debe al desequilibrio entre oferta y demanda provocado por la explosión de la computación de IA. La carrera por la capacidad de producción de IA ha creado cuellos de botella críticos. Los equipos de unión térmica por compresión (TCB), esenciales para fabricar memoria de alto ancho de banda (HBM) y chips para IA, están experimentando una demanda sin precedentes, con empresas como Hanmi Semiconductor y ASMPT recibiendo grandes pedidos. Contrariamente a las expectativas previas, la tecnología de unión híbrida más avanzada no reemplazará pronto al TCB, especialmente para HBM4, ya que los fabricantes priorizan soluciones de producción masiva más maduras. La escasez se extiende más allá. Los fabricantes de equipos de prueba se enfrentan a una grave falta de componentes clave, como FPGA y CPU, cuya prioridad de suministro ahora la acaparan los gigantes de centros de datos de IA, retrasando las entregas. Este frenético ritmo de expansión, impulsado por la inversión en IA, ha iniciado un nuevo ciclo alcista para todo el sector de equipos. SEMI prevé que las ventas globales alcanzarán un máximo histórico de 156.000 millones de dólares en 2027. La expansión se centra en tres áreas: lógica avanzada (p.ej., fundiciones como TSMC), memoria HBM (SK Hynix, Micron) y packaging avanzado (CoWoS). En resumen, los principales proveedores de equipos, al controlar tecnologías críticas para materializar la capacidad de producción en la era de la IA, están reescribiendo las reglas de poder y reparto de valor en la cadena de suministro de semiconductores.

marsbitHace 1 hora(s)

La "ley férrea" de la industria de equipos de chips se está rompiendo

marsbitHace 1 hora(s)

Trading

Spot
Futuros

Artículos destacados

Cómo comprar RONIN

¡Bienvenido a HTX.com! Hemos hecho que comprar Ronin (RONIN) sea simple y conveniente. Sigue nuestra guía paso a paso para iniciar tu viaje de criptos.Paso 1: crea tu cuenta HTXUtiliza tu correo electrónico o número de teléfono para registrarte y obtener una cuenta gratuita en HTX. Experimenta un proceso de registro sin complicaciones y desbloquea todas las funciones.Obtener mi cuentaPaso 2: ve a Comprar cripto y elige tu método de pagoTarjeta de crédito/débito: usa tu Visa o Mastercard para comprar Ronin (RONIN) al instante.Saldo: utiliza fondos del saldo de tu cuenta HTX para tradear sin problemas.Terceros: hemos agregado métodos de pago populares como Google Pay y Apple Pay para mejorar la comodidad.P2P: tradear directamente con otros usuarios en HTX.Over-the-Counter (OTC): ofrecemos servicios personalizados y tipos de cambio competitivos para los traders.Paso 3: guarda tu Ronin (RONIN)Después de comprar tu Ronin (RONIN), guárdalo en tu cuenta HTX. Alternativamente, puedes enviarlo a otro lugar mediante transferencia blockchain o utilizarlo para tradear otras criptomonedas.Paso 4: tradear Ronin (RONIN)Tradear fácilmente con Ronin (RONIN) en HTX's mercado spot. Simplemente accede a tu cuenta, selecciona tu par de trading, ejecuta tus trades y monitorea en tiempo real. Ofrecemos una experiencia fácil de usar tanto para principiantes como para traders experimentados.

163 Vistas totalesPublicado en 2024.12.10Actualizado en 2026.06.02

Cómo comprar RONIN

Discusiones

Bienvenido a la comunidad de HTX. Aquí puedes mantenerte informado sobre los últimos desarrollos de la plataforma y acceder a análisis profesionales del mercado. A continuación se presentan las opiniones de los usuarios sobre el precio de RONIN (RONIN).

活动图片