- PUBLICIDAD -

Vulnerabilidad en Smart Contract de 0x

- PUBLICIDAD -

La semana pasada, el investigador de seguridad de terceros, Sam Sun (samczsun), notificó de manera privada al equipo 0x sobre una vulnerabilidad en su contrato 0x Exchange v2 derivado de una peculiaridad en EVM.

Según ConsenSys Diligence, uno de los equipos que auditó contratos inteligentes 0x en el pasado, el error estuvo presente durante un año, pero no se descubrió y no se explotó. La vulnerabilidad estaba relacionada con las firmas de las direcciones de contrato externas, no inteligentes, necesarias para autorizar los intercambios y habría permitido que un atacante complementara pedidos falsificando firmas. Will Warren, cofundador de 0x, declaró que el contrato de token ZRX no estaba expuesto.

La vulnerabilidad

En 0x, un fabricante crea un pedido fuera de cadena. Se transmite a un contrato inteligente en la cadena cuando un tomador llena el pedido. El contrato verifica las firmas de los comerciantes para confirmar que la transacción está autorizada.

Debido a que los pedidos se crean fuera de la cadena, 0x llama a la función de verificación en la dirección del fabricante cuando un tomador llena un pedido. Por ejemplo, «para que Exchange se asegure de que Alice realmente hizo la oferta que Bob afirma que está haciendo, Bob debe enviar la firma de Alice con los datos del pedido».

Con la vulnerabilidad, si un atacante operaba con una cuenta de usuario (también conocida como una cuenta de propiedad externa, o EOA), debido a una sutileza en el lenguaje ensamblador de EVM, el método de verificación siempre devolverá «verdadero», que 0x interpretaría como una firma válida.

Más concretamente, Mira Belenkiy, destaca que el contrato inteligente 0x interpretó el identificador «0x04» como una instrucción para usar un contrato Ethereum como método de verificación de firma y Sam Sun se dio cuenta de que las firmas con solo el valor (0x04) siempre se aceptaban tan válido si el fabricante no era realmente un contrato inteligente.

Respuesta 0x

El equipo 0x respondió rápidamente y presentó un parche en unas pocas horas. Utilizaron el contrato AssetProxyOwner para cerrar los contratos de Exchange y AssetProxy; como resultado, los proyectos conectados al protocolo 0x (por ejemplo, transmisores como Radar Relay y Paradex) tuvieron que suspender las transacciones y borrar sus libros de pedidos, considerando que las operaciones en v2.0 no son válidas.

El equipo de 0x implementó contratos parcheados en cuestión de horas y recomendó proyectos que aprovechen el protocolo 0x para señalar los contratos recién parcheados (0x v2.1).

Como lo describió ConsenSys Diligence, en 0x v2.0, el contrato aceptó cualquier valor distinto de cero como «verdadero» o válido. Con el parche, el contrato 1) tiene una verificación para determinar si la dirección es un contrato inteligente o no, y 2) requiere que la dirección devuelva un valor específico (con una longitud de exactamente 32 bytes). Cualquier otra cosa que no sea este valor se considerará » falso ”o inválido.

Respuesta de la comunidad

La respuesta fue doble. La comunidad elogió la velocidad y la elegancia con que el equipo respondió y manejó una situación difícil. El equipo fue transparente durante todo el proceso y actualizó todo el canal de 0x con arreglos a las pocas horas de descubrimiento.

Una preocupación tenía que ver con el hecho de que un intercambio descentralizado pudo implementar un interruptor de apagado de emergencia que suspendió las operaciones y llevó a la invalidación de todas las órdenes. Si este es el caso y la comunidad acepta las implicaciones de los interruptores de emergencia, una sugerencia fue dejar de referirse a dichos intercambios y aplicaciones que exhiben esta característica como «descentralizada» para evitar confusiones y establecer las mejores prácticas de marca.

Otra pregunta que surge es qué sucede si los malos actores pueden obtener acceso al mecanismo central de apagado. Esta preocupación salió a la luz cuando se comprometió una sola billetera utilizada para actualizar los contratos inteligentes en Bancor, lo que permitió al atacante robar $ 12.5 millones en ETH, $ 1 millón en NXPS (el token nativo de Pundi X) y $ 10 millones en BNT ( Token nativo del banco). Bancor pudo congelar el BNT, pero no las otras fichas (lo que también planteó la cuestión de si Bancor está descentralizado).

El evento también provocó discusiones sobre el hecho de que la vulnerabilidad no fue descubierta a pesar de las múltiples auditorías. El consenso fue que es casi imposible captarlo todo. Steve Marx de ConsenSys Diligence dijo: “incluso La verificación formal, que proporciona pruebas más estrictas sobre la corrección, solo puede encontrar errores en la medida en que el código se especifique formalmente. Un error como éste puede pasar fácilmente por un proceso así”.

Por lo tanto, uno de los beneficios de los programas de código abierto y de recompensas de errores es que los piratas informáticos benévolos son incentivados a auditar el código y reportar errores. Cuantos más ojos haya en el código, mayor será la posibilidad de descubrir y parchar vulnerabilidades (en el lado opuesto, no todos los que revisen el código siempre serán lo suficientemente buenos como para denunciarlo).


¡Asegúrese de no perderse ninguna noticia importante relacionada con Criptomonedas! Sigua nuestro feed de noticias de la forma que prefieras; a través de Twitter, Facebook, Telegram, RSS o correo electrónico (desplácese hacia abajo hasta la parte inferior de esta página para suscribirse). Bitcoin nunca duerme. Tampoco nosotros.


Descargo de Responsabilidad: Este comunicado de prensa es sólo para fines informativos, la información no constituye consejo de inversión o una oferta para invertir. Las opiniones expresadas en este artículo son las del autor y no representan necesariamente los puntos de vista de CriptomonedaseICO, y no deben ser atribuidas a, CriptomonedaseICO.


Síguenos en Telegram

- PUBLICIDAD -

- PUBLICIDAD -

Deja una respuesta

Su dirección de correo electrónico no será publicada.

17 − 8 =

Suscríbete a nuestro Boletín de Noticias
Regístrese aquí para recibir las últimas noticias y actualizaciones directamente en su bandeja de entrada.
Puedes darte de baja en cualquier momento

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. AcceptRead More