El fabricante de billeteras de criptomonedas Ledger dice que alguien deslizó un código malicioso en una de sus bibliotecas de JavaScript para robar más de medio millón de dólares a las víctimas.
La biblioteca en cuestión es Connect Kit, que permite que las DApps (aplicaciones de software descentralizadas) se conecten y utilicen las carteras de components Ledger de las personas.
Pascal Gauthier, director ejecutivo de Ledger, en una publicación pública dijo que un ex empleado había sido engañado por un ataque de phishing, que permitió a una parte no autorizada cargar un archivo malicioso en la cuenta de registro NPM de la empresa.
«El atacante publicó una versión maliciosa del Ledger Connect Package (que afecta a las versiones 1.1.5, 1.1.6 y 1.1.7)», dijo Gauthier. «El código malicioso utilizó un proyecto falso de WalletConnect para redirigir fondos a una billetera de piratas informáticos».
El archivo malicioso era lo que se conoce como «criptodrenador»: desvía fondos de billeteras digitales. Y debido a que docenas de proyectos criptográficos utilizan la biblioteca Connect Kit, la pérdida financiera potencial podría haber sido sizeable. Sin embargo, el daño fue limitado porque el archivo comprometido sólo estuvo activo durante unas cinco horas y activo durante unas dos.
Durante este período, se afirma que el atacante logró obtener más de 610.000 dólares en tokens criptográficos. Revoke.hard cash, un servicio para revocar ciertas transacciones criptográficas, que se vio afectado por el incidente, informa pérdidas del orden de 850.000 dólares.
Según Gauthier, el ataque se abordó dentro de los 40 minutos posteriores al descubrimiento, se identificó la dirección de blockchain del atacante y Tether congeló los tokens Tether del atacante. Las autoridades, afirma, han sido notificadas.
«La versión auténtica y verificada del Ledger Hook up Package, versión 1.1.8, ya está en circulación y es segura de usar», afirmó Gauthier.
«Seguro» puede ser una exageración: según la firma de seguridad Socket, que proporciona evaluaciones algorítmicas de paquetes NPM, Join Package actualmente califica con 51 sobre 100 en seguridad de la cadena de suministro y 55 sobre 100 en calidad.
Gauthier insiste en que la práctica estándar en Ledger es que ninguna persona puede implementar código sin una revisión multipartita.
«Tenemos fuertes controles de acceso, revisiones internas y código de firmas múltiples en lo que respecta a la mayor parte de nuestro desarrollo», dijo. «Este es el caso en el 99 por ciento de nuestros sistemas internos. A cualquier empleado que abandona la empresa se le revoca el acceso a todos los sistemas Ledger».
Y, sin embargo, el relato de Ledger sobre el incidente (un ex empleado entregó credenciales a un prepare de phishing, lo que permitió a un malhechor obtener acceso a la cuenta NPM de Ledger para introducir código incorrecto) sugiere que esta fue una ocasión en la que los controles de seguridad de la empresa no fueron suficientes.
Según Rosco Kalis, ingeniero de software package de Revoke.dollars, Ledger no contaba con autenticación de dos factores para NPM, lo que presumiblemente habría impedido que el ataque de phishing funcionara. Es más, Kalis afirmó que Ledger no revocó los derechos de publicación del código de su ex empleado.
Gauthier caracterizó este fiasco como un «incidente aislado desafortunado» y dijo: «Ledger implementará controles de seguridad más estrictos, conectando nuestro proceso de construcción que implementa una estricta seguridad de la cadena de suministro de computer software con el canal de distribución de NPM».
La referencia del líder de Ledger al canal de distribución de NPM pasa por alto la forma en que realmente se distribuye Hook up Package.
Kalis señaló que Ledger distribuye Connect Package a través de una purple de entrega de contenido (CDN), lo que significa que los desarrolladores no pueden fijar la biblioteca, sino limitarla a una versión específica. En cambio, las aplicaciones que dependen de la biblioteca siempre obtienen la última versión, lo que se vuelve problemático cuando la última versión ha sido secuestrada.
«En términos generales, los desarrolladores se protegen contra ataques a la cadena de suministro ‘fijando’ las versiones de las dependencias que instalan», dijo Kalis.
Kalis aceptó parte de la culpa al reconocer que, si bien Ledger no debería haber publicado su biblioteca de una manera que no admitiera la fijación de dependencias, Revoke.cash debería haberse dado cuenta de que el método de distribución de Link Package planteaba un riesgo de seguridad.
Sin embargo, Kalis no está dispuesto a asumir la carga de compensar a quienes han perdido fondos.
«Debido a la naturaleza generalizada del exploit, es imposible determinar cuáles de las víctimas del exploit se vieron comprometidas en Revoke.funds y cuáles en otros sitios world-wide-web», escribió. «Es por eso que lamentablemente no lo vemos como una solución practical para que Revoke.hard cash u otros sitios internet afectados compensen directamente a los usuarios afectados».
Kalis dice que la única respuesta, según él, es que las víctimas soliciten a Ledger un reembolso por las pérdidas, y agrega: «Actualmente no está claro si Ledger planea hacer esto».
Ledger, con sede en Francia, no respondió de inmediato a una solicitud de comentarios. ®