Los mantenedores del popular cliente HTTP Axios han publicado un informe detallado sobre cómo uno de sus desarrolladores fue víctima de una campaña de ingeniería social vinculada a hackers norcoreanos. Esto ocurrió después de que los actores de amenazas comprometieran una cuenta de mantenedor para publicar dos versiones maliciosas de Axios (1.14.1 y 0.30.4) en el registro de paquetes npm, desencadenando un ataque a la cadena de suministro.
Estas versiones inyectaban una dependencia llamada plain-crypto-js que instalaba un troyano de acceso remoto (RAT) en sistemas macOS, Windows y Linux. Las versiones maliciosas estuvieron disponibles durante aproximadamente tres horas antes de ser eliminadas, pero los sistemas que las instalaron durante ese período deben considerarse comprometidos, y todas las credenciales y claves de autenticación deben rotarse.
Los mantenedores de Axios afirmaron que han limpiado los sistemas afectados, restablecido todas las credenciales y están implementando cambios para prevenir incidentes similares. El Grupo de Inteligencia de Amenazas de Google (GTIG) ha vinculado este ataque a actores de amenazas norcoreanos rastreados como UNC1069.
"GTIG atribuye esta actividad a UNC1069, un actor de amenazas con motivaciones financieras vinculado a Corea del Norte, activo desde al menos 2018, basándose en el uso de WAVESHAPER.V2, una versión actualizada de WAVESHAPER previamente utilizada por este actor", explica Google. "Además, el análisis de los artefactos de infraestructura utilizados en este ataque muestra superposiciones con la infraestructura utilizada por UNC1069 en actividades pasadas".
Atacado en un ataque de ingeniería social
Según el informe, el compromiso comenzó semanas antes mediante un ataque de ingeniería social dirigido al mantenedor principal del proyecto, Jason Saayman. Los atacantes se hicieron pasar por una empresa legítima, clonaron su marca y las apariencias de sus fundadores, e invitaron al mantenedor a un espacio de trabajo de Slack diseñado para hacerse pasar por la empresa. Saayman dijo que el servidor de Slack contenía canales realistas, con actividad simulada y perfiles falsos que se hacían pasar por empleados y otros mantenedores de código abierto.
"Luego me invitaron a un espacio de trabajo real de Slack. Este espacio de trabajo estaba marcado con la imagen corporativa de la empresa y nombrado de manera plausible", explicó Saayman en una publicación del informe. "El Slack estaba muy bien pensado, tenían canales donde compartían publicaciones de LinkedIn; supongo que las publicaciones de LinkedIn iban a la cuenta real de la empresa, pero era muy convincente, etc. Incluso tenían lo que supongo eran perfiles falsos del equipo de la empresa, pero también de otros mantenedores de OSS".
Luego, los atacantes programaron una reunión en Microsoft Teams que parecía incluir a numerosas personas. Durante la llamada, se mostró un error técnico que afirmaba que algo en el sistema estaba desactualizado, lo que llevó al mantenedor a instalar una actualización de Teams para solucionar el error. Sin embargo, esta falsa actualización era en realidad un malware RAT que otorgaba a los atacantes acceso remoto al dispositivo del mantenedor, permitiéndoles obtener las credenciales npm del proyecto Axios.
Otros mantenedores reportaron ataques de ingeniería social similares, donde los actores de amenazas intentaban que instalaran una falsa actualización del SDK de Microsoft Teams. Este ataque es similar a un ataque ClickFix, en el que las víctimas ven un mensaje de error falso y luego se les pide que sigan pasos de solución que despliegan malware.
Este ataque también refleja campañas previas reportadas por los equipos de inteligencia de amenazas de Google, en las que actores norcoreanos rastreados como UNC1069 utilizaron las mismas tácticas para atacar a empresas de criptomonedas. En campañas anteriores atribuidas a UNC1069, los atacantes implementaban payloads adicionales en los dispositivos, como backdoors, descargadores e infostealers diseñados para robar credenciales, datos del navegador, tokens de sesión y otra información sensible.
Dado que los atacantes obtuvieron acceso a sesiones autenticadas, las protecciones MFA fueron efectivamente eludidas, permitiendo el acceso a las cuentas sin necesidad de reautenticarse. Los mantenedores de Axios confirmaron que el ataque no implicó modificar el código fuente del proyecto, sino que se basó en inyectar una dependencia maliciosa en versiones que por lo demás eran legítimas.
Pelle Wessman, mantenedor de numerosos proyectos de código abierto, incluido el popular marco Mocha, publicó en LinkedIn que fue víctima de la misma campaña y compartió una captura de pantalla de un mensaje de error falso de conexión RTC utilizado para engañar a las víctimas para que instalaran malware. Cuando Wessman se negó a instalar la aplicación, los atacantes intentaron convencerlo de que ejecutara un comando Curl.
"Cuando quedó claro que no ejecutaría la aplicación y habíamos chateado de ida y vuelta en el sitio web y la aplicación de chat, hicieron un último intento desesperado y trataron de que ejecutara un comando curl que descargaría y ejecutaría algo; luego, cuando me negué, desaparecieron y eliminaron todas las conversaciones", explicó Wessman.
La firma de ciberseguridad Socket también reportó que se trataba de una campaña coordinada que ha comenzado a atacar a mantenedores de proyectos populares de Node.js. Múltiples desarrolladores, incluidos mantenedores de paquetes ampliamente utilizados y colaboradores principales de Node.js, reportaron haber recibido mensajes de contacto similares e invitaciones a espacios de trabajo de Slack operados por los atacantes.
Socket señaló que estos mantenedores son responsables de paquetes con miles de millones de descargas semanales, lo que demuestra que los actores de amenazas se centraron en proyectos de alto impacto. "Desde que publicamos nuestro análisis inicial del compromiso de Axios, una inmersión profunda en su radio de explosión oculta y un informe sobre el mantenedor confirmando que fue ingeniería social, mantenedores de todo el ecosistema Node.js han salido a la luz para reportar que fueron atacados por la misma campaña de ingeniería social", explicó Socket.
Socket dijo que la campaña seguía un patrón consistente: los atacantes primero contactaban a través de plataformas como LinkedIn o Slack y luego invitaban a los destinatarios a espacios de trabajo privados o semiprivados. Después de establecer una relación con el objetivo, programaban videollamadas, que en algunos casos se realizaban a través de sitios que se hacían pasar por Microsoft Teams y otras plataformas. Durante estas llamadas, se mostraba un mensaje de error a los objetivos, que les pedía instalar software de escritorio "nativo" que funcionara mejor o ejecutar comandos para solucionar los problemas técnicos.
El mismo manual utilizado contra todos estos objetivos durante el mismo período indica que se trataba de una campaña coordinada, no de una serie de ataques aislados. Los investigadores de Socket afirman que estos tipos de ataques a la cadena de suministro son cada vez más comunes, y los atacantes ahora se centran en paquetes ampliamente utilizados para causar un impacto generalizado.