¿Cómo se dio el ataque?

Durante esta mañana (horario CET), un ex-empleado de Ledger (dejó de formar parte del equipo en Julio ‘23) fue víctima de un ataque phishing mediante el cual el hacker obtuvo acceso a su cuenta NPMJS.

Esto abre las primeras interrogantes que aún no han sido resueltas: ¿En qué tipo de phishing attack cayó el ex-empleado de Ledger?; ¿Por qué seguía contando con credenciales válidas?; ¿Cómo el equipo de OPsec de Ledger maneja las credenciales sensibles?.

Continuando con los hechos; a través del acceso ganado, el hacker publicó una versión maliciosa del Ledger Connect Kit (afectando a las versiones 1.1.5, 1.1.6, & 1.1.7). El código malicioso utilizaba una versión fraudulenta de WalletConnect que redirigía los fondos a la wallet del hacker.

El hacker inyectó lo que se conoce como un “Angel Drainer” dentro del paquete NPM de Ledger.

El problema

El Ledger Connect Kit es una librería que permite a los desarrolladores conectar sus dApps a las hardware wallets de Ledger utilizando la Ledger Extension o Ledger Live. 

El @ledgerhq/connect-kit-loader permite a las dApps cargar Connect Kit al instante desde una CDN, sin que los usuarios tengan que esperar a que las bibliotecas de wallets y dApps actualicen las versiones de los paquetes y lancen nuevas compilaciones.

Recordemos que una CDN (Content Delivery Network o Red de Distribución de Contenido) es una red de servidores vinculados entre sí cuyo objetivo es entregar contenido de forma rápida, económica y confiable.

¿Dónde radica el problema de toda esta situación? En que la que debería ser la biblioteca más segura del mundo utiliza una CDN para la carga de datos por conveniencia o ahorro de costos.

En palabras sencillas, el equipo de Ledger enviaba actualizaciones cargando automáticamente los paquetes desde su CDN en lugar de incluir el código fuente en el paquete.

Si hubieran incluido el código fuente en su lugar, las dApps podrían haber sido comprometidas pero a lo largo de días/semanas, no de forma instantánea como sucedió, y habrían tenido tiempo de reaccionar.

Muchos frontends de sitios muy conocidos como SushiSwap, Zapper o RevokeCash por citar algunos, fueron afectados por este ataque.

La versión maliciosa desplegada no afectaba solamente a las conexiones a través de una Ledger, sino a cualquier usuario que se conectara incluso desde una hot wallet por medio de una extensión de navegador. Fue por este motivo que todo el ecosistema se hizo eco de la gravedad de lo acontecido.

La solución

El equipo de Ledger ya ha solucionado el inconveniente. 

La versión original 1.1.8 del Ledger Connect Kit se está propagando automáticamente y es seguro de utilizar. De todas formas, hay una recomendación de la cuenta oficial de Ledger de esperar al menos 24 horas antes de volver a utilizar Ledger Connect Kit.

Los equipos de tecnología y seguridad de Ledger fueron alertados y se desplegó una solución en los 40 minutos siguientes a que Ledger se diera cuenta del ataque. El archivo malicioso estuvo activo durante unas 5 horas, pero estiman que la ventana de tiempo en la que se drenaron los fondos se limitó a un periodo inferior a dos horas.

El equipo de Ledger trabajó junto al equipo de WalletConnect para dar de baja la versión maliciosa que utilizaba el hacker.

Las pérdidas debido al ataque se estiman en unos +600k USD. La address utilizada por el hacker es esta: 0x658729879fca881d9526480b82ae00efc54b5c2d.

¿Qué debemos hacer como usuarios? ¿Tengo que hacer algo para proteger mi dinero?

El problema radicaba en la Librería de código gestionada por Ledger que ya ha sido actualizada, esto significa que las dApps también se han actualizado.

Ledger sugería esperar 24hs antes de volver a operar con dApps, para evitar cualquier tipo de riesgo.

Otra sugerencia sería borrar la memoria caché de nuestro ordenador o dispositivo, simplemente a modo de resguardo.