Resumen ejecutivo

Los investigadores de Unit 42 observaron el impacto generalizado del ataque significativo a la cadena de suministro dirigido a la biblioteca Axios de JavaScript. El ataque se produjo después de que la cuenta npm de un mantenedor de Axios fuera secuestrada, lo que llevó a la publicación de actualizaciones maliciosas (versiones v1.14.1 y v0.30.4).

Estas versiones comprometidas introdujeron una dependencia oculta llamada plain-crypto-js. Esta dependencia es un troyano de acceso remoto (RAT) multiplataforma capaz de afectar sistemas Windows, macOS y Linux. El malware se diseñó para realizar tareas de reconocimiento y establecer persistencia, con una función añadida de autodestrucción para lograr la evasión.

Axios es una popular biblioteca cliente HTTP que usa promesas para JavaScript, usada para realizar peticiones API en navegadores y Node.js. Cuenta con transformación automática de datos JSON, interceptación de solicitudes/respuestas y cancelación de solicitudes, lo que la convierte en una herramienta estándar para conectar aplicaciones frontend a servicios backend.

El análisis del malware que usaron los atacantes coincide con operaciones que, según informes previos, involucraban a la República Popular Democrática de Corea (RPDC).

Esta campaña ha afectado a los siguientes sectores en Estados Unidos, Europa, Oriente Medio, el sur de Asia y Australia:

  • Servicios empresariales
  • Atención al cliente
  • Servicios financieros
  • Alta tecnología
  • Educación superior
  • Seguros
  • Medios y entretenimiento
  • Equipamiento médico
  • Servicios profesionales y legales
  • Servicios minoristas

En este artículo, se recomiendan una serie de mitigaciones para el ataque.

Los clientes de Palo Alto Networks están mejor protegidos de las amenazas analizadas en este artículo gracias a los siguientes productos y servicios:

El equipo de respuesta ante incidentes de Unit 42 también puede involucrarse para ayudar con una intrusión o para proporcionar una evaluación proactiva que permita reducir el riesgo.

Vulnerabilidades debatidas Cadena de suministro, amenazas de alto perfil

Detalles del ataque a la cadena de suministro de Axios

El atacante publicó dos versiones comprometidas de Axios (v1.14.1 y v0.30.4), pero no modificó nada del código fuente de Axios. En cambio, inyectó plain-crypto-js@4.2.1 en el archivo package.json como dependencia en tiempo de ejecución.

El instalador posterior a la instalación

Con versiones comprometidas de Axios, cuando un desarrollador ejecuta npm install axios, npm automáticamente resuelve el árbol de dependencias e instala plain-crypto-js. Esto activa el hook del ciclo de vida postinstall de npm, ejecutando en segundo plano un script del instalador de Node.js altamente ofuscado llamado setup.js.

Para ofuscar sus operaciones, setup.js usa un esquema de codificación de dos capas que implica la inversión de cadenas, la decodificación Base64 y un cifrado XOR que utiliza la clave OrDeR_7077.

Obtención de cargas útiles específicas de la plataforma

El instalador consulta el sistema operativo y envía una solicitud HTTP POST a un servidor de comando y control (C2) en sfrclak[.]com:8000. Para que este tráfico saliente se parezca a solicitudes de registro npm benignas, añade rutas específicas de la plataforma:

  • packages.npm[.]org/product0 para macOS
  • packages.npm[.]org/product1 para Windows
  • packages.npm[.]org/product2 para Linux

En la Figura 1, se muestran los comandos de esta primera fase de descarga.

Fragmentos de código de comandos para cada sistema operativo: macOS, Windows y Linux.
Figura 1. Primera fase de descarga por plataforma.

Ejecución del RAT

El servidor C2 entrega una carga útil diferente en función del sistema operativo de la víctima:

  • macOS: el instalador usa AppleScript para descargar un binario Mach-O compilado en C++, lo guarda en /Library/Caches/com.apple.act.mond, lo hace ejecutable y lo lanza silenciosamente a través de /bin/zsh.
  • Windows: El instalador malicioso (dropper) busca y copia el binario de Windows PowerShell en %PROGRAMDATA%\wt.exe. A continuación, utiliza VBScript para obtener y ejecutar un script secundario de troyano de acceso remoto (RAT) de PowerShell, el cual es ejecutado posteriormente por wt.exe. También establece persistencia a través de una clave de ejecución (Run key) en el registro.
  • Linux: el instalador usa el comando execSync de Node.js para descargar un script RAT de Python a /tmp/ld.py, ejecutándolo en segundo plano mediante el comando nohup.

Arquitectura RAT unificada

A pesar de estar escritas en tres lenguajes diferentes (C++, PowerShell y Python), las tres cargas útiles funcionan como implementaciones del mismo marco RAT.

