Un grupo de cibercriminales ha cambiado el código interno de una de las librerías de software más populares del planeta, viéndose afectada la seguridad de tus contraseñas y credenciales. Lo peor del ataque es que afecta tanto a Windows como a Mac o Linux.
Este ataque ha ido directamente a por el sistema de credenciales del que se alimentan millones de aplicaciones en todo el mundo, y de ahí la importancia.
Si eres programador de JavaScript o trabajas en un entorno de desarrollo, es casi seguro que utilices Axios. Este cliente HTTP es muy popular, con más de 80 millones de descargas a la semana, y es utilizado para hacer peticiones de red y gestionar bases de datos. Según han revelado los investigadores de la firma de seguridad StepSecurity, dos versiones recientes de esta librería han sido hackeadas para instalar un troyano en los equipos de las víctimas.
¿Cómo ha sido el ataque?
El equipo de Google Threat Intelligence Group (GTIG) ha identificado al responsable del reciente ataque a la cadena de suministro del paquete Axios en NPM. A través de un artículo publicado anoche en su blog, han confirmado que el incidente está vinculado presuntamente al grupo cibercriminal de origen norcoreano UNC1069, descartando así cualquier relación con los incidentes de TeamPCP.
La clave de este ataque no está tanto en la vulnerabilidad del código original como en el robo de identidad que supone. Los informes de StepSecurity apuntan a que los atacantes lograron robar las credenciales de NPM (el gestor de paquetes de Node.js) de uno de los servicios principales. Llegaron incluso a cambiar el correo electrónico asociado a la cuenta por uno anónimo en ProtonMail.
Al lograr el acceso, los hackers publicaron manualmente las versiones con virus (axios@1.14.1 y axios@0.30.4), saltándose por completo los controles de seguridad habituales, como las acciones de GitHub y los procesos de firma criptográfica.
Para que no fueran detectados, los atacantes no modificaron el código central de Axios. En su lugar, inyectaron una dependencia oculta y falsa llamada plain-crypto-js@4.2.1. El usuario cree estar instalando una herramienta totalmente legal, pero en realidad ejecuta un script automático en el mismo instante en el que finaliza la instalación.
El nivel de ingeniería técnica de este ataque es altísimo. El script inyectado actúa como un RAT o troyano de acceso remoto capaz de infectar ordenadores con Windows, macOS y Linux por igual. Una vez dentro de tu sistema operativo, el virus establece comunicación con un servidor de Comando y Control (C2) controlado por los hackers para recibir órdenes y extraer información.
Para complicar aún más la labor de los antivirus y los equipos de respuesta a incidentes, los cibercriminales aplicaron técnicas de lo más complejas. Lo que hicieron fue ocultar comandos y rutas de archivos mediante un cifrado XOR complejo. Lo peor es que, una vez que el troyano se instala con éxito en tu ordenador, el virus intenta eliminarse, borrando su propio rastro y reemplazando su archivo de configuración por uno limpio para que no sea descubierto.
Cómo saber si has sido atacado y soluciones
Si tienes proyectos activos en JavaScript, debes comprobar cuanto antes que tu equipo está limpio. Lo recomendable es ejecutar comandos de diagnóstico en tu terminal para localizar el paquete oculto. En entornos Linux o Mac, puedes buscar el directorio infectado (ls node_modules/plain-crypto-js 2>/dev/null) o revisar si hay rastro del troyano en la ruta temporal (ls -la /tmp/ld.py). Si obtienes resultados positivos, tu equipo está comprometido.
En caso de infección, o como medida de prevención extrema, debes aplicar este protocolo de contención:
- Haz un downgrade de emergencia: Si estás usando las versiones afectadas (1.14.1 o 0.30.4), debes reinstalar a la última versión segura conocida. Utiliza
axios@1.14.0si estás en la rama 1.x, oaxios@0.30.3para la rama 0.x. - Fuerza la versión en tu configuración: Asegúrate de añadir un bloque de «overrides» en tu archivo
package.jsonpara obligar al sistema a usar solo la versión 1.14.0, evitando que otras dependencias arrastren el virus de nuevo. - Bloquea los scripts automáticos: Borra la carpeta hackeada y ejecuta siempre la instalación con el comando
npm install --ignore-scripts. Esto bloquea de raíz que cualquier código oculto se ejecute sin tu permiso.
Por último, pero no menos importante: si tu máquina ha estado expuesta, debes rotar todas tus credenciales de inmediato.
