Los investigadores de la empresa Socket han descubierto 18 paquetes npm maliciosos dirigidos a desarrolladores que utilizan herramientas del ecosistema de Alibaba Group. Los paquetes imitan componentes privados del ámbito @ali y entregan un troyano de acceso remoto (RAT) multiplataforma con capacidades de ejecución de comandos, exfiltración de archivos y movimiento lateral. El ataque afecta a entornos Windows, Linux y macOS. A cualquiera que haya instalado los paquetes enumerados se le recomienda considerar el sistema como comprometido y rotar inmediatamente las credenciales desde una máquina limpia.
Mecanismo de ataque: cadena de dependencias en varios niveles
Según los datos del investigador de Socket Carlo Zanki, el elemento clave de la campaña es el paquete lib-mtop, homónimo de un paquete privado de Alibaba del ámbito @ali. El paquete fue publicado por primera vez en noviembre de 2023 sin ninguna funcionalidad, pero en marzo–abril de 2025 aparecieron tres nuevas versiones (v1.0.1, v1.0.2, v1.0.3) que contienen un cargador que obtiene una carga útil JavaScript remota mediante curl y la ejecuta.
El ataque se basa en una arquitectura de dependencias de tres niveles:
- Capa superior (paquetes señuelo): hasta 10 paquetes que imitan componentes privados de @ali. Entre ellos se encuentran aone-kit, aone-kit-cli y aone-sandbox, que según los investigadores son simples envoltorios vacíos que declaran paquetes privados de Alibaba como dependencias.
- Nivel intermedio (puente): el paquete smart-config-manager, del que dependen los paquetes de nivel superior y que los conecta con los componentes maliciosos de nivel inferior.
- Nivel inferior (cargador): componentes que se comunican con un repositorio de GitHub para obtener la configuración del motor de reglas y luego descargan y ejecutan la carga útil maliciosa desde un servidor remoto.
El paquete local-config-parser merece una atención especial: implementa un analizador legítimo de configuraciones JSON, pero contiene dependencias que por separado parecen inofensivas y en conjunto conforman un canal de entrega del RAT. Los cinco paquetes iniciales se publicaron desde la cuenta ch4ce, que en este momento devuelve el error «not found» en npmjs.com.
Comportamiento multiplataforma de la carga útil
Según se indica, el motor de reglas utiliza el módulo vm de Node.js para determinar el sistema operativo de la víctima y descargar la carga útil correspondiente. La descarga se realiza desde un dominio que se hace pasar por infraestructura de Alibaba.
El comportamiento varía en función de la plataforma:
- Windows: termina los procesos de la aplicación corporativa de seguridad Alilang, de la VPN y del software ofimático, y a continuación sustituye su código principal por una versión troyanizada.
- Linux: descarga un binario en /tmp, lo lanza como proceso desacoplado y elimina el archivo del disco tras cargarlo en memoria.
- macOS: inyecta un script malicioso en segundo plano en ~/.zshrc y configura un Launch Agent con un intervalo de ejecución de 10 minutos.
La carga útil final es un backdoor sofisticado con capacidades de ejecución arbitraria de comandos, subida y descarga de archivos, reconocimiento del host, preparación de cargas útiles adicionales y movimiento lateral. Según los investigadores, el backdoor también puede persistir mediante la inyección de código malicioso en aplicaciones corporativas de colaboración — DingTalk, Wukong y Qoder.
Indicadores de compromiso
Dominios asociados a la campaña:
- aone-cli-next.oss-cn-beijing.aliyuncs[.]com: origen de la carga útil, que imita infraestructura de Alibaba
Lista completa de paquetes maliciosos:
- lib-mtop, aone-kit, aone-kit-cli, aone-sandbox, local-config-parser
- smart-config-manager, cloud-config-fetcher, fast-transform-pipeline
- aone-cloud-cli, colder-cli, def-open-client, feedback-ai-sdk
- flight-compare-analyzer, lwp-web-client, lzd-unified-station-sdk
- open-worker-cli, test-skill-zip, uniapi-bridge
Contexto de la amenaza y atribución
El autor de la campaña sigue siendo desconocido. Los investigadores señalan que es difícil evaluar con precisión el alcance del impacto: aunque el número de descargas de los paquetes maliciosos es reducido, la naturaleza dirigida del ataque y las capacidades de propagación lateral de la carga útil final hacen que el daño potencial sea significativo. Sigue sin estar claro si la cuenta ch4ce fue comprometida o si su propietario publicó el código malicioso de forma intencionada.
Cabe señalar que esta campaña no es un caso aislado de ataques a la cadena de suministro en ecosistemas de gestores de paquetes. Paralelamente, StepSecurity informó de la compromisión del paquete PyPI mrmustard versión 0.7.4 (una biblioteca para computación cuántica fotónica de Xanadu). Los atacantes vulneraron la cuenta de GitHub del mantenedor principal, accedieron a través de runners de CI autohospedados y publicaron una versión con un stealer dirigido a claves SSH, credenciales de AWS y configuraciones de Kubernetes. Según SafeDep, el código malicioso instalaba tres mecanismos de persistencia independientes que mantenían la actividad incluso después de desinstalar el paquete.
Recomendaciones
- Revise las dependencias: realice una auditoría de sus proyectos para detectar cualquiera de los 18 paquetes enumerados en el árbol de dependencias. Utilice
npm lso herramientas de análisis de composición de software (SCA). - Si se detectan — considere el sistema comprometido. Rote todas las credenciales (tokens de npm, claves SSH, secretos en la nube) desde una máquina que se sepa limpia.
- Compruebe los mecanismos de persistencia: en macOS, el archivo ~/.zshrc y los Launch Agents; en Windows, la integridad de la instalación de Alilang y del software corporativo asociado; en Linux, procesos sospechosos lanzados desde /tmp.
- Configure la política de ámbito: utilice una configuración .npmrc que vincule los ámbitos privados (@ali) a su registro interno, para evitar la sustitución de dependencias desde el registro público de npm.
- Revise las aplicaciones corporativas DingTalk, Wukong y Qoder en busca de modificaciones de código no autorizadas.
Esta campaña demuestra la eficacia de la técnica de sustitución de dependencias (dependency confusion) combinada con una arquitectura multinivel en la que la lógica maliciosa se distribuye entre varios paquetes aparentemente inocuos. Para las organizaciones que utilizan paquetes npm privados con ámbito, resulta crítico configurar la vinculación de ámbitos a registros internos mediante .npmrc e implantar una auditoría automatizada de dependencias que bloquee la instalación de paquetes públicos cuyo nombre coincida con el de componentes privados.