Una nueva campaña de paquetes npm maliciosos dirigida a desarrolladores de Node.js ha sido identificada en el registro oficial de npm. La actividad, rastreada por ReversingLabs bajo el nombre theGhost y relacionada con el clúster GhostClaw descrito por JFrog y Jamf, se centra en el robo de criptomonedas, credenciales sensibles y datos de entornos de desarrollo, explotando la confianza en el ecosistema de código abierto.
Campaña theGhost: paquetes npm maliciosos orientados a desarrolladores de Node.js
Todos los paquetes detectados en esta campaña de malware para npm fueron publicados por un único autor bajo el alias «mikilanjillo». Estas bibliotecas se presentaban como utilidades legítimas para optimización de proyectos o integraciones de front‑end, pero su objetivo real era obtener la contraseña de sudo y desplegar una cadena de infección multietapa.
Según el análisis de ReversingLabs, los paquetes se integraban en flujos habituales de npm install, intentando pasar desapercibidos en entornos de desarrollo donde la instalación de dependencias con privilegios elevados sigue siendo una práctica extendida.
Técnicas de ataque: phishing de sudo y despliegue sigiloso de un RAT
El vector principal de la campaña theGhost se basa en simular un proceso de instalación normal de npm para engañar al desarrollador:
- el paquete imprime logs falsos de instalación, emulando la descarga de dependencias adicionales;
- introduce pausas aleatorias para imitar el tiempo típico de compilación o instalación;
- en un punto del proceso, muestra un supuesto error de permisos al escribir en
/usr/local/lib/node_modulesy solicita la contraseña de root/administrador para “continuar la instalación global”.
Una vez introducida la contraseña, el script descarga de forma silenciosa un downloader que consulta un canal de Telegram para obtener la ubicación del payload final y la clave de descifrado. El último eslabón de la cadena es un troyano de acceso remoto (RAT) capaz de:
- inventariar archivos, procesos y configuración del sistema;
- robar monederos de criptomonedas y datos de navegadores (cookies, sesiones, contraseñas guardadas);
- recibir nuevas órdenes desde un servidor de comando y control para ampliar el compromiso del sistema afectado.
GhostClaw: GitHub, automatización con IA y proyectos falsos para desarrolladores
ReversingLabs vincula la campaña theGhost con el clúster de amenazas GhostClaw, previamente documentado por JFrog y Jamf Threat Labs. En este caso, los atacantes abusan de repositorios GitHub y de flujos de desarrollo asistidos por IA para distribuir código malicioso, incluido malware para macOS.
Los repositorios afectados se presentan como bots de trading, SDKs, herramientas de desarrollo o utilidades DevOps. Muchos obtienen decenas o cientos de estrellas, lo que incrementa la confianza de la comunidad. Inicialmente se publica código legítimo o funcional, que permanece estático durante un tiempo; solo en fases posteriores se introducen scripts de instalación maliciosos en la cadena de distribución.
Un elemento clave es el contenido del README (y en entornos orientados a IA, del archivo SKILL.md), donde se instruye a los usuarios a ejecutar un script shell para habilitar “capacidades adicionales” o automatizar la configuración. Ese script desencadena una infección en varias etapas que termina con la instalación de un módulo stealer para la sustracción de credenciales.
El comportamiento de la infección puede ajustarse mediante la variable de entorno GHOST_PASSWORD_ONLY: con valor 0, el usuario ve un asistente de instalación completo; con valor 1, el malware funciona en modo furtivo, centrado casi exclusivamente en la recolección de contraseñas y secretos.
Cadena de infección: npm, Telegram y monetización con Binance Smart Chain
Investigadores de la compañía Panther analizaron en detalle el paquete react-state-optimizer, también publicado por «mikilanjillo». Este incluye un asistente de línea de comandos que convence al desarrollador de introducir la contraseña sudo para supuestas “optimizaciones del sistema”. La contraseña se envía a un credential stealer que extrae:
- credenciales y cookies de navegadores;
- criptocarteras y frases semilla;
- claves SSH y configuraciones de proveedores cloud;
- tokens de herramientas DevOps y otros servicios de desarrollo.
El paquete inicial recupera su configuración desde un canal de Telegram o desde una página de Teletype.in que se hace pasar por documentación de blockchain. A continuación se despliega el stealer principal y los datos robados se envían a bots de Telegram asociados a la infraestructura criminal.
La monetización de la campaña es múltiple. Por un lado, las credenciales y wallets sustraídas se comercializan a través de redes y canales de socios en Telegram. Por otro, se emplean URLs de afiliación gestionadas mediante un smart contract en Binance Smart Chain (BSC), lo que permite redirigir tráfico y cambiar de socios sin modificar el código malicioso ya desplegado.
Impacto en la seguridad de la cadena de suministro de software
Este caso ilustra el desplazamiento de los atacantes hacia la cadena de suministro de software, donde plataformas como npm, GitHub y herramientas de desarrollo asistido por IA se convierten en vectores ideales. El malware entra en la infraestructura corporativa desde componentes aparentemente confiables, integrados en pipelines de CI/CD y repositorios internos.
Son especialmente vulnerables los equipos donde:
- se ejecuta con frecuencia
npm install -go instalaciones con sudo sin revisión previa; - la elección de paquetes se basa casi únicamente en estrellas, descargas o tendencias;
- no existen controles de integridad de dependencias ni monitorización de la actividad de los paquetes tras su instalación.
Buenas prácticas para mitigar paquetes npm maliciosos y repositorios GitHub comprometidos
Para reducir el riesgo de ataques como theGhost y GhostClaw en entornos de desarrollo Node.js y en la cadena de suministro, es recomendable:
- Evitar el uso de sudo al instalar paquetes npm, especialmente cuando proceden de autores poco conocidos o sin historial.
- Revisar cuidadosamente al mantenedor del paquete: fecha de creación, frecuencia de versiones, enlaces al repositorio, cuentas vinculadas y posibles cambios bruscos en la actividad.
- Auditar scripts de instalación (
postinstall,preinstall, shell scripts mencionados en README/SKILL.md) antes de ejecutarlos en equipos de desarrollo o servidores de CI/CD. - Adoptar registros internos o proxies de paquetes con proceso de aprobación y escaneo de dependencias (análisis estático, reputación, firmas).
- Implementar monitorización de red para detectar conexiones inusuales desde entornos de build hacia Telegram, Teletype.in, Pastebin y servicios similares de compartición de contenido.
- Formar a los desarrolladores en seguridad de la cadena de suministro, ingeniería social técnica y buenas prácticas con gestores de paquetes, incluyendo la revisión de código antes de ejecutar scripts externos.
Las campañas theGhost y GhostClaw confirman que los desarrolladores se han convertido en un objetivo prioritario en los ataques a la cadena de suministro. Cada nuevo paquete npm, repositorio GitHub o script de instalación debe tratarse con el mismo escepticismo que un correo sospechoso: verificar el origen, leer el código cuando sea posible y no introducir contraseñas ni secretos en scripts en los que no se confía plenamente. Fortalecer los procesos de gestión de dependencias y reducir al mínimo los privilegios en entornos de desarrollo ya no es opcional, sino un requisito básico para mantener la seguridad de los proyectos y de la organización.