Todas utilizan un protocolo C2 idéntico, envían datos JSON codificados en Base64 a través de una solicitud HTTP POST y se comunican con el servidor cada 60 segundos. El servidor C2 acepta los mismos cuatro comandos del atacante:

  • kill (autoterminar)
  • runscript (ejecutar comandos shell/script)
  • peinject (soltar y ejecutar cargas útiles binarias)
  • rundir (enumerar directorios)

Todas las variantes de RAT usan una cadena de agente de usuario codificada y muy anacrónica que suplanta a Internet Explorer 8 en Windows XP: mozilla/4.0 (compatible; msie 8.0; windows nt 5.1; trident/4.0).

Solapamiento con WAVESHAPER

El análisis inicial de la carga útil confirma un solapamiento significativo con WAVESHAPER. WAVESHAPER es una puerta trasera C++ que se comunica con su servidor C2 utilizando la biblioteca curl, empleando HTTP o HTTPS según se especifique en los argumentos de la línea de comandos.

La dirección del servidor C2 también se proporciona mediante parámetros de línea de comandos, lo que permite a la puerta trasera descargar y ejecutar cargas útiles arbitrarias desde la infraestructura del adversario.

WAVESHAPER también se ejecuta como un demonio al bifurcarse en un proceso secundario que se ejecuta en segundo plano, independiente de la sesión principal. Recopila la información del sistema devuelta, que se envía al servidor C2 en una solicitud HTTP POST.

Limpieza forense

Todo el proceso, desde la instalación hasta el compromiso, dura aproximadamente 15 segundos. Tras lanzar con éxito la carga útil, el instalador Node.js realiza una limpieza antiforense agresiva. Elimina el archivo setup.js, elimina el hook postinstall y reemplaza el package.json alterado por un archivo señuelo limpio llamado package.md. Esto garantiza que los desarrolladores que inspeccionen las carpetas node_modules después de la instalación no encontrarán signos evidentes de código malicioso.

Consultas de búsqueda de amenazas gestionadas de Unit 42

El equipo de búsqueda de amenazas gestionadas de Unit 42 sigue rastreando cualquier intento de explotar esta situación en nuestros clientes, por medio de Cortex XDR y las consultas XQL que se indican a continuación. Los clientes de Cortex XDR también pueden utilizar estas consultas XQL para buscar indicios de explotación.

Conclusión

Los atacantes han estado aumentando la frecuencia y la escala de las operaciones de la cadena de suministro de npm desde principios de 2026. Proteger el canal de integración continua/implementación continua (CI/CD) debería ser una prioridad para cualquier organización a fin de mitigar esta creciente amenaza.

A partir de la cantidad de información disponible públicamente, recomendamos encarecidamente las siguientes acciones:

Evaluación inmediata y aislamiento

  • Auditoría de paquetes maliciosos: busque en sus proyectos y directorios node_modules las versiones de Axios comprometidas (1.14.1 y 0.30.4) y el paquete plain-crypto-js inyectado (versiones 4.2.0 y 4.2.1).
  • Verificación de la presencia de artefactos de malware: inspeccione los sistemas en busca de indicadores de vulneración específicos de la plataforma, como /Library/Caches/com.apple.act.mond (macOS), %PROGRAMDATA%\wt.exe (Windows) y /tmp/ld.py (Linux).
  • Aislamiento de los sistemas afectados: si descubre los paquetes maliciosos o artefactos RAT, aísle inmediatamente el sistema de la red.

Resolución y reconstrucción

  • Reconstrucción desde cero: si un entorno se ve comprometido, no intente limpiar el malware mientras siga en su sitio. En cambio, reconstruya completamente el entorno desde un estado conocido y confiable.
  • Borrado de cachés: borre las cachés locales y compartidas del gestor de paquetes (npm, yarn, pnpm) en todas las estaciones de trabajo y los servidores de compilación para evitar la reinfección en futuras instalaciones.

Rotación completa de credenciales

  • Suposición de vulneración: si el paquete malicioso fue ejecutado, debe suponer que se robaron todos los secretos accesibles en esa máquina.
  • Rotación de todos los secretos: rote inmediatamente las credenciales expuestas, incluidos los tokens npm, las claves de acceso AWS, las claves privadas SSH, las credenciales de entorno de nube (Google Cloud, Azure), los secretos CI/CD y cualquier valor sensible almacenado en archivos .env.

Control de versiones y fijación de dependencias

  • Disminución de la versión de Axios: revierta inmediatamente a las últimas versiones seguras conocidas de Axios: 1.14.0 u 0.30.3.
  • Fijación de dependencias: vincule Axios a estas versiones seguras dentro del archivo package-lock.json para evitar actualizaciones accidentales.
  • Uso de anulaciones: añada un bloque overrides en la configuración del paquete para evitar que otros paquetes resuelvan versiones maliciosas de forma transitoria.
  • Restricción de los repositorios corporativos: configure los repositorios npm gestionados por la empresa para que sirvan estrictamente solo las versiones confiables y conocidas de Axios.

