Un «Chernóbil» digital en el desarrollo web. Cómo una biblioteca estuvo a punto de dejar desprotegida a toda la red

Un «Chernóbil» digital en el desarrollo web. Cómo una biblioteca estuvo a punto de dejar desprotegida a toda la red

Te explicamos por qué el botón "Actualizar" de siempre se ha convertido en una trampa.

image

La popular biblioteca axios, difícil de imaginar en el desarrollo web moderno, se vio inesperadamente en el centro de un ataque grave. Los atacantes introdujeron código malicioso directamente en versiones oficiales del paquete, y desarrolladores de todo el mundo empezaron a descargar actualizaciones infectadas sin sospechar la amenaza.

El incidente comenzó con la compromiso de la cuenta de uno de los principales mantenedores del proyecto. Tras obtener acceso a su cuenta de npm, los atacantes publicaron las versiones axios 1.14.1 y 0.30.4 con un componente malicioso integrado. Esas versiones parecían legítimas y sortearon las comprobaciones habituales porque fueron publicadas en nombre de un colaborador de confianza del proyecto.

En las versiones infectadas apareció la dependencia adicional plain-crypto-js 4.2.1. Tras la instalación, el paquete ejecutaba automáticamente un script oculto que descargaba un troyano de acceso remoto. El software malicioso operaba en Linux, macOS y Windows, se comunicaba con un servidor de control y permitía ejecutar comandos, recopilar datos y persistir en el sistema.

El ataque estuvo cuidadosamente preparado. Según especialistas de StepSecurity, los componentes maliciosos se crearon con antelación y la publicación afectó de forma simultánea a dos ramas del proyecto con un intervalo mínimo. Además, todos los rastros de actividad maliciosa se intentaron eliminar automáticamente, lo que complicó el análisis.

Los primeros contagios se registraron casi de inmediato: menos de minuto y medio después de la publicación de los paquetes. El principal riesgo recayó en las estaciones de trabajo de desarrolladores y en entornos de CI/CD, donde a menudo se almacenan claves de acceso y datos confidenciales.

Se determinó que los atacantes usaron un token de npm comprometido que les permitió publicar actualizaciones fuera del proceso estándar a través de GitHub. A pesar de que estaba habilitada la autenticación multifactor, ese token resultó ser el eslabón débil.

En los dispositivos infectados el código malicioso se ocultaba como procesos del sistema. En macOS se escondía en directorios del sistema, en Windows se distribuía mediante PowerShell con apariencia de herramienta legítima y en Linux se propagaba como un script de Python. Tras la instalación, el troyano contactaba regularmente con el servidor de los atacantes y podía ejecutar cualquier comando.

Para el momento del descubrimiento, las versiones maliciosas fueron eliminadas del repositorio npm. No obstante, los expertos recomiendan considerar como totalmente comprometidos los sistemas en los que se instalaron esas versiones. Se aconseja aislar las máquinas afectadas, reinstalarlas desde fuentes verificadas y cambiar todas las credenciales, incluidas las claves de acceso y los tokens.

En el contexto de una serie de ataques a la cadena de suministro en el ecosistema open source, el incidente con axios constituyó otra señal de alarma. La relación con ataques anteriores aún no se ha confirmado, pero cada compromiso exitoso abre a los atacantes el camino hacia nuevos proyectos.