El 'hacker de Ledger' que sustrajo al menos USD 484,000 de varias aplicaciones Web3 el 14 de diciembre lo hizo engañando a los usuarios de Web3 para que hicieran aprobaciones maliciosas de tokens, según el equipo detrás de la plataforma de seguridad blockchain Cyvers.

Según declaraciones públicas hechas por varias partes involucradas, el hackeo ocurrió en la mañana del 14 de diciembre. El atacante utilizó un exploit de phishing para comprometer la computadora de un ex empleado de Ledger, obteniendo acceso a la cuenta de NPMJS (node package manager javascript) del empleado.

Una vez que obtuvieron acceso, subieron una actualización maliciosa al repositorio de GitHub de Ledger Connect. Ledger Connect es un paquete comúnmente utilizado para aplicaciones Web3.

Algunas aplicaciones Web3 actualizaron a la nueva versión, haciendo que sus aplicaciones distribuyeran el código malicioso a los navegadores de los usuarios. Las aplicaciones Web3 Zapper, SushiSwap, Phantom, Balancer y Revoke.cash se infectaron con el código.

Como resultado, el atacante pudo sustraer al menos USD 484,000 de los usuarios de estas aplicaciones. Otras aplicaciones también pueden verse afectadas, y los expertos han advertido que la vulnerabilidad puede afectar a todo el ecosistema Ethereum Virtual Machine (EVM).

Cómo pudo haber sucedido

Hablando con Cointelegraph, el CEO de Cyvers, Deddy Lavid, el director de tecnología Meir Dolev y el analista de blockchain Hakal Unal arrojaron más luz sobre cómo pudo haber ocurrido el ataque.

Según ellos, es probable que el atacante haya utilizado código malicioso para mostrar datos de transacciones confusos en la billetera del usuario, llevando al usuario a aprobar transacciones que no pretendían.

Cuando los desarrolladores crean aplicaciones Web3, utilizan "kits de conexión" de código abierto para permitir que sus aplicaciones se conecten con las billeteras de los usuarios, dijo Dolev. Estos kits son piezas de código estándar que se pueden instalar en múltiples aplicaciones, lo que les permite manejar el proceso de conexión sin necesidad de escribir código. El kit de conexión de Ledger es una de las opciones disponibles para realizar esta tarea.

Cuando un desarrollador escribe por primera vez su aplicación, generalmente instala un kit de conexión a través de Node Package Manager (NPM). Después de crear una compilación y cargarla en su sitio, su aplicación contendrá el kit de conexión como parte de su código, que luego se descargará en el navegador del usuario cada vez que este visite el sitio.

Según el equipo de Cyvers, el código malicioso insertado en el kit de conexión de Ledger probablemente permitió al atacante alterar las transacciones que se enviaban a la billetera del usuario. Por ejemplo, como parte del proceso de uso de una aplicación, un usuario a menudo necesita emitir aprobaciones a contratos de tokens, permitiendo que la aplicación gaste tokens de la billetera del usuario.

El código malicioso puede haber hecho que la billetera del usuario muestre una solicitud de confirmación de aprobación de token pero con la dirección del atacante en lugar de la dirección de la aplicación. O puede haber causado que aparezca una confirmación de billetera que consistiría en código difícil de interpretar, lo que haría que el usuario confirmara confundido sin entender a qué estaban dando su consentimiento.

Ejemplo de aprobación de token Web3. Fuente: Metamask.

Los datos de blockchain muestran que las víctimas del ataque hicieron aprobaciones de tokens muy grandes al contrato malicioso. Por ejemplo, el atacante vació más de USD 10,000 de la dirección de Ethereum 0xAE49C1ad3cf1654C1B22a6Ee38dD5Bc4ae08fEF7 en una transacción. El registro de esta transacción muestra que el usuario aprobó una cantidad muy grande de USDC para ser gastada por el contrato malicioso.

Aprobación de token por víctima del exploit. Fuente: Etherscan.

Este consentimiento probablemente fue realizado por el usuario por error debido al código malicioso, dijo el equipo de Cyvers. Advertieron que evitar este tipo de ataque es extremadamente difícil, ya que las billeteras no siempre proporcionan información clara a los usuarios sobre a qué están dando su consentimiento. Una práctica de seguridad que puede ayudar es evaluar cuidadosamente cada mensaje de confirmación de transacción que aparece al usar una aplicación. Sin embargo, esto puede no ayudar si la transacción se muestra en código que no es fácilmente legible o es confuso.

Cyvers afirmó que su plataforma permite a las empresas verificar las direcciones de contrato y determinar si estas direcciones han estado involucradas en incidentes de seguridad. Por ejemplo, la cuenta que creó los contratos inteligentes utilizados en este ataque fue detectada por Cyvers como habiendo estado involucrada en 180 incidentes de seguridad.

Plataforma de seguridad de Cyvers. Fuente: Cyvers.

Aunque las herramientas Web3 en el futuro podrían permitir detectar y frustrar ataques como estos de antemano, la industria aún tiene "un largo camino por recorrer" para resolver este problema, dijo el equipo a Cointelegraph.

Aclaración: La información y/u opiniones emitidas en este artículo no representan necesariamente los puntos de vista o la línea editorial de Cointelegraph. La información aquí expuesta no debe ser tomada como consejo financiero o recomendación de inversión. Toda inversión y movimiento comercial implican riesgos y es responsabilidad de cada persona hacer su debida investigación antes de tomar una decisión de inversión