Un ataque crítico a la cadena de suministro ha afectado a la biblioteca de JavaScript Axios, ampliamente utilizada, tras el ataque a la cuenta npm de su principal responsable. Los autores de la amenaza utilizaron la cuenta secuestrada para publicar dos versiones maliciosas, axios@1.14.1 y axios@0.30.4, que introducían una dependencia maliciosa (plain-crypto-js@4.2.1). Esta dependencia no formaba parte de la base de código legítima de Axios y existía únicamente para ejecutar un script de postinstalación que desplegaba un troyano de acceso remoto (RAT) multiplataforma.
El ataque estaba muy coordinado. La dependencia maliciosa se preparó con antelación y posteriormente se inyectó en las ramas de lanzamiento de Axios actuales y heredadas en un breve plazo de tiempo, maximizando el impacto. Dado que el código malicioso reside en una dependencia transitiva en lugar de en el propio Axios, la revisión tradicional del código o la detección basada en diff probablemente no identificarían la amenaza. Además, el malware está diseñado para eliminarse a sí mismo después de la ejecución y reemplazar las pruebas dentro del directorio del paquete, lo que complica significativamente el análisis forense.
Una vez instalado, el script dropper se pone en contacto con un servidor de comando y control (sfrclak[.]com) y recupera una carga útil de segunda fase adaptada al sistema operativo. En macOS, despliega un binario camuflado como demonio de caché del sistema; en Windows, aprovecha PowerShell ejecutado a través de un binario camuflado; y en Linux, despliega un backdoor basado en Python. Estas cargas útiles permiten la ejecución remota de comandos, la exfiltración de datos y la posterior entrega de cargas útiles. Aunque el malware no parece establecer persistencia por defecto, sus capacidades permiten a los atacantes escalar rápidamente el acceso o desplegar mecanismos adicionales.
Debido a la naturaleza de autoeliminación del dropper, la identificación del peligro requiere una combinación de análisis de dependencias, inspección de artefactos del sistema y revisión de registros. Las organizaciones deben examinar los paquetes instalados y los archivos de bloqueo para las versiones afectadas de Axios, verificar si el directorio plain-crypto-js existe o existió y comprobar los puntos finales en busca de indicadores como /Library/Caches/com.apple.act.mond, %PROGRAMDATA%\wt.exe o /tmp/ld.py. Los registros de red también deben ser revisados en busca de comunicación con la infraestructura de comando y control conocida. Cualquier indicador confirmado debe ser tratado como evidencia de un compromiso total del sistema.
Si su entorno tiene instalada cualquiera de las versiones maliciosas de Axios, debe asumir que el sistema está comprometido y responder en consecuencia. Los sistemas no deben limpiarse in situ, ya que no se puede determinar con fiabilidad el alcance total de la actividad del atacante. En su lugar, las máquinas afectadas deben ser reconstruidas a partir de una línea de base de confianza, conocida como buena, para asegurar la completa erradicación de cualquier componente malicioso.
Todas las credenciales que puedan haber estado expuestas en los sistemas afectados deben ser rotadas inmediatamente. Esto incluye tokens npm, credenciales de proveedores en la nube, claves SSH, claves API, variables de entorno y cualquier secreto utilizado dentro de los pipelines CI/CD. Debe prestarse especial atención a los sistemas de compilación y a las canalizaciones de automatización, ya que a menudo tienen acceso a credenciales altamente confidenciales y pueden haber ejecutado el paquete malicioso durante compilaciones rutinarias.
Como parte de la contención, las organizaciones deben bloquear la comunicación saliente hacia el dominio de comando y control identificado y las direcciones IP asociadas. Los equipos de seguridad también deben revisar los registros en busca de conexiones salientes sospechosas, ejecución de procesos inusuales o signos de filtración de datos durante el periodo de tiempo en el que los paquetes maliciosos estuvieron disponibles.
Para la recuperación, Axios debe ser degradado a una versión segura conocida como 1.14.0 o 0.30.3, y la dependencia maliciosa debe ser eliminada si está presente. Las dependencias deben reinstalarse utilizando prácticas más seguras, como deshabilitar los scripts del ciclo de vida cuando sea posible. Los conductos CI/CD deberían adoptar valores predeterminados seguros como npm ci --ignore-scripts para reducir el riesgo de que ataques similares se ejecuten automáticamente en el futuro.
A largo plazo, las organizaciones deben reforzar la seguridad de su cadena de suministro de software. Esto incluye aplicar un estricto anclaje de dependencias, auditar las dependencias directas y transitivas e implementar herramientas capaces de detectar paquetes maliciosos en tiempo real. Es fundamental reducir la confianza implícita en los registros de paquetes y los responsables de su mantenimiento, ya que este incidente demuestra cómo una sola cuenta comprometida puede tener efectos en cascada en miles de aplicaciones.
Este ataque subraya la creciente sofisticación de las amenazas a la cadena de suministro dentro del ecosistema de código abierto. Al aprovechar los canales de distribución de confianza, los atacantes pueden lograr un acceso generalizado con un esfuerzo mínimo, lo que hace que la supervisión proactiva, la respuesta rápida y la defensa en profundidad sean componentes esenciales de la estrategia de ciberseguridad moderna.
Si le preocupa alguna de las amenazas descritas en este boletín o necesita ayuda para determinar qué medidas debe tomar para protegerse de las amenazas más importantes a las que se enfrenta su organización, póngase en contacto con su gestor de cuentas o, alternativamente, póngase en contactopara averiguar cómo puede proteger su organización.