Malware PhantomRaven
Investigadores de ciberseguridad han descubierto un ataque muy activo a la cadena de suministro de software dirigido al ecosistema npm. Se han identificado más de 100 paquetes maliciosos capaces de robar credenciales confidenciales de desarrolladores, incluyendo tokens de autenticación, secretos de CI/CD y credenciales de GitHub, directamente de máquinas comprometidas.
La campaña, cuyo nombre en clave era PhantomRaven, surgió por primera vez en agosto de 2025. Desde entonces, se ha expandido a 126 bibliotecas npm y ha conseguido más de 86.000 instalaciones, lo que demuestra la rápida propagación y adopción de estos paquetes maliciosos.
Tabla de contenido
Paquetes maliciosos que pasan desapercibidos
Algunos de los paquetes marcados incluyen:
- op-cli-installer – 486 descargas
- importaciones no utilizadas – 1350 descargas
- badgekit-api-client – 483 descargas
- polyfill-corejs3 – 475 descargas
- eslint-comments – 936 descargas
Lo que hace que PhantomRaven sea particularmente insidioso es su uso de Dependencias Dinámicas Remotas (RDD). En lugar de obtener el código del registro oficial de npm, los paquetes maliciosos apuntan a una URL HTTP personalizada (packages.storeartifact.com). Esto permite que npm obtenga dependencias de una fuente externa no confiable, eludiendo así las protecciones de npmjs.com.
Los escáneres de seguridad tradicionales y las herramientas de análisis de dependencias no detectan estos RDD, ya que los sistemas automatizados consideran que los paquetes tienen '0 dependencias'.
Cómo funciona el ataque
La cadena de ataque comienza en cuanto un desarrollador instala uno de los paquetes aparentemente inofensivos. Los elementos clave incluyen:
Ejecución del gancho previo a la instalación : El paquete contiene un script de ciclo de vida previo a la instalación que ejecuta automáticamente la carga útil principal.
Recuperación remota de la carga útil : El script obtiene la dependencia maliciosa del servidor controlado por el atacante.
Exfiltración de datos : Una vez ejecutado, el malware escanea el entorno del desarrollador en busca de direcciones de correo electrónico, recopila detalles del entorno CI/CD, identifica el sistema (incluida la IP pública) y envía los datos a un servidor remoto.
El atacante puede modificar la carga útil a su antojo, inicialmente sirviendo código inofensivo para evadir la detección antes de enviar actualizaciones maliciosas una vez que el paquete gane popularidad.
Explotar los puntos ciegos humanos y de la IA
La elección de los nombres de los paquetes es deliberada. El atacante utiliza una táctica conocida como slopsquatting, en la que modelos de lenguaje de gran tamaño (LLM) generan nombres de paquetes inexistentes pero con una sonoridad plausible. Los desarrolladores pueden confiar en estos paquetes debido a la verosimilitud de sus nombres, sin percatarse de la amenaza oculta.
Como señalan los investigadores, PhantomRaven pone de relieve la creciente sofisticación de los atacantes:
- Las dependencias dinámicas remotas eluden el análisis estático.
- Los nombres de paquetes generados por IA abusan de la confianza de los desarrolladores.
- Los scripts de ciclo de vida se ejecutan automáticamente sin interacción del usuario.
Esta campaña pone de relieve cómo los actores maliciosos están encontrando nuevas formas de ocultar código en ecosistemas de código abierto, explotando las deficiencias de las herramientas de seguridad tradicionales.
¿Por qué npm es un objetivo principal?
La facilidad de publicación de paquetes en el ecosistema npm, junto con la ejecución automática de scripts de preinstalación, instalación y postinstalación, lo convierte en un objetivo principal. Los atacantes pueden ocultar comportamientos maliciosos en los scripts del ciclo de vida, a menudo sin que el desarrollador lo sepa, lo que demuestra la necesidad de una mayor vigilancia y prácticas de seguridad sólidas en los entornos de desarrollo modernos.