El Paquete npm “Axios” Distribuye un RAT Multiplataforma tras el Secuestro de Cuenta

El ecosistema de desarrollo de software enfrenta uno de los ataques a la cadena de suministro más graves registrados hasta la fecha. El 30 y 31 de marzo de 2026, axios, el cliente HTTP de JavaScript más utilizado del mundo (con aproximadamente 100 millones de descargas semanales), fue comprometido.

Actores de amenazas, atribuidos con alta confianza por firmas como Google (Mandiant) y SentinelOne a grupos patrocinados por Corea del Norte (BlueNoroff / Lazarus Group), secuestraron la cuenta npm del mantenedor principal. Durante una ventana de aproximadamente tres horas, publicaron las versiones maliciosas 1.14.1 y 0.30.4, las cuales instalaban un Troyano de Acceso Remoto (RAT) multiplataforma en los sistemas de cualquier desarrollador o pipeline de CI/CD que ejecutara npm install.


Anatomía del Ataque

El ataque destaca por su disciplina operativa, evadiendo las protecciones de GitHub, las revisiones de código y los escáneres de seguridad estáticos al publicar directamente en el registro de npm utilizando un token de acceso robado. La cadena de infección funcionó de la siguiente manera:

  • Preparación del Señuelo: El atacante (usando correos anónimos de ProtonMail) publicó inicialmente una versión limpia de un paquete falso llamado plain-crypto-js@4.2.0 para establecer credibilidad. Horas después, publicó la versión maliciosa 4.2.1.
  • Inyección de la Dependencia: Las versiones comprometidas de Axios (1.14.1 y 0.30.4) no contenían código malicioso directo; en su lugar, declaraban a plain-crypto-js@4.2.1 como una nueva dependencia.
  • Ejecución en la Instalación: Al ejecutar npm install, el gestor de paquetes descargaba el árbol de dependencias y automáticamente ejecutaba el script postinstall (node setup.js) alojado en plain-crypto-js.
  • Despliegue del RAT y Evasión: Este script actuaba como un dropper o cargador, inyectando un RAT específico para el sistema operativo de la víctima (PowerShell en Windows, Mach-O C++ en macOS, Python en Linux).
  • Autodestrucción: Una vez que el malware se comunicaba con su infraestructura de Comando y Control (C2) y aseguraba la persistencia, eliminaba sus propios artefactos de instalación y reemplazaba sus metadatos con una versión limpia para destruir la evidencia forense y engañar a los desarrolladores que revisaran la carpeta node_modules.

Impacto

Cualquier estación de trabajo de desarrollador, servidor o entorno de Integración/Despliegue Continuo (CI/CD) que haya descargado las versiones afectadas durante la ventana del ataque debe considerarse completamente comprometido. El RAT otorga a los atacantes control total sobre el sistema, permitiendo el robo masivo de código fuente, claves de API, credenciales de la nube, tokens de GitHub y carteras de criptomonedas (un objetivo histórico de este actor de amenazas). La capacidad de moverse lateralmente desde los sistemas de construcción hacia la infraestructura de producción representa un riesgo crítico de compromiso generalizado.


Recomendaciones y Mitigación Inmediata

Las versiones maliciosas ya han sido eliminadas por el equipo de seguridad de npm, pero el daño en los sistemas que las descargaron requiere respuesta a incidentes inmediata:

  • Detección de Exposición: Auditar urgentemente todos los archivos de bloqueo (package-lock.json, yarn.lock, pnpm-lock.yaml) en busca de referencias a axios@1.14.1, axios@0.30.4 o la dependencia plain-crypto-js.
  • Cuarentena y Reconstrucción: Aislar de la red cualquier máquina o contenedor que haya ejecutado una instalación durante la ventana afectada. No se debe intentar limpiar o desinfectar un sistema comprometido; la única mitigación segura es reconstruir desde una imagen base limpia o una instantánea previa al incidente.
  • Rotación Total de Credenciales (Zero Trust): Revocar y reemitir inmediatamente todas las credenciales que residieran en los sistemas afectados. Esto incluye llaves SSH, tokens de npm, tokens de acceso personal (PAT) de GitHub y credenciales de proveedores en la nube (AWS, GCP, Azure).
  • Búsqueda de Artefactos (Threat Hunting): Buscar indicadores de compromiso (IoCs) del RAT en los hosts de construcción. Esto incluye buscar archivos en rutas como %PROGRAMDATA%\wt.exe (Windows), /Library/Caches/com.apple.act.mond (macOS) o /tmp/ld.py (Linux), así como conexiones de red salientes hacia IPs conocidas del C2 (ej. 142.11.206.73).
  • Reforzamiento de Pipelines: Para prevenir futuros incidentes similares, las organizaciones deben forzar el uso de npm ci (que respeta estrictamente el lockfile) en lugar de npm install en entornos de CI/CD, y evaluar la viabilidad de deshabilitar los scripts de instalación automatizados (npm ci –ignore-scripts).

Related Post