Google ha atribuido formalmente el compromiso de la cadena de suministro del popular paquete Axios npm a un grupo de actividad de amenazas norcoreano con motivación financiera rastreado como UNC1069.
«Hemos atribuido el ataque a un presunto actor de amenazas norcoreano al que rastreamos como UNC1069», dijo John Hultquist, analista jefe de Google Threat Intelligence Group (GTIG), a The Hacker News en un comunicado.
«Los piratas informáticos norcoreanos tienen una profunda experiencia con ataques a la cadena de suministro, que históricamente han utilizado para robar criptomonedas. La magnitud total de este incidente aún no está clara, pero dada la popularidad del paquete comprometido, esperamos que tenga impactos de gran alcance».
El desarrollo se produce después de que los actores de amenazas tomaron el control de la cuenta npm del mantenedor del paquete para impulsar dos versiones troyanizadas 1.14.1 y 0.30.4 que introdujeron una dependencia maliciosa llamada «plain-crypto-js» que se utiliza para ofrecer una puerta trasera multiplataforma capaz de infectar sistemas Windows, macOS y Linux.
En lugar de introducir cambios de código en Axios, el ataque aprovecha un enlace posterior a la instalación dentro del archivo «package.json» de la dependencia maliciosa para lograr una ejecución sigilosa. Una vez instalado el paquete Axios comprometido, npm activa automáticamente la ejecución de código malicioso en segundo plano.
Específicamente, el paquete «plain-crypto-js» funciona como un «vehículo de entrega de carga útil» para un cuentagotas de JavaScript ofuscado denominado SILKBELL («setup.js»), que recupera la siguiente etapa apropiada de un servidor remoto basado en el sistema operativo de la víctima.
Como detalló anteriormente The Hacker News, la rama de ejecución de Windows ofrece malware PowerShell, un binario C++ Mach-O para macOS y una puerta trasera Python para sistemas Linux. El cuentagotas también realiza una limpieza para eliminarse y reemplazar el archivo «package.json» del paquete «plain-crypto-js» con una versión limpia que no tiene el enlace postinstalación.
![]() |
| Fuente de la imagen: Laboratorios de seguridad elástica |
Se considera que la puerta trasera, con nombre en código WAVESHAPER.V2, es una versión actualizada de WAVESHAPER, una puerta trasera C++ implementada por UNC1069 en ataques dirigidos al sector de las criptomonedas. El actor de amenazas ha estado operativo desde 2018. Los vínculos del ataque a la cadena de suministro con UNC1069 fueron señalados por primera vez por Elastic Security Labs, citando superposiciones de funcionalidad.
Las tres variantes de WAVESHAPER.V2 admiten cuatro comandos diferentes, mientras se dirigen al servidor de comando y control (C2) en intervalos de 60 segundos:
- matarpara finalizar el proceso de ejecución del malware.
- rondaspara enumerar listados de directorios, junto con rutas de archivos, tamaños y marcas de tiempo de creación/modificación.
- ejecutar scriptpara ejecutar AppleScript, PowerShell o comandos de shell según el sistema operativo.
- inyección de dolorpara decodificar y ejecutar binarios arbitrarios.
«WAVESHAPER.V2 es una evolución directa de WAVESHAPER, una puerta trasera para macOS y Linux anteriormente atribuida a UNC1069», dijeron Mandiant y GTIG. «Mientras que el WAVESHAPER original utiliza un protocolo C2 binario ligero y sin formato y emplea empaquetado de código, WAVESHAPER.V2 se comunica mediante JSON, recopila información adicional del sistema y admite más comandos de puerta trasera».
«A pesar de estas actualizaciones, ambas versiones aceptan su URL C2 dinámicamente a través de argumentos de línea de comandos, comparten comportamientos de sondeo C2 idénticos y una cadena de agente de usuario poco común, e implementan cargas útiles secundarias en directorios temporales idénticos (por ejemplo, /Library/Caches/com.apple.act.mond)».
Para mitigar la amenaza, se recomienda a los usuarios auditar los árboles de dependencia para detectar versiones comprometidas (y bajar a una versión segura, si la encuentran), fijar Axios a una versión segura conocida en el archivo «package-lock.json» para evitar actualizaciones accidentales, verificar la presencia de «plain-crypto-js» en «node_modules», finalizar procesos maliciosos, bloquear el dominio C2 («sfrclak(.)com», dirección IP: 142.11.206(.)73), aislar los sistemas afectados y rotar todas las credenciales.
«El ataque a Axios debe entenderse como una plantilla, no como un evento único. El nivel de sofisticación operativa documentado aquí, incluidas las credenciales de mantenimiento comprometidas, las cargas útiles preestablecidas creadas para tres sistemas operativos, ambas ramas de lanzamiento alcanzadas en menos de 40 minutos y la autodestrucción forense incorporada, reflejan un actor de amenazas que planeó esto como una operación escalable», dijo el arquitecto jefe de software de ReversingLabs, Tomislav Peričin, a The Hacker News.
«Si esta campaña aparece ahora en PyPI y NuGet, eso es consistente con lo que la mecánica de ataque ya sugiere: el objetivo era alcanzar el máximo alcance para los desarrolladores. Las organizaciones necesitan auditar no sólo sus dependencias npm, sino también cada administrador de paquetes que alimenta sus canales de compilación, y tratar cualquier secreto expuesto en los entornos afectados como comprometido, independientemente del registro que tocaron».