Defensa y supervisión de redes

  • Bloqueo del tráfico C2: bloquee todo el tráfico de salida hacia el dominio C2 del atacante (sfrclak[.]com) y la dirección IP (142.11.206[.]73).
  • Supervisión de registros: supervise los registros de red en busca de conexiones salientes sospechosas a través del puerto 8000, comportamiento de comunicación y solicitudes HTTP POST anómalas.

CI/CD y refuerzo de canales

  • Auditoría del canal de CI/CD: revise los registros de compilación automatizados para ver si las versiones afectadas se instalaron durante ejecuciones recientes. Rote los secretos de los flujos de trabajo que los ejecutaron.
  • Pause y valide las implementaciones: ponga en pausa temporalmente las implementaciones de CI/CD para proyectos que dependen de Axios, para validar que sus compilaciones no están extrayendo automáticamente las “últimas” versiones envenenadas.
  • Desactivación de los scripts del ciclo de vida: utilice la opción --ignore-scripts durante las instalaciones CI/CD para evitar explícitamente que los hooks postinstall de npm se ejecuten durante las compilaciones automatizadas.

Seguridad de los desarrolladores a largo plazo

  • Entornos sandbox: aísle los entornos de desarrollo utilizando contenedores o sandboxes para restringir el acceso al sistema de archivos del host.
  • Secretos de bóveda: migre los secretos en texto plano de las máquinas de los desarrolladores a bóvedas seguras o llaveros del sistema operativo (con herramientas como aws-vault) para que los scripts maliciosos no puedan extraerlos mediante programación.
  • Implementación de detección y respuesta de endpoint (EDR): asegúrese de que se implementen soluciones EDR en las estaciones de trabajo de los desarrolladores para supervisar los procesos sospechosos que se generan a partir de aplicaciones Node.js.

Palo Alto Networks ha compartido nuestros resultados con nuestros compañeros de Cyber Threat Alliance (CTA). Los miembros de CTA utilizan esta inteligencia para implementar rápidamente medidas de protección para sus clientes y desarticular sistemáticamente a los ciberdelincuentes. Obtenga más información sobre Cyber Threat Alliance.

Los clientes de Palo Alto Networks están mejor protegidos gracias a nuestros productos, como se indica a continuación. Actualizaremos este resumen de amenazas a medida que dispongamos de más información pertinente.

Protecciones de productos de Palo Alto Networks para el ataque a la cadena de suministro de Axios

Los clientes de Palo Alto Networks pueden aprovechar varias protecciones y actualizaciones de productos para identificar y defenderse contra esta amenaza.

Si cree que podría haber resultado vulnerado o tiene un problema urgente, póngase en contacto con el equipo de respuesta ante incidentes de Unit 42 o llame al:

  • Norteamérica: llamada gratuita: +1 (866) 486-4842 (866.4.UNIT42)
  • Reino Unido: +44.20.3743.3660
  • Europa y Oriente Medio: +31.20.299.3130
  • Asia: +65.6983.8730
  • Japón: +81.50.1790.0200
  • Australia: +61.2.4062.7950
  • India: 000 800 050 45107
  • Corea del Sur: +82.080.467.8774

Advanced WildFire

Los modelos de aprendizaje automático y las técnicas de análisis de Advanced WildFire se han revisado y actualizado a la luz de los indicadores compartidos en esta investigación.

Servicios de seguridad entregados en la nube para el firewall de nueva generación

URL Filtering avanzado y Advanced DNS Security identifican las direcciones IP y los dominios conocidos asociados con esta actividad como maliciosos.

Cortex AgentiX

Los analistas de seguridad pueden utilizar el lenguaje natural para pedir al agente de inteligencia de amenazas Cortex AgentiX que extraiga los indicadores de compromiso (IoC) de archivos de este informe de amenazas. A continuación, tendrán que enriquecerlos, comprobar si hay avistamientos en su instancia de Cortex y alertas relacionadas, y proporcionar un resumen rápido del impacto para la organización.

Cortex XDR y XSIAM

Cortex XDR y XSIAM proporcionan una defensa multicapa para brindar protección contra el acceso inicial, C2 y el movimiento lateral potencial descrito en este artículo. Esto incluye Behavioral Threat Protection (BTP), Advanced WildFire y Cortex Analytics.

En concreto, observamos prevención lista para usar (OotB) a través de Advanced WildFire y BTP para las segundas etapas de este ataque en Windows y macOS. Cortex Analytics puede ayudar a detectar actividades C2 y actividades sospechosas en la cadena de suministro utilizando nuestros detectores a medida descritos en los siguientes artículos:

