Ataque a la Cadena de Suministro en Axios Extrae Dependencia Maliciosa de NPM
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Un paquete npm malicioso, plain-crypto-js@4.2.1, fue publicado y luego incluido como una dependencia transitiva a través de versiones comprometidas del ampliamente utilizado cliente HTTP de JavaScript Axios. El paquete utiliza un script post-instalación para entregar un troyano de acceso remoto de múltiples etapas dirigido a Windows, macOS y Linux. El ataque parece haber dependido de tokens npm de larga duración, permitiendo a los actores de amenaza publicar versiones maliciosas fuera del flujo de trabajo habitual de lanzamientos del proyecto. Detectar la dependencia alterada tempranamente puede detener el RAT antes de su ejecución en los sistemas afectados.
Investigación
Socket Research realizó un análisis estático del setup.js dropper y desofuscó cadenas codificadas para exponer el dominio C2, la lógica de entrega de la carga útil y las rutas del sistema de archivos objetivo. Los investigadores identificaron tres versiones comprometidas de Axios y dos paquetes npm adicionales que contenían el mismo código malicioso. También extrajeron indicadores de red, rutas de archivos y cadenas de agente de usuario que pueden usarse para la ingeniería de detección y creación de reglas.
Mitigación
Las organizaciones deben revocar cualquier token npm de larga duración y rotar credenciales para todas las cuentas potencialmente afectadas. Las versiones comprometidas de Axios y cualquier paquete que dependa de plain-crypto-js@4.2.1 deben eliminarse o degradarse inmediatamente. Los equipos también deben revisar los archivos de bloqueo, las canalizaciones CI/CD y los controles de seguridad de la cadena de suministro de software para identificar actividad de publicación no autorizada y reducir la posibilidad de un compromiso futuro del paquete.
Respuesta
Los equipos de seguridad deben monitorear los registros de instalación npm para referencias a plain-crypto-js@4.2.1 y las versiones afectadas de Axios. Se deben crear reglas de detección para la ejecución del gancho postinstalación, el acceso a la red a sfrclak.comy la cadena de agente de usuario malicioso. Si se confirma el compromiso, los sistemas afectados deben ser puestos en cuarentena, la memoria volátil recopilada para análisis, y el host reimaginado si se encuentra el RAT.
Flujo de Ataque
Detecciones
MacOS Sospechoso – Ubicaciones y Nombres Plist (a través de file_event)
Ver
Procesos Hijos NodeJS Sospechosos [Windows] (a través de cmdline)
Ver
Carga y Descarga de Archivos Remotos a través de Herramientas Estándar (a través de cmdline)
Ver
Modificación de Permisos de Archivos en Carpeta Tmp Sospechosa en MacOS (a través de cmdline)
Ver
Uso Sospechoso de CURL (a través de cmdline)
Ver
Posible Ejecución mediante chmod y nohup en un Solo Comando (a través de cmdline)
Ver
Descargas a Carpetas Sospechosas (a través de cmdline)
Ver
LOLBAS WScript / CScript (a través de creación de procesos)
Ver
La Posibilidad de Ejecución a través de Líneas de Comando de PowerShell Ocultas (a través de cmdline)
Ver
Uso de Nohup (a través de cmdline)
Ver
IOC (SourceIP) para detectar: Ataque a la Cadena de Suministro en Axios Retira Dependencia Maliciosa desde npm
Ver
IOC (DestinationIP) para detectar: Ataque a la Cadena de Suministro en Axios Retira Dependencia Maliciosa desde npm
Ver
IOC (Emails) para detectar: Ataque a la Cadena de Suministro en Axios Retira Dependencia Maliciosa desde npm
Ver
Tácticas de Evasión de PowerShell y VBScript en Ataque a la Cadena de Suministro [Creación de Procesos de Windows]
Ver
Detección de Ejecución de Gancho Postinstalación de paquete npm malicioso [Creación de Procesos de Linux]
Ver
Detección de Script de Python malicioso y Archivo Temporal en Ataque a la Cadena de Suministro de Linux [Evento de Archivo de Linux]
Ver
Terminal de Windows Renombrada y VBScript Autodestructivo Detectado [Evento de Archivo de Windows]
Ver
Ejecución de Script de PowerShell con Banderas Ocultas y Bypass [PowerShell de Windows]
Ver
Ejecución de Simulación
Prerequisito: La Verificación Previa de Telemetría y Baseline debe haber superado.
Rationale: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTP identificados y estar destinados a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa del Ataque y Comandos:
Un atacante que ha obtenido privilegios de usuario limitados en una estación de trabajo comprometida desea descargar una carga útil maliciosa de VBScript a través de un paquete npm legítimo (escenario de cadena de suministro). Para evitar la detección genérica de PowerShell, el atacante copia
powershell.exea un nuevo archivo nombradopowershell_renamed.exepero mantiene el subcadena “powershell” en el nombre del archivo (por lo que elImage|containsverificación sigue coincidiendo). Luego, el atacante realiza una búsqueda “where powershell” para enumerar la ruta del binario renombrado y finalmente lanza la carga útil de VBScript concscript //nologopara suprimir el banner del logo. -
Script de Prueba de Regresión:
# ------------------------------------------------- # Paso 1: Crear una copia renombrada de powershell.exe # ------------------------------------------------- $src = "$env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe" $dst = "$env:Temppowershell_renamed.exe" Copy-Item -Path $src -Destination $dst -Force # ------------------------------------------------- # Paso 2: Usar 'where' para referenciar el binario renombrado # ------------------------------------------------- $whereOutput = & where.exe powershell_renamed Write-Host "Localizado PowerShell renombrado en: $whereOutput" # ------------------------------------------------- # Paso 3: Crear una carga útil simple de VBScript maliciosa # ------------------------------------------------- $vbsPath = "$env:Tempmalicious.vbs" @" Set objShell = CreateObject("WScript.Shell") objShell.Run "cmd.exe /c echo pwned > $env:Temppwned.txt", 0, False "@ | Set-Content -Path $vbsPath -Encoding ASCII # ------------------------------------------------- # Paso 4: Ejecutar el VBScript silenciosamente usando cscript //nologo # ------------------------------------------------- & $dst -Command "cscript //nologo `"$vbsPath`"" # ------------------------------------------------- # Fin de la simulación # ------------------------------------------------- -
Comandos de Limpieza:
# Eliminar el binario de PowerShell renombrado Remove-Item -Path "$env:Temppowershell_renamed.exe" -Force -ErrorAction SilentlyContinue # Eliminar el archivo VBScript malicioso Remove-Item -Path "$env:Tempmalicious.vbs" -Force -ErrorAction SilentlyContinue # Remover evidencia de la ejecución Remove-Item -Path "$env:Temppwned.txt" -Force -ErrorAction SilentlyContinue