StoatWaffle y la amenaza en VS Code: abrir un proyecto podría activar malware de la cadena de suministro

Publicada 7 min de lectura 122 lecturas

En los últimos meses ha crecido una campaña de ciberamenazas que combina ingeniería social muy pulida con técnicas técnicas poco convencionales para los desarrolladores: la entrega de malware a través de proyectos maliciosos de Visual Studio Code. Investigaciones recientes apuntan a un cluster norcoreano conocido como Contagious Interview o WaterPlum, que está vinculando una familia de malware bautizada como StoatWaffle a esta táctica dirigida contra profesionales del ecosistema de software abierto y, en especial, del sector cripto y Web3.

El vector de ataque explota un archivo legítimo en proyectos VS Code: tasks.json. Al configurar una tarea con la opción runOn: folderOpen, es posible provocar que código remoto se ejecute automáticamente cuando un desarrollador abre la carpeta del proyecto en su editor. Según el análisis de NTT Security, los atacantes han usado esa característica para iniciar una cadena de descargas desde servicios en la nube, de forma que la ejecución se produce sin más interacción que abrir el workspace en VS Code —un gesto que muchos consideran inocuo en su flujo de trabajo diario (informe de NTT Security).

StoatWaffle y la amenaza en VS Code: abrir un proyecto podría activar malware de la cadena de suministro
Imagen generada con IA.

La cadena de infección de StoatWaffle es deliberadamente resiliente. El primer binario que se descarga verifica si existe Node.js en la máquina víctima; si no está presente, lo instala directamente desde la web oficial y a continuación ejecuta un descargador que consulta periódicamente un servidor externo para obtener la siguiente etapa. Esa segunda etapa actúa de manera idéntica: alcanza otro endpoint, recibe código JavaScript y lo ejecuta con Node.js, creando una tubería de descargas y ejecución que puede mantenerse y actualizarse desde la infraestructura del atacante.

Este diseño modular permite a los operadores elegir entre diferentes capacidades en función del objetivo. Los análisis muestran que StoatWaffle despliega, por un lado, un stealer que extrae credenciales y datos de extensiones de navegadores basados en Chromium y Firefox, y que en macOS alcanza incluso la base de datos de iCloud Keychain. Por otro lado, el paquete puede instalar un RAT (troyano de acceso remoto) que se comunica con servidores de comando y control para ejecutar órdenes que van desde listar y subir archivos hasta ejecutar comandos de shell o código Node.js suministrado por los atacantes.

La elección de Node.js como entorno de ejecución no es casual: ofrece portabilidad entre sistemas y la comodidad de ejecutar scripts complejos con pocos cambios, lo que facilita que el malware sea multiplataforma y evolucione con rapidez. Además, los atacantes han ido refinando su logística: las primeras campañas usaban dominios en servicios como Vercel para alojar los descargadores, mientras que variantes más recientes han pasado a scripts hospedados en GitHub Gist, aprovechando la confianza que generan los repositorios públicos y la facilidad para integrar contenido en proyectos legítimos en GitHub.

Este desarrollo no ocurre en el vacío. WaterPlum forma parte de una serie más amplia de operaciones dirigidas a la cadena de suministro de código abierto. Se han detectado paquetes npm maliciosos que sirven como distribuidores de malware como PylangGhost (análisis de KM Security), y campañas como PolinRider que insertaron JavaScript ofuscado en centenares de repositorios públicos, alterando proyectos para que desplegaran cargas como BeaverTail, un conocido loader/stealer relacionado con la misma familia de atacantes (estudio sobre PolinRider).

Microsoft ha documentado cómo los autores de Contagious Interview consiguen la primera puerta de entrada mediante procesos de reclutamiento falsos que simulan entrevistas técnicas reales. Con un guion convincente, los candidatos reciben ejercicios y comandos supuestamente necesarios para la evaluación, y terminan ejecutando instrucciones que comprometen sus máquinas. En muchos casos los objetivos no son desarrolladores junior, sino fundadores, CTOs y altos ingenieros del mundo criptográfico, profesionales cuyo acceso valioso puede permitir el robo de claves y la exfiltración de activos digitales (análisis de Microsoft).