A los clientes les aconsejamos que actualicen los agentes a las versiones compatibles y a la última actualización de contenidos para recibir la mejor protección.

Cortex Cloud

La plataforma Cortex Cloud proporciona operaciones de detección y prevención tanto para la primera como para la segunda etapa de la cadena de ataque Axios. Esto incluye Software Supply Chain Security, Application Security (AppSec), Cloud Workload Protection (CWP), Cortex XDR y XSIAM.

Cada fase del ataque se puede asignar a una capacidad de Cortex Cloud que ayude a prevenirlo o detectarlo, desde operaciones de verificación de editores de confianza de CI/CD hasta la supervisión posterior a la instalación en tiempo de ejecución y la detección de persistencia de endpoints.

Indicadores de vulneración

SHA256 Hashes

  • ad8ba560ae5c4af4758bc68cc6dcf43bae0e0bbf9da680a8dc60a9ef78e22ff7
  • fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf
  • cdc05cd30eb53315dadb081a7b942bb876f0d252d20e8ed4d2f36be79ee691fa
  • 8449341ddc3f7fcc2547639e21e704400ca6a8a6841ae74e57c04445b1276a10
  • 01c9484abc948daa525516464785009d1e7a63ffd6012b9e85b56477acc3e624
  • 7b47ed28e84437aee64ffe9770d315c1b984135105f7f608a8b9579517bc0695
  • 526ab39d1f56732e4e926715aaa797feb13b1ae86882ec570a4d292e7fdc3699
  • a98e04dec3a7fe507eb30c72da808bad60bc14d9d80f9770ec99c438faa85a1a
  • 0d83030ab8bfba675fc1661f0756b6770be7dd80b1b718de3d68a01f2e79a5f4
  • 92ff08773995ebc8d55ec4b8e1a225d0d1e51efa4ef88b8849d0071230c9645a
  • 58401c195fe0a6204b42f5f90995ece5fab74ce7c69c67a24c61a057325af668
  • fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf
  • e10b1fa84f1d6481625f741b69892780140d4e0e7769e7491e5f4d894c2e0e09
  • f7d335205b8d7b20208fb3ef93ee6dc817905dc3ae0c10a0b164f4e7d07121cd
  • 617b67a8e1210e4fc87c92d1d1da45a2f311c08d26e89b12307cf583c900d101
  • e49c2732fb9861548208a78e72996b9c3c470b6b562576924bcc3a9fb75bf9ff
  • 92ff08773995ebc8d55ec4b8e1a225d0d1e51efa4ef88b8849d0071230c9645a
  • 506690fcbd10fbe6f2b85b49a1fffa9d984c376c25ef6b73f764f670e932cab4
  • 4465bdeaddc8c049a67a3d5ec105b2f07dae72fa080166e51b8f487516eb8d07
  • fcb81618bb15edfdedfb638b4c08a2af9cac9ecfa551af135a8402bf980375cf
  • 58401c195fe0a6204b42f5f90995ece5fab74ce7c69c67a24c61a057325af668
  • 5bb67e88846096f1f8d42a0f0350c9c46260591567612ff9af46f98d1b7571cd
  • 59336a964f110c25c112bcc5adca7090296b54ab33fa95c0744b94f8a0d80c0f
  • a224dd73b7ed33e0bf6a2ea340c8f8859dfa9ec5736afa8baea6225bf066b248
  • 5e2ab672c3f98f21925bd26d9a9bba036b67d84fde0dfdbe2cf9b85b170cab71
  • 20df0909a3a0ef26d74ae139763a380e49f77207aa1108d4640d8b6f14cab8ca
  • 5b5fbc627502c5797d97b206b6dcf537889e6bea6d4e81a835e103e311690e22
  • 506690fcbd10fbe6f2b85b49a1fffa9d984c376c25ef6b73f764f670e932cab4
  • 4465bdeaddc8c049a67a3d5ec105b2f07dae72fa080166e51b8f487516eb8d07
  • 9c64f1c7eba080b4e5ff17369ddcd00b9fe2d47dacdc61444b4cbfebb23a166c

Direcciones IP y dominios

  • 142.11.206[.]73
  • sfrclak[.]com
  • callnrwise[.]com
  • hxxp://sfrclak[.]com:8000
  • hxxp://sfrclak[.]com:8000/6202033

Actualizado el 1 de abril de 2026, a la 1.15 p. m. PT para añadir cobertura para Advanced WildFire.

Actualizado el 9 de abril de 2026, a las 8:50 a. m. PT, para añadir cobertura de Advanced Threat Prevention.

Actualizado el 13 de abril de 2026, a las 12:50 p. m. PT, para aclarar cómo se ejecuta el troyano de acceso remoto (RAT) en su versión para Windows. Se añadió cobertura para Cortex AgentiX.

Enlarged Image