Investigadores de OX Security descubrieron cuatro paquetes npm maliciosos, publicados por el mismo usuario pero que contienen cargas maliciosas fundamentalmente distintas: desde un clon del gusano Shai-Hulud hasta una botnet DDoS en Go y clásicos infostealers. En total, los paquetes se han descargado más de 3.000 veces. Se recomienda a los desarrolladores que utilizan npm comprobar de inmediato sus dependencias en busca de las bibliotecas indicadas, eliminarlas si se encuentran y rotar todos los secretos que pudieran haberse visto comprometidos.
Paquetes maliciosos y su funcionalidad
Los cuatro paquetes se publicaron en nombre del usuario de npm deadcode09284814. Es llamativo que, a pesar de tener un autor común, cada paquete incorpora una carga maliciosa única:
- chalk-tempalte (825 descargas): contiene un clon prácticamente sin cambios del gusano Shai-Hulud, cuyo código fuente fue publicado por el grupo TeamPCP. Según los investigadores, el atacante únicamente sustituyó el servidor C2 y la clave privada por los suyos propios.
- axois-utils (963 descargas): entrega la botnet DDoS Phantom Bot, escrita en Go, con capacidad de realizar floods a través de los protocolos HTTP, TCP y UDP. La botnet se mantiene en el sistema mediante la carpeta de inicio automático de Windows y el programador de tareas.
- @deadcode09284814/axios-util (284 descargas): infostealer que roba claves SSH, variables de entorno, credenciales de servicios en la nube, información del sistema, dirección IP y datos de monederos de criptomonedas.
- color-style-utils (934 descargas): infostealer equivalente, con el mismo conjunto de datos objetivo, pero que los envía a otro servidor C2.
Los nombres de los paquetes explotan la técnica de typosquatting: chalk-tempalte imita al popular chalk-template, y axois-utils a la biblioteca axios. Se trata de una técnica clásica de ataque a la cadena de suministro, basada en los errores tipográficos de los desarrolladores al instalar dependencias.
Mecanismo de exfiltración de datos
El paquete chalk-tempalte con el clon de Shai-Hulud envía las credenciales robadas al servidor C2 y, además, utiliza el token de GitHub sustraído para crear un repositorio público a través de la API de GitHub. El repositorio creado recibe la descripción «A Mini Sha1-Hulud has Appeared»; esta cadena puede servir como indicador de compromiso al buscar filtraciones.
Según OX Security, el atacante tomó el código fuente abierto de Shai-Hulud y «prácticamente sin ningún cambio cargó una versión funcional con su propio servidor C2». Esto demuestra el umbral de entrada extremadamente bajo para crear ataques a la cadena de suministro cuando se dispone de herramientas ya preparadas.
Indicadores de compromiso
- Dominios C2:
87e0bbc636999b.lhr[.]life,edcf8b03c84634.lhr[.]life - Dirección IP C2:
80.200.28[.]28:2222 - Marcador en GitHub: descripción del repositorio «A Mini Sha1-Hulud has Appeared»
Contexto de la amenaza
La aparición de estos paquetes está relacionada con la publicación del código fuente del gusano Shai-Hulud por parte del grupo TeamPCP. Según la evaluación de los investigadores, el clon en el paquete chalk-tempalte podría haberse inspirado en un concurso de ataques a la cadena de suministro anunciado en el foro BreachForums poco después de la filtración del código. Sin embargo, esta relación se basa en las suposiciones de una única fuente y no ha sido confirmada de forma independiente.
La característica clave de este incidente es su carácter multivectorial. Un único atacante desplegó simultáneamente cuatro paquetes con distintos tipos de malware: un gusano autorreplicante, una botnet DDoS y dos variantes de infostealer. Esto puede apuntar tanto a pruebas de distintos enfoques como a un intento de maximizar el alcance con un esfuerzo mínimo.
Evaluación del impacto
El principal grupo de riesgo son los desarrolladores e ingenieros de DevOps que trabajan con el ecosistema npm, especialmente quienes instalan dependencias sin verificar estrictamente los nombres de los paquetes. Teniendo en cuenta que los infostealers se dirigen a claves SSH, credenciales de servicios en la nube y variables de entorno, la compromisión de una sola estación de trabajo de un desarrollador puede derivar en acceso en cascada a la infraestructura en la nube, a los pipelines de CI/CD y a los repositorios privados de la organización.
Supone un peligro adicional el uso de tokens de GitHub robados para crear repositorios públicos, ya que se trata de un canal potencial de filtración de código propietario y secretos.
Recomendaciones de respuesta
- Comprobar las dependencias de todos los proyectos en busca de los paquetes
chalk-tempalte,axois-utils,@deadcode09284814/axios-util,color-style-utilsy eliminarlos de inmediato si se detectan. - Realizar la rotación de secretos: claves SSH, tokens de GitHub, credenciales de servicios en la nube (AWS, GCP, Azure), API keys, variables de entorno; en definitiva, todo lo que pudiera haber sido accesible desde la máquina comprometida.
- Revisar las cuentas de GitHub en busca de repositorios desconocidos, especialmente aquellos con la descripción «A Mini Sha1-Hulud has Appeared».
- Eliminar configuraciones maliciosas de IDEs y herramientas como Claude Code que pudieran haberse modificado con código malicioso.
- Bloquear a nivel de red las conexiones hacia los dominios
87e0bbc636999b.lhr.life,edcf8b03c84634.lhr.lifey la dirección IP80.200.28.28. - Revisar el programador de tareas (Windows) y la carpeta de inicio automático en busca de entradas sospechosas relacionadas con Phantom Bot.
Este incidente muestra claramente cómo la publicación del código fuente de malware reduce la barrera para llevar a cabo ataques a la cadena de suministro. Los desarrolladores deberían implantar la verificación automática de dependencias mediante herramientas como npm audit, utilizar el lockfile para fijar versiones y considerar la aplicación de políticas que limiten la instalación de paquetes procedentes de autores no verificados. Las organizaciones que detecten cualquiera de los paquetes mencionados en su infraestructura deben considerar el incidente como una compromisión total de la estación de trabajo y actuar en consecuencia.