Las familias de malware que aparecen en estas intrusiones muestran un ecosistema activo y multifacético: desde OtterCookie, diseñado para exfiltrar grandes cantidades de información, a InvisibleFerret, un backdoor en Python, y FlexibleFerret (también llamado WeaselStore) que existe en variantes Go y Python bajo nombres como GolangGhost y PylangGhost. En algunos casos, un primer acceso logrado con OtterCookie acaba sirviendo para descargar segundas etapas como InvisibleFerret. Los investigadores han documentado además intrusiones donde repositorios reconocidos fueron manipulados mediante cuentas comprometidas para distribuir payloads cifrados incluidos en transacciones de blockchain, una técnica usada para camuflar la carga útil y dificultar su detección (compromiso en Neutralinojs).

Frente a este modus operandi, la comunidad de software respondió con actualizaciones en el propio Visual Studio Code. Microsoft introdujo en la versión 1.109 una opción global que desactiva por defecto la ejecución automática de tareas —task.allowAutomaticTasks— y evitó que repositorios maliciosos sobreescriban esa preferencia a nivel de workspace. Las versiones posteriores añadieron avisos secundarios cuando se detecta una tarea autoejecutable en un espacio de trabajo recién abierto, medidas que buscan devolver el control al usuario y reducir el riesgo de ejecuciones silenciosas (notas de la versión 1.109, versión 1.110).

Más allá de VS Code, los adversarios han explotado la propia dinámica de confianza entre reclutador y candidato para convencer a objetivos de ejecutar comandos en su terminal mediante páginas falsas que imitan CAPTCHAs o enlaces a videollamadas. Investigadores de MacPaw describen campañas que usan este patrón para inyectar comandos en el portapapeles y lograr su ejecución, con payloads adaptados tanto a macOS como a Windows (análisis de Moonlock Lab).

El fenómeno no es sólo técnico: también tiene aristas legales y humanas. Recientes sentencias en Estados Unidos han sancionado a individuos implicados en esquemas de contratación fraudulenta que facilitaron la participación de trabajadores norcoreanos en operaciones de software malicioso y fraude, subrayando cómo redes de reclutamiento y fraude sirven de puente entre las capacidades técnicas y los objetivos geopolíticos de los estados involucrados (comunicado del Departamento de Justicia).

Investigaciones conjuntas de firmas de seguridad han cartografiado la infraestructura y el playbook de estas operaciones, destacando que los llamados “trabajadores de TI” en la red norcoreana pasan por procesos selectivos y forman una estructura organizada que persigue objetivos como generación de ingresos, robo de propiedad intelectual, extorsión y soporte a otras agrupaciones estatales (trabajo de investigación de Kudelski).

StoatWaffle y la amenaza en VS Code: abrir un proyecto podría activar malware de la cadena de suministro
Imagen generada con IA.

Para quienes desarrollan o colaboran en proyectos de código abierto, la lección es clara: la confianza por defecto es un vector de riesgo cuando conviene a los atacantes. Mantener herramientas actualizadas, revisar cuidadosamente cualquier instrucción o script solicitado en procesos de evaluación técnica, y desactivar la ejecución automática de tareas son pasos prácticos que pueden interrumpir estas cadenas. Las empresas deben combinar controles técnicos con formación específica para personal clave, pues son los altos perfiles quienes suelen ser los objetivos más lucrativos en estas campañas.

El patrón revela además una inclinación estratégica: los atacantes prefieren aprovechar mecanismos de desarrollo legítimos —repositorios, gestores de paquetes, herramientas de evaluación— porque disminuyen la sospecha y aumentan la tasa de éxito. Mientras tanto, la colaboración entre equipos de seguridad, plataformas de código abierto y proveedores de herramientas de desarrollo será esencial para que estas prácticas maliciosas no se normalicen. Los informes públicos y las actualizaciones de los proveedores —desde NTT y Microsoft hasta equipos independientes que analizan paquetes npm y repositorios comprometidos— permiten rastrear la evolución de estas amenazas y aplicar contramedidas informadas (NTT Security, Microsoft, Abstract Security, Kudelski).

En síntesis, StoatWaffle y las campañas asociadas son un recordatorio de que el software abierto y las herramientas que aceleran el desarrollo también pueden ser usadas como vectores de ataque en manos de adversarios sofisticados. La respuesta debe combinar cambios de configuración sensatos, vigilancia proactiva sobre supply chain y una mentalidad de seguridad que cuestione incluso lo aparentemente familiar en los procesos de contratación y colaboración técnica.

Cobertura

Relacionadas

Mas noticias del mismo tema.