Fecha de publicación: Lun, 08/11/2021 - 10:42

Alerta de seguridad

Nivel de peligrosidad: Crítico

Descripción

La biblioteca popular de NPM llamada coa (Command-Option-Argument), que se usa en los paquetes React en todo el mundo, fue secuestrada para robar credenciales mediante malware. La comunidad de desarrolladores notó que algo andaba mal cuando aparecieron nuevas versiones extrañas de NPM rompiendo las compilaciones de software.

Otro componente popular de NPM, rc evidentemente también fue secuestrado para ejecutar código malicioso en entornos Windows. Según NPM el malwware identificado en rc era idéntico al malware distribuido en el de coa.

Ambos coa y rc son utilizados por millones de desarrolladores y proyectos. Hasta el viernes 5 de noviembre, varios desarrolladores y usuarios habían pedido a NPM que implementara medidas de seguridad más estrictas, incluida la MFA en las cuentas de los desarrolladores.

Recursos afectados

Las versiones afectadas en coa son:

  • coa (NPM) 2.0.3
  • coa (NPM) 2.0.4
  • coa (NPM) 2.1.1
  • coa (NPM) 2.1.3
  • coa (NPM) 3.0.1
  • coa (NPM) 3.1.3

Las versiones afectadas de rc son:

  • rc (NPM) 1.2.9
  • rc (NPM) 1.3.9
  • rc (NPM) 2.3.9

Solución

NPM ha eliminado las versiones comprometidas y ha bloqueado la publicación temporal de nuevas versiones mientras se recupera el acceso a los paquetes.

Se debe anclar las versiones de coa a la 2.0.2 y rc a la versión 1.2.8.

Indicadores de compromiso

Las versiones de coa 2.0.3, 2.1.3 y algunas otras parecen contener nada más que scripts de preinstlación sospechosos, como se muestra a continuación:


Pero es con 2.0.4 que vemos el código malicioso introducido en pleon apogeo. El “compile.js” al que hace referencia el script de preinstalación existe y se ejecuta:

El archivo “compile.js” contiene código JavaScript ofuscado, como se ve a continuación:


Este archivo JavaScript lanza además un archivo Batch, “compile.bat” incluido en el archivo NPM.

El script de Batch está nuevamente ofuscado, pero al estilo de los falsos errores tipográficos de Noblox NPM capturados la semana pasada que instalarán ransomware y ladrones de creenciales en las máquinas infectads. Aprovecha un concepto conocido como expansión variable para la ofuscación:


 

Y este archivo Batch descargara y ejecuta un “sdd.dll” de pastrocryptograph. No es idéntico al sdd.dll eliminado por las versiones de ua-parser-js secuestradas.

El sdd.dll eliminado por las versiones maliciosas de rc es una vez más diferente que estos dos. Pero todos los archivos DLL esencialmente plantan el mismo malware.

Recomendaciones

Debido al impacto generalizado de este ataque a la cadena de suministro, se recomienda que todos los usuarios de las bibliotecas coa y rc revisen sus proyectos en busca de software malicioso. Esto incluye verificar la existencia de compile.js, compile.bat, sdd.dll y eliminar los archivos si se encuentran.

Referencias

Nuevo secuestro de paquetes NPM