El grupo de amenazas vinculado a Corea del Norte conocido como WaterPlum, relacionado con la campaña Contagious Interview, ha incorporado un vector de ataque poco habitual: proyectos maliciosos de Visual Studio Code diseñados para desplegar el malware StoatWaffle. El objetivo principal son desarrolladores experimentados del sector cripto y Web3, aprovechando como canal de infección la propia IDE de confianza y el proceso de entrevista técnica.
Ataques a Visual Studio Code: StoatWaffle y el abuso de tasks.json
Según análisis de NTT Security, desde diciembre de 2025 WaterPlum explota el archivo de configuración tasks.json de Visual Studio Code para ejecutar tareas maliciosas de forma automática. La clave está en el parámetro runOn: «folderOpen», que permite lanzar una tarea cada vez que se abre la carpeta del proyecto, sin que el desarrollador tenga que ejecutar nada manualmente.
La tarea oculta descarga código desde una aplicación web alojada en Vercel o, en variantes más recientes, desde GitHub Gist, y lo ejecuta como código Node.js. Este enfoque hace que el comportamiento del malware sea plenamente multiplataforma, afectando por igual a Windows, macOS y Linux siempre que se disponga (o se instale) un entorno Node.js funcional.
Cadena de infección modular y capacidades de StoatWaffle
El primer componente descargado por StoatWaffle comprueba si Node.js está presente en el sistema. Si no lo está, el propio malware descarga el instalador oficial e implementa el entorno, creando así la base para ejecutar las siguientes fases sin depender de la configuración previa de la víctima.
Una vez establecido el entorno, se activa un downloader que se comunica de forma periódica con el servidor de mando y control (C2) para obtener nuevos módulos. StoatWaffle está desarrollado como malware modular en Node.js e incluye, al menos, dos categorías de módulos: componentes de tipo stealer, centrados en el robo de credenciales y datos sensibles, y módulos RAT (Remote Access Trojan) para el control remoto completo del equipo comprometido.
Esta arquitectura modular permite a WaterPlum ampliar o actualizar capacidades sin reiniciar la campaña completa, añadiendo nuevas funciones según objetivos y oportunidades, lo que encaja con una estrategia de desarrollo continuo de herramientas ofensivas.
Ingeniería social en procesos de selección y foco en Web3
Microsoft, en su análisis de la campaña Contagious Interview, describe cómo WaterPlum logra el acceso inicial mediante procesos de contratación falsos pero muy verosímiles. A las víctimas se les propone participar en una prueba técnica en la que se les convence para clonar repositorios o ejecutar comandos desde GitHub, GitLab o Bitbucket como parte de la evaluación de sus competencias.
Un rasgo distintivo es la selección del objetivo: los actores norcoreanos se dirigen de forma específica a fundadores, CTO y desarrolladores líderes de proyectos de criptomonedas y Web3, perfiles que suelen disponer de accesos ampliados a infraestructuras críticas, claves de firma y wallets corporativos. Informes públicos recogen incluso intentos fallidos contra fundadores de empresas de ciberseguridad, lo que indica un nivel de ambición elevado y un foco muy claro en la cadena de valor cripto.
Ecosistema de malware de WaterPlum: OtterCookie, InvisibleFerret y FlexibleFerret
StoatWaffle no actúa en solitario. Forma parte de una ecosistema de malware que WaterPlum despliega de forma combinada en sus campañas:
OtterCookie se utiliza como backdoor con amplias capacidades de exfiltración de datos; InvisibleFerret es un backdoor en Python que, anteriormente, se distribuía a través del componente BeaverTail y que ahora se observa con mayor frecuencia como etapa posterior tras OtterCookie; FlexibleFerret (también conocido como WeaselStore) es un backdoor modular con variantes en Go (GolangGhost) y Python (PylangGhost), que aparece cada vez más como carga útil final en ataques basados en proyectos de VS Code alojados en GitHub.
Nuevas defensas en VS Code y buenas prácticas para equipos de desarrollo
Ante el abuso del sistema de Tasks, Microsoft introdujo en Visual Studio Code 1.109 la nueva configuración task.allowAutomaticTasks, que desactiva por defecto el inicio automático de tareas definidas en tasks.json al abrir un workspace. Un aspecto clave de seguridad es que esta opción ya no puede fijarse a nivel de workspace, por lo que un repositorio malicioso con su propio .vscode/settings.json no puede sobreescribir la preferencia global del usuario.
Las versiones 1.109 y 1.110 añaden, además, un segundo nivel de advertencia cuando se detectan tareas configuradas para ejecutarse automáticamente en un nuevo workspace, reforzando el mecanismo existente de Workspace Trust. Se recomienda a las organizaciones:
Recomendaciones prácticas para mitigar el riesgo
1. Mantener actualizado Visual Studio Code y habilitar las protecciones relacionadas con task.allowAutomaticTasks y Workspace Trust.
2. Establecer una política formal para la revisión de repositorios y proyectos empleados en entrevistas técnicas, especialmente aquellos que incluyen una carpeta .vscode.
3. Monitorizar la ejecución inusual de Node.js, Python y otros intérpretes en estaciones de trabajo de desarrollo.
4. Formar a equipos técnicos para detectar campañas de ingeniería social, como ofertas de empleo sospechosas o entrevistas remotas que exigen ejecutar código de fuentes externas sin auditoría previa.
Programa de TI de Corea del Norte y respuesta internacional
La actividad de WaterPlum se integra en una estrategia estatal más amplia de Corea del Norte, donde equipos de TI altamente formados generan ingresos, llevan a cabo ciberespionaje y apoyan a otros grupos de amenazas. Investigaciones conjuntas de firmas como Flare e IBM X-Force describen procesos de selección rigurosos y formación avanzada, tras los cuales estos profesionales actúan como un recurso estratégico para operaciones financieras y ofensivas en el ciberespacio.
En paralelo, el Departamento de Justicia de Estados Unidos ha anunciado condenas contra ciudadanos estadounidenses que facilitaron a trabajadores de TI norcoreanos eludir sanciones mediante identidades de fachada, con decomisos de cientos de miles de dólares vinculados a estos esquemas. Este contexto refuerza la importancia de que el sector privado entienda que las operaciones de contratación y los canales profesionales también son un campo de batalla digital.
El auge de campañas como Contagious Interview y el uso de proyectos maliciosos de Visual Studio Code ponen de manifiesto que ni las herramientas de desarrollo ni los procesos de selección son seguros por defecto. Las organizaciones, especialmente en el ámbito de las criptomonedas y Web3, deben endurecer sus controles sobre repositorios externos, deshabilitar el arranque automático de tareas en VS Code, fortalecer la monitorización de actividades sospechosas de Node.js y consolidar una cultura de ciberseguridad entre desarrolladores. Invertir en formación y en procesos seguros hoy reduce significativamente la probabilidad de que actores del nivel de WaterPlum conviertan la confianza en los entornos de desarrollo en un vector de ataque exitoso mañana.