Un troyano disfrazado: cómo extensiones falsas de VS Code colaron malware ante millones
Una campaña sigilosa secuestró herramientas de desarrollo de confianza, ocultando malware a plena vista dentro de archivos de imagen falsos en el Visual Studio Code Marketplace.
Cuando los desarrolladores confían en sus herramientas, los atacantes ven una oportunidad. En una campaña descarada que duró casi un año, ciberdelincuentes infiltraron silenciosamente el Visual Studio Code (VS Code) Marketplace - una de las plataformas de complementos de software más populares del mundo - escondiendo un sofisticado troyano dentro de extensiones que parecían inocentes. ¿Su arma secreta? Una imagen PNG falsa que ocultaba código malicioso, empaquetada junto a dependencias alteradas y ampliamente confiables. Para cuando los investigadores se dieron cuenta, los atacantes ya habían burlado las defensas de innumerables programadores desprevenidos.
Dentro del ataque: la confianza explotada
La trama se desveló cuando analistas de seguridad de ReversingLabs descubrieron una operación de larga duración dirigida a desarrolladores a través del VS Code Marketplace. Los atacantes publicaron 19 extensiones con nombres aparentemente inofensivos - como “Malkolm Theme” y “PandaExpress Theme” - todas con el número de versión 1.0.0. Pero bajo la superficie, estos complementos ocultaban un sistema de entrega de malware en varias etapas.
El primer truco de los atacantes fue manipular una dependencia enormemente popular: path-is-absolute, un paquete descargado más de 9 mil millones de veces desde 2021. En lugar de obtenerlo del confiable registro de npm, las extensiones incluían una versión armada dentro de sus propias carpetas. Esta dependencia modificada incorporaba nuevo código que se ejecutaba tan pronto como se iniciaba VS Code, decodificando un dropper de JavaScript oculto en un archivo llamado ‘lock’.
La carga final estaba envuelta en un engaño aún mayor. Un archivo llamado banner.png - que normalmente sería una imagen - era en realidad un archivo comprimido que contenía dos binarios maliciosos: una utilidad de Windows llamada cmstp.exe (a menudo utilizada por atacantes) y un troyano complejo basado en Rust. Los intentos de abrir el archivo como imagen fallaban, pero el malware sabía exactamente cómo extraer y ejecutar su contenido, utilizando herramientas legítimas de Windows para evadir la detección.
No todas las extensiones maliciosas usaban el mismo método. Algunas dependían de otra dependencia, @actions/io, y dividían su malware en archivos disfrazados de TypeScript y map. Pero el objetivo seguía siendo el mismo: comprometer los sistemas de los desarrolladores explotando la confianza que impulsa la colaboración de código abierto.
El descubrimiento de la campaña llega en medio de un aumento de ataques relacionados con VS Code, con detecciones de extensiones maliciosas que pasaron de 27 en 2024 a 105 solo en los primeros diez meses de 2025. Microsoft ya ha eliminado las extensiones maliciosas, pero los investigadores advierten que los usuarios que las instalaron deben revisar sus sistemas en busca de compromisos y siempre examinar cuidadosamente los nuevos complementos - especialmente aquellos con pocas descargas o reseñas.
WIKICROOK: Glosario
- Troyano
- Software malicioso disfrazado de legítimo, diseñado para engañar a los usuarios y lograr que lo ejecuten, comprometiendo así sus sistemas.
- Dependencia
- Una pieza de software (a menudo un paquete o biblioteca) que otra aplicación o extensión necesita para funcionar.
- Dropper
- Un tipo de malware diseñado para entregar o instalar otros componentes maliciosos en un sistema objetivo.
- Binario living-off-the-land (LoLBin)
- Un ejecutable legítimo (como cmstp.exe) que los atacantes abusan para evitar la detección por herramientas de seguridad.
- Ofuscación
- La práctica de ocultar o disfrazar código para dificultar que humanos o herramientas de seguridad analicen y detecten comportamientos maliciosos.