Hackeo masivo a Axios: el ataque de cadena de suministro que compromete millones de proyectos en 1.1 segundos
Noticias

Hackeo masivo a Axios: el ataque de cadena de suministro que compromete millones de proyectos en 1.1 segundos

CityPC Team
31 de marzo de 202612 min15833 vistas

La libreria HTTP mas popular del mundo fue secuestrada mediante un ataque de cadena de suministro. Un troyano de acceso remoto se instala en solo 1.1 segundos con un simple npm install. Te explicamos como ocurrio, que versiones estan infectadas y que hacer si tu equipo fue comprometido.

Alerta critica de seguridad

En las ultimas horas se ha revelado lo que podria ser el ataque de cadena de suministro mas sofisticado, sigiloso y peligroso de la historia de la programacion moderna. Axios, la libreria HTTP mas popular del mundo (con mas de 100 millones de descargas semanales y presente en casi cualquier proyecto de JavaScript moderno), ha sido secuestrada.

Si eres desarrollador, ejecutas pipelines de Integracion y Despliegue Continuo (CI/CD), administras servidores web, o simplemente corriste el comando npm install en los ultimos dias para levantar un proyecto local, tu maquina o tu infraestructura en la nube podria estar completamente comprometida con un Troyano de Acceso Remoto (RAT). Y lo peor de todo: el malware fue disenado especificamente para borrar sus propias huellas, dejandote con una falsa sensacion de seguridad.


Como lograron infiltrar un gigante como Axios?

A diferencia de ataques anteriores (como el infame caso de event-stream o colors.js), los hackers no inyectaron codigo malicioso en ninguno de los 86 archivos fuente de la libreria. No modificaron la logica HTTP de Axios. Fue un ataque quirurgico, disenado para pasar desapercibido incluso ante los revisores de codigo mas experimentados.

El atacante logro robar un token de acceso clasico de larga duracion (long-lived npm classic access token) de uno de los mantenedores principales del proyecto (identificado en los registros de npm como Jason). Con las llaves del reino en su poder, el atacante no hizo ruido de inmediato.

Primero, cambio el correo electronico de recuperacion de la cuenta a stoppro.mme, asegurando su control. Luego, altero un solo archivo estructural: el package.json.

En la seccion de dependencias, anadieron una entrada falsa llamada crypto.js. Cualquier desarrollador o revisor de codigo que echara un vistazo rapido habria asumido razonablemente que se trataba de una libreria estandar de criptografia para manejar hashes o encriptacion. Sin embargo, su unico proposito era actuar como un caballo de Troya para ejecutar un script oculto post-instalacion (postinstall).

Para esquivar las estrictas alertas de seguridad de GitHub, dependabot y los pipelines automaticos, los atacantes fueron extremadamente metodicos: prepararon y subieron una version "limpia" del archivo 18 horas antes del ataque real, saltandose por completo las barreras de proteccion habituales publicando directamente usando la interfaz de comandos (CLI) de npm, sin pasar por los repositorios publicos de codigo.


La pesadilla de los 1.1 segundos: como opera el RAT

La ejecucion de este malware es brillante y aterradora por su simplicidad y velocidad. No tienes que hacer nada fuera de lo normal, ni ejecutar un script sospechoso de forma manual; el simple hecho de ejecutar npm install (ya sea tu en tu terminal local o tu servidor automatizado en la nube) detona la cadena de infeccion:

  1. El script postinstall despierta en el momento en que se descargan los paquetes y ejecuta un dropper (un programa disenado para instalar malware) llamado setup.js.
  2. Este archivo, protegido con una compleja doble capa de ofuscacion (utilizando operaciones logicas XOR y codificacion Base64 bajo la extrana frase "order 7077"), revela su codigo letal en memoria para evadir escaneres estaticos de antivirus.
  3. El malware examina tu entorno y detecta instantaneamente tu sistema operativo (Windows, macOS o Linux) y la arquitectura de tu procesador (x86, ARM).
  4. Hace un "ping" silencioso a un servidor de Comando y Control (C2) operado por el atacante, enviando informacion basica sobre tu equipo.
  5. El servidor C2 responde enviando, descargando e instalando un Troyano de Acceso Remoto (RAT) compilado especificamente para las vulnerabilidades de tu sistema operativo.

Todo este proceso, desde el inicio del script hasta la instalacion del troyano, sucede en exactamente 1.1 segundos.

Por que nadie se dio cuenta de inmediato? Porque en el segundo 1.2, el malware hace una limpieza exhaustiva: elimina el archivo setup.js, borra el package.json infectado y lo reemplaza agilmente por el archivo limpio que habian preparado 18 horas antes. Tu terminal te devuelve el mensaje clasico de que la instalacion fue exitosa y sin errores. No hay advertencias de seguridad. No hay archivos residuales en la carpeta de dependencias. Pero el atacante ya tiene una puerta trasera con acceso total a tu computadora, lista para robar codigo fuente, credenciales o usar tu maquina en una botnet.


Versiones infectadas y como revisar tu sistema

El ataque (que fue descubierto y reportado inicialmente por la empresa de seguridad socket.dev) enveneno dos ramas de lanzamiento muy especificas, publicadas con 39 minutos de diferencia para maximizar el dano. Las versiones letales son:

  • 1.14.1
  • 0.30.4

Atencion especial: Es crucial entender que rara vez instalas Axios directamente con npm install axios. Probablemente esta anidado en decenas, si no cientos, de herramientas que usas a diario, desde frameworks de frontend hasta herramientas de CLI, pasando por el backend de tu empresa.

Para revisar si el codigo malicioso paso por tu sistema, abre tu terminal inmediatamente y ejecuta:

npm list axios

Si tus proyectos son complejos o si usas administradores de paquetes como yarn o pnpm, necesitas buscar en todo el arbol de dependencias (yarn why axios o pnpm why axios). Puedes usar comandos de busqueda profunda en tu sistema operativo para buscar archivos .lock que contengan referencias a esas versiones exactas.


Protocolo de emergencia: que hacer si estas infectado

Si el comando de revision detecta que la version 1.14.1 o la 0.30.4 se instalo en tu entorno, DETENTE INMEDIATAMENTE. ASUME EL PEOR ESCENARIO.

Bajo ninguna circunstancia creas que el problema se soluciona borrando la carpeta node_modules. No intentes hacer un downgrade (bajar a una version anterior) usando npm. Tu maquina entera, el sistema operativo subyacente y todo lo que contiene, debe considerarse comprometida a nivel de administrador/root. El atacante ya tiene una puerta trasera activa que sobrevive a los reinicios.

1. Aislamiento total

Desconecta el equipo de internet al instante. Desactiva el Wi-Fi y desconecta el cable Ethernet. Evita que el RAT se comunique con el servidor C2.

2. Rotacion masiva de credenciales

Asume, sin dudarlo, que el atacante ya extrajo todas tus variables de entorno (archivos .env) y tu historial de comandos. Desde un dispositivo completamente diferente y seguro, tienes que revocar y cambiar de inmediato:

  • Claves de AWS/GCP/Azure
  • Tokens de GitHub/GitLab
  • Tokens de publicacion en NPM
  • Contrasenas de bases de datos de produccion
  • Llaves SSH
  • Contrasenas personales y corporativas
  • Cualquier acceso a APIs de terceros

3. La opcion nuclear: formateo a bajo nivel

La unica forma comprobada y segura de erradicar un RAT de este nivel de sofisticacion es borrar por completo el disco duro (hacer un borrado seguro o wipe) e instalar el sistema operativo desde cero, preferiblemente desde un medio de instalacion nuevo.

4. Auditoria de infraestructura

Si el entorno infectado era un servidor de integracion (CI/CD) o un entorno de produccion, revisa minuciosamente los logs (registros) de todos tus repositorios, bases de datos y servidores en busca de accesos no autorizados en las ultimas horas. Notifica a tu equipo de seguridad de la informacion.


Por que esto nos importa a todos

Este evento marca un antes y un despues en la industria tecnologica. La era de la inocencia, en la que podiamos confiar ciegamente en el codigo abierto de terceros mediante un simple npm install, ha terminado definitivamente. El ecosistema es fragil.

De ahora en adelante, es imperativo:

  • Auditar rigidamente tus dependencias
  • Usar versiones estaticas comprobadas (lockfiles estrictos)
  • Mantener tus entornos de desarrollo fuertemente aislados
  • Implementar politicas de tokens de corta duracion en tus registros de paquetes
  • Monitorear cambios inesperados en los archivos package.json de tus dependencias

En CityPC estamos comprometidos con la seguridad de nuestros clientes. Si sospechas que tu equipo fue comprometido por este u otro tipo de malware, contactanos para una revision profesional de tu sistema.

Sobre el autor

CityPC Team

Equipo experto en reparación y soporte técnico de computadoras en Veracruz