Viernes 21 de febrero de 2025 el mundo cripto fue sacudido por el anuncio de Ben Zhou, el CEO de Bybit, el exchange de criptomonedas de Dubái, segundo en el mundo en términos de volúmenes (después de Binance), que hizo público un ataque hacker a un cold wallet (un wallet offline: sí, han leído bien, se trata de un wallet no conectado a internet) capaz de sustraer ETH depositados en staking, mETH y otros tokens ERC20, por un total de más de 1.4 mil millones de dólares, el mayor robo en la historia de las criptomonedas.
La historia de estos ataques comienza con MtGox, un exchange de criptomonedas japonés “bucado” en dos ocasiones, la primera en 2011, la segunda en 2014. La cuestión es que estos ataques (que han sustraído bitcoin) se debieron a fallos en los protocolos de seguridad del exchange, fallos que han sido ampliamente encubiertos durante más de diez años. Sin embargo, los robos continúan ocurriendo. Por ejemplo, si se observan los informes de software houses dedicadas al análisis de blockchain como Chainalysis, los robos en el mundo de los digital asset suceden continuamente, pero esto obviamente dio noticia debido a la magnitud del hecho y en parte porque parece haber sido perpetrado por un conocido grupo de hackers coreanos “Lazarus Group” implicado en otros casos notables y recientes: Ronin Network, DMM Bitcoin y WazirX, todos caracterizados por el mismo método.
En el caso de MtGox, el “cómplice” del ataque de 2014 fue un bug en el protocolo de validación de transacciones conocido como transaction malleability. Técnicamente, el ataque fue posible porque el hashing utilizado para identificar un bloque de transacciones y el empleado para la firma digital (es decir, el comando para transferir los fondos, que solo puede dar el poseedor de la clave privada) se realizan sobre dos conjuntos de información diferentes. Probablemente, el hacker solicitó a MtGox la devolución de los Bitcoin que había depositado en el exchange, el cual emitió una transacción de reembolso con cierto identificador hash. La transacción fue interceptada por el hacker, quien modificó su contenido de modo que alterara el código hash de la transacción, pero sin cambiar la firma digital, que permanecía válida. Luego, reenvió la transacción modificada a la red para reclamar a MtGox la no realización de la transacción de reembolso. El exchange, una vez constatado que la transacción de reembolso (al haberse modificado el identificador por el hacker) no había sido validada, emitió una nueva transacción con un código hash diferente para evitar el double-spending, y el ataque continuó hasta sustraer aproximadamente un 7% de todos los Bitcoin en circulación en ese momento.
En el caso de Bybit, el ataque se centró en Ether y aprovechó una innovación que en la época de MtGox no existía: el smart contract. Veamos entonces de entender mejor cómo hicieron los piratas informáticos para robar estos activos digitales. Un análisis preciso y completo fue proporcionado por SlowMist, una empresa de ciberseguridad especializada en blockchain que ofrece sus servicios a los más conocidos players del sector. Nosotros intentaremos explicar el ataque de forma intuitiva. En primer lugar, se desarrolló en tres fases:
1) Una transacción benigna del cold wallet a un hot (o warm, da igual) wallet;
2) La transacción benigna contenía la falla (el caballo de Troya) que activó la ejecución de un contrato malicioso;
3) El contrato malicioso transfirió los tokens a una dirección desde la cual fueron redistribuidos a 40 direcciones diferentes y, desde allí, retransferidos para ocultar su rastro.
La pregunta ahora surge. ¿Cómo fue posible activar el contrato malicioso en la fase 2? Por cuestiones de seguridad (protección de claves privadas, esencialmente) Bybit, como muchos otros operadores, utiliza GnosisSafe, un smart contract wallet que prevé un procedimiento de firma múltiple para autorizar una transacción, en este caso, una transacción de un wallet offline a un wallet online. En términos generales, el uso de la clave privada para efectuar una transacción requiere más de una confirmación (en este caso se requerían tres). Cuando se inicia una transacción en la red Ethereum, los parámetros a aprobar (con la firma digital) son “to” (el destinatario) y “data” (el objeto de la transacción). Sin embargo, GnosisSafe prevé otro parámetro, “operation”, que puede asumir solo dos valores: “0”, que permite llamar a la función execTransaction que ejecuta el contrato deseado por el usuario; o bien, puede asumir el valor “1”, y en ese caso GnosisSafe ya no llama a execTransaction, sino a DelegateCall, es decir, una función que activa otro contrato: y es justamente así como los hackers inyectaron el contrato malicioso, que tomó el control del cold wallet permitiendo la ejecución de dos funciones: sweepETH y sweepERC20 (no creemos necesario explicar lo que hicieron estas dos funciones).
En este punto, surge la pregunta: ¿cómo es posible que tres firmantes diferentes (que son operadores de carne y hueso) no se hayan percatado del cambio de “0” a “1” en el parámetro “operation”? Se sospecha que el parámetro fue “ofuscado” (representado como un cero a los ojos del operador cuando en realidad era un uno: ¡no es sencillo de lograr!), pero quizá exista una explicación aún más sencilla: pensemos en cuando accedemos a nuestro e-banking en lugar de a nuestro correo web; ¿cuántos revisan la barra de la URL para asegurarse de que el protocolo sea https en lugar del simple (e inseguro) http o de que la dirección esté correctamente escrita (el cambio de una sola letra podría pasar desapercibido a cualquier ojo)?
Y, sobre todo, ¿cuántos olvidan activar la autenticación de dos factores, que brinda mayor seguridad? Probablemente, tres controles para un parámetro que casi nunca se utiliza no sean efectivos.
Sin embargo, en el sitio de Reddit se difunde la hipótesis de que los niveles de seguridad de Bybit no eran de máximo nivel (como ocurre con otras plataformas como Fireblocks o Coinbase) para no sacrificar la velocidad de las transacciones.
Mientras tanto, continúan las investigaciones para tratar de rastrear el recorrido de los tokens robados, e incluso se ofrecen recompensas para atraer a hackers éticos a cooperar en la búsqueda. Sin embargo, no podemos dejar de destacar el típico guion escenificado: el anuncio del ataque por parte de los directivos de la plataforma atacada (véase el comunicado en el sitio de Bybit), a menudo hecho primero en las redes sociales (como X, por ejemplo), la tranquilidad de que la situación está bajo control y de que el exchange dispone de los medios para indemnizar a los usuarios. Exactamente eso fue lo que hizo Ben Zhou: el cold wallet atacado es único; los demás están a salvo; Bybit tiene los medios para indemnizar, etc.
Seguimos sosteniendo el mismo punto. Los exchanges cripto son estructuras centralizadas (que, por lo tanto, no tienen nada que ver con la filosofía básica de las blockchain: la descentralización) muy similares a las bolsas tradicionales que conocemos, con la diferencia de que, en lugar de transferir activos fuera de la bolsa a través de bases de datos y conexiones centralizadas, lo hacen utilizando las blockchain, cosa que, por cierto, también podrían hacer las bolsas tradicionales. Por ello, nos preguntamos por qué estas estructuras no están reguladas y vigiladas como todas las bolsas en las que operamos; por qué nadie puede controlar la capitalización y los montos reales que estos exchanges ponen en garantía para los inversores, sino que hay que confiar en la palabra de sus directivos. ¿Por qué –si es que existen– nadie impone a todas estas estructuras (sin excepción alguna) los más altos estándares de seguridad existentes?
Disclaimer: El presente artículo expresa la opinión personal de los colaboradores de Custodia Wealth Management que lo han redactado. No se trata de consejos o recomendaciones de inversión, de asesoramiento personalizado y no debe ser considerado como una invitación a realizar transacciones en instrumentos financieros.