Los repositorios abiertos npm y PyPI (Python Package Index) vuelven a situarse en el punto de mira de actores avanzados. Investigadores de ReversingLabs han documentado una campaña coordinada, denominada provisionalmente «graphalgo», que combina ingeniería social, ofertas de empleo falsas y paquetes maliciosos para comprometer a desarrolladores y, en última instancia, robar datos y criptoactivos. El nivel de sofisticación y las tácticas empleadas encajan con el comportamiento de grupos APT de carácter estatal, en particular con la actividad atribuida a Lazarus.
Campaña «graphalgo»: paquetes maliciosos en npm y PyPI y ataque a la cadena de suministro
Según el análisis, la operación graphalgo se mantiene activa al menos desde mayo de 2025 y se apoya en un patrón especialmente peligroso para la cadena de suministro de software. Los atacantes publican paquetes en npm y PyPI que inicialmente son benignos, sin rastro de carga maliciosa, y solo en versiones posteriores incorporan código malicioso ofuscado.
Un caso ilustrativo es el paquete de npm bigmathutils. Su primera versión limpia superó las 10 000 descargas, lo que generó confianza y facilitó su adopción en proyectos reales. En la segunda versión se añadió el componente malicioso, aprovechando la reputación ya ganada. Esta técnica se ha replicado con otras bibliotecas distribuidas bajo identidades de desarrolladores ficticios tanto en npm como en PyPI. Este enfoque recuerda a incidentes previos muy conocidos, como los de event-stream o ua-parser-js, y subraya la facilidad con la que un único paquete puede comprometer múltiples proyectos aguas abajo.
Ingeniería social y ofertas de empleo falsas en el sector blockchain
El vector inicial de compromiso en graphalgo no es puramente técnico, sino de ingeniería social. Los atacantes crean empresas ficticias —por ejemplo, «Veltrix Capital»— que se presentan como fondos de inversión o proveedores de servicios blockchain y de intercambio de criptomonedas. Para reforzar la apariencia de legitimidad registran dominios, crean organizaciones en GitHub y publican repositorios con supuestas pruebas técnicas en Python y JavaScript.
Los desarrolladores objetivo son contactados a través de LinkedIn, Facebook, foros especializados e incluso Reddit. Como parte del proceso de selección se solicita al candidato que clone un repositorio y ejecute el proyecto en local. El código de la prueba, aparentemente inofensivo, no incluye la carga maliciosa. El compromiso se produce de forma indirecta: las dependencias declaradas en los archivos de configuración se instalan automáticamente desde npm o PyPI, y es ahí donde se integra el malware.
RAT con C2 autenticado por tokens y foco en MetaMask y criptoactivos
Una vez instalados los paquetes maliciosos, el sistema de la víctima descarga un módulo de tipo RAT (Remote Access Trojan), diseñado para proporcionar acceso remoto persistente. Este RAT se comunica de forma periódica con un servidor de mando y control (C2) desde el que recibe instrucciones para recopilar información del sistema, enumerar archivos y procesos, gestionar directorios y transferir archivos hacia y desde el equipo comprometido.
Un rasgo distintivo de esta campaña es el uso de un mecanismo de autenticación basado en tokens para el tráfico C2. Durante el primer contacto, la máquina infectada envía datos del dispositivo y recibe un token único, que se incluye en todas las comunicaciones posteriores. Este enfoque dificulta la suplantación de clientes y complica el análisis de la infraestructura de mando y control. Técnicas similares se observaron en 2023 en operaciones vinculadas al grupo norcoreano Jade Sleet (TraderTraitor, UNC4899).
El RAT también incorpora funciones orientadas al robo de criptomonedas. Entre otras comprobaciones, verifica si en el navegador de la víctima está instalado el popular monedero MetaMask. Este tipo de comprobaciones, combinadas con el interés históricamente demostrado por Lazarus en los activos digitales, sugiere una motivación financiera muy clara, además de posibles objetivos de espionaje.
Bada Stealer en npm: el caso del paquete malicioso duer-js
Paralelamente a graphalgo, especialistas de JFrog han identificado otro paquete malicioso en npm, denominado duer-js y publicado por el usuario luizaearlyx. En la descripción se presentaba como una utilidad para «mejorar la visibilidad de la ventana de consola», pero en realidad ocultaba un infostealer conocido como Bada Stealer.
Bada Stealer está diseñado para robar credenciales y sesiones: tokens de Discord, contraseñas, cookies y datos de autocompletado de navegadores como Google Chrome, Microsoft Edge, Brave, Opera y Yandex Browser. Además, recolecta información sobre monederos de criptomonedas y detalles del sistema. Los datos se exfiltran mediante un Discord webhook y se almacenan adicionalmente en el servicio de ficheros Gofile. El paquete descarga un segundo componente que se integra en el autostart de Discord Desktop, se actualiza de forma autónoma y accede directamente a la información del cliente, incluidos métodos de pago vinculados.
XPACK ATTACK: extorsión de criptomonedas durante npm install
Otra campaña destacada, rastreada como XPACK ATTACK y detectada por la iniciativa OpenSourceMalware el 4 de febrero de 2026, demuestra que los atacantes también exploran modelos de extorsión directamente en el flujo de trabajo del desarrollador. Todos los paquetes implicados, publicados por el usuario dev.chandra_bose, activan la carga maliciosa en el momento de ejecutar npm install.
El código abusaba del código de estado HTTP 402 Payment Required para simular un sistema de «suscripción de pago» legítimo: la instalación se bloqueaba hasta que el desarrollador enviase 0,1 USDC/ETH al monedero indicado. De forma paralela, el script recopilaba nombres de usuario de GitHub y huellas del dispositivo. Si el usuario se negaba a pagar, la instalación fallaba tras más de cinco minutos, imitando el comportamiento de una limitación comercial y evitando levantar sospechas inmediatas de actividad maliciosa.
Buenas prácticas de ciberseguridad para desarrolladores y empresas
Los incidentes descritos encajan con una tendencia ya señalada en informes como el State of the Software Supply Chain de Sonatype y trabajos conjuntos de Google y la OpenSSF: los ataques a la cadena de suministro de software crecen a un ritmo de varios cientos por ciento en pocos años, y los ecosistemas de paquetes abiertos son uno de los vectores más explotados. En este contexto, confiar ciegamente en dependencias públicas sin control adicional supone un riesgo estratégico tanto para organizaciones como para desarrolladores independientes.
Para reducir la superficie de ataque, resulta esencial implantar medidas de defensa en profundidad. Entre las recomendaciones más efectivas se encuentran: utilizar repositorios internos o espejos privados con listas de permitidos (allow-list) de paquetes aprobados; revisar la historia de versiones, cambios repentinos de mantenedor y reputación de los autores; y emplear escáneres de seguridad y análisis de composición de software (SCA) integrados en la pipeline de CI/CD. Del mismo modo, cualquier «prueba técnica» o repositorio recibido por enlace de supuestos reclutadores debe tratarse con el mismo rigor que un archivo adjunto desconocido.
La combinación de vigilancia técnica, políticas de seguridad robustas y una fuerte cultura de concienciación entre los equipos de desarrollo es hoy el mejor antídoto frente a campañas como graphalgo, Bada Stealer o XPACK ATTACK. Mantenerse informado, auditar de forma sistemática las dependencias y desconfiar de ofertas demasiado atractivas —especialmente en el ámbito blockchain y cripto— se ha convertido en un requisito básico para proteger tanto la infraestructura corporativa como los activos digitales personales.