PhantomRaven utilizó paquetes npm y código remoto para buscar secretos de desarrolladores
PhantomRaven distribuyó más de 100 paquetes npm maliciosos para robar credenciales, tokens y secretos CI/CD de desarrolladores mediante código remoto.
Texto generado por inteligencia artificial, publicado sin revisión humana. Transparencia IA
Imagen ilustrativa generada con IA
CrowdStrike ha vinculado a PhantomRaven a un operador con motivaciones económicas que se hacía pasar por investigador de bug bounty. PhantomRaven es un stealer de información para JavaScript distribuido mediante más de 100 paquetes npm maliciosos.
La campaña de la cadena de suministro atacó a desarrolladores mediante slopsquatting y typosquatting. Una vez instalados, los paquetes descargaban código adicional desde una infraestructura controlada por los atacantes, lo que permitía a PhantomRaven inspeccionar los sistemas de desarrollo y exfiltrar credenciales, detalles de configuración y secretos de CI/CD.
CrowdStrike considera con un alto grado de confianza que un modelo de lenguaje de gran tamaño ayudó a crear el malware. Entre los indicios se encuentran comentarios de código inusualmente extensos, secciones incompletas con marcadores de posición y un análisis estadístico de los patrones de tokens del código fuente.
Más de 100 paquetes atacaron entornos de desarrollo
Koi Security y DCODX identificaron por primera vez la campaña a finales de octubre de 2025. Los paquetes maliciosos se subieron al registro npm, donde los desarrolladores podían encontrarlos al buscar dependencias o introducir nombres de paquetes.
La operación combinó dos estrategias de nombres. El typosquatting se basa en nombres parecidos a los de paquetes legítimos, con la esperanza de que los usuarios cometan errores ortográficos o pasen por alto diferencias sutiles. El slopsquatting se dirige a nombres de paquetes que parecen plausibles, pero que un LLM puede sugerir aunque no exista ningún paquete legítimo con ese nombre.
Durante la campaña se subieron más de 100 paquetes. Sin embargo, no se han divulgado una lista completa de paquetes retirados, un inventario de las versiones afectadas ni un aviso de seguridad de npm.
Al menos dos cuentas de npm estuvieron asociadas a paquetes de PhantomRaven publicados:
jpdhellonpm1, que publicótransform-jsbi-to-bigintjpd15, que publicósort-imports-es6-autofix
Ambas cuentas no estaban accesibles cuando se prepararon los hallazgos. Otras identidades relacionadas con la actividad son jpd12, jpd13, npmhell, npmpackagejpd, npmtestdharsh, jpdhackerone11 y packagedharsh.
La pérdida de acceso a dos cuentas ofrece cierto nivel de contención, pero no demuestra que se hayan retirado todos los paquetes maliciosos o las identidades relacionadas. Tampoco existe confirmación pública de que se haya desactivado toda la infraestructura asociada a los atacantes.
Las dependencias remotas ocultaban la principal funcionalidad del stealer
El modelo de distribución de PhantomRaven separa el paquete visible en npm del código responsable de la mayor parte de su comportamiento malicioso.
Los paquetes utilizan una dependencia dinámica remota externa, o RDD, alojada en un servidor controlado por el operador. Después de la instalación, el paquete descarga la funcionalidad ejecutable desde esa infraestructura. De este modo, queda menos código evidentemente malicioso dentro del propio archivo npm y la inspección estática del paquete publicado resulta menos fiable.
Además, este método proporciona flexibilidad al operador. El código distribuido de forma remota puede modificarse sin publicar una nueva versión del paquete, mientras que los defensores que examinen únicamente el artefacto del registro podrían no ver la misma funcionalidad que se ejecutó en el equipo de la víctima.
El código descargado analiza el entorno de desarrollo y puede recopilar:
- Direcciones de correo electrónico y otros datos de identidad de los desarrolladores.
- Información sobre el entorno local de CI/CD.
- Una huella del sistema que incluye la dirección IP pública del equipo.
- Detalles del entorno de ejecución y la fecha y hora actuales.
- Nombres de usuario y direcciones de correo electrónico almacenados en la configuración de Git y npm.
- Variables de entorno asociadas a GitHub Actions, GitLab CI, Jenkins y CircleCI.
- Tokens de autenticación, credenciales de control de código fuente y otros secretos expuestos.
La información recopilada se transmite a un servidor controlado por los atacantes.
No se ha informado de comportamientos destructivos ni similares a los de un ransomware. No existen indicios de que PhantomRaven cifre datos, dañe sistemas o interrumpa deliberadamente las canalizaciones de compilación. Su propósito documentado es recopilar información.
Aun así, las consecuencias pueden ir más allá del equipo del desarrollador. Un token de CI/CD robado puede proporcionar acceso a repositorios de código fuente, sistemas de compilación, flujos de trabajo de despliegue u otros recursos de la empresa, según los permisos del token.
El código fuente del malware mostraba indicios de uso de un LLM
CrowdStrike atribuyó la participación de un LLM con un alto grado de confianza, pero no afirmó tener pruebas directas sobre el modelo o servicio utilizado. La evaluación se basa en varias características encontradas en el código de PhantomRaven.
Uno de los indicios era el volumen y el estilo de los comentarios. Los desarrolladores de malware a veces documentan el código, pero las explicaciones extensas que repiten operaciones sencillas pueden parecerse al contenido generado por asistentes de programación. Los investigadores también encontraron lógica sin terminar con marcadores de posición, lo que sugiere que el código base generado podría no haberse completado o depurado por completo.
El análisis estadístico de tokens aportó otro indicador. Este tipo de análisis examina los patrones con los que se construyen el código y los textos que lo acompañan, en busca de distribuciones compatibles con contenido generado por modelos.
Ninguna de esas características demuestra por sí sola la participación de la IA. Los comentarios pueden redactarse manualmente, los marcadores de posición son habituales en software sin terminar y los clasificadores basados en tokens no son infalibles. Sin embargo, consideradas en conjunto, llevaron a CrowdStrike a concluir que probablemente un LLM ayudó a crear PhantomRaven.
Este hallazgo no significa que la campaña fuera autónoma. Todo apunta a que un operador humano seleccionó los objetivos, creó las identidades en el registro, publicó los paquetes, mantuvo la infraestructura externa y recibió la información robada.
El valor operativo de la IA generativa es más práctico: puede reducir el esfuerzo necesario para redactar código, explicar APIs desconocidas, producir variantes y ensamblar una herramienta funcional. PhantomRaven muestra cómo esas eficiencias pueden aplicarse a ataques contra la cadena de suministro de software, en lugar de al desarrollo legítimo.
El operador presentó la actividad como investigación de bug bounty
CrowdStrike afirma que el actor está activo desde noviembre de 2022 y se presenta públicamente como investigador de bug bounty. Según los informes, asegura haber recibido recompensas de al menos nueve organizaciones de los sectores tecnológico, minorista y hotelero.
Maddie Stewart informó de que, en agosto de 2025, el actor afirmó haber encontrado un problema de ejecución remota de código mediante el uso de un paquete npm malicioso. Según esa afirmación, el paquete comprometió un equipo objetivo al ejecutar su script preinstall y supuestamente logró ejecutar código de forma remota.
Este relato plantea una distinción fundamental entre las pruebas de seguridad autorizadas y un compromiso. Publicar un paquete que roba información o ejecuta código en sistemas sin permiso explícito no equivale a realizar pruebas dentro del alcance definido de un programa de bug bounty.
CrowdStrike no ha observado datos de PhantomRaven anunciados en mercados de registros de stealers. Por ello, la empresa considera que probablemente el operador utiliza el malware para identificar posibles hallazgos de bug bounty, en lugar de vender los datos recopilados a través de canales delictivos consolidados.
Esta evaluación describe la motivación probable, no la legitimidad de la técnica. Las identidades de los desarrolladores, los tokens y las variables de CI/CD siguen siendo datos sensibles, independientemente de que el operador pretenda monetizarlos mediante el envío de un informe a un programa de recompensas o a través de un mercado delictivo.
El actor también parece haber intentado publicar en Python Package Index, o PyPI, paquetes que contenían código similar para robar información. Por tanto, la actividad conocida podría no limitarse al ecosistema npm.
Los equipos defensivos deben investigar las dependencias y los secretos expuestos
No existe un parche del proveedor porque PhantomRaven no es una vulnerabilidad de un producto de software específico. No se han comunicado ningún CVE, puntuación CVSS, clasificación formal de gravedad, número confirmado de víctimas, firma de detección ni aviso exhaustivo de corrección.
Las organizaciones deberían empezar revisando las dependencias npm, los lockfiles, los registros de instalación y las cachés internas de paquetes para detectar bibliotecas inesperadas. Los dos paquetes identificados públicamente, transform-jsbi-to-bigint y sort-imports-es6-autofix, requieren una investigación directa, pero no deben considerarse una lista completa de indicadores.
Los equipos de seguridad también deberían examinar:
- Eventos de instalación de paquetes que activaran
preinstallu otros scripts del ciclo de vida. - Conexiones salientes iniciadas durante la instalación de dependencias.
- Dependencias que descarguen código ejecutable desde infraestructuras ajenas a npm.
- Accesos inesperados a archivos de configuración de Git y npm.
- Procesos que lean variables de entorno de CI/CD.
- Credenciales creadas o modificadas recientemente asociadas a cuentas de desarrolladores y de automatización.
Si se ejecutó un paquete sospechoso, eliminarlo no es suficiente. Las credenciales de GitHub, GitLab, npm, Jenkins, CircleCI y otros sistemas de CI/CD que pudieran haberse expuesto deben revocarse o rotarse, y deben revisarse los registros de repositorios y canalizaciones para detectar accesos posteriores.
Los equipos pueden reducir la exposición futura fijando las dependencias, aplicando lockfiles, restringiendo los scripts del ciclo de vida cuando sea viable desde el punto de vista operativo y controlando el acceso a la red durante las compilaciones. Los paquetes nuevos deben evaluarse teniendo en cuenta el historial del editor, la disponibilidad del código fuente, las descargas remotas inesperadas y las discrepancias entre su propósito declarado y su comportamiento durante la instalación.
La principal ventaja de PhantomRaven no era una explotación sofisticada. Era el acceso generado por la confianza de los desarrolladores, combinado con código remoto que permanecía fuera del paquete inspeccionado inicialmente.
Fuentes
Este artículo es una reelaboración original basada en las siguientes fuentes.
