Amit Assaraf, un reconocido analista de extensiones de VSCode, ha titulado su más reciente publicación «Un lobo en el modo oscuro» (A Wolf in Dark Mode), en la que alerta sobre la extensión «Material Theme». Tras analizarla, descubrió que contenía código malicioso, aunque actualmente Microsoft ya la ha retirado de su tienda.
Material Theme – Free es una de las extensiones más populares de VSCode, utilizada por casi 4 millones de desarrolladores. Su gran alcance ha generado gran preocupación en la comunidad.
Según explica Assaraf en su blog, aunque Microsoft eliminó la extensión, esta ya había estado en uso por millones de desarrolladores. Su creador, Mattia Astorino (conocido como Equinusocio), es una figura destacada en la tienda de VSCode, con más de 13 millones de instalaciones en total. Además de Material Theme, posee otra extensión muy popular, Material Theme Icons – Free, con más de 5 millones de descargas. Para mitigar riesgos, Microsoft también ha eliminado esta última y otras extensiones no relacionadas con Equinusocio, pero vinculadas a personas con su mismo nombre.
«A member of the community did a deep security analysis of the extension and found multiple red flags that indicate malicious intent and reported this to us. Our security researchers at Microsoft confirmed these claims and found additional suspicious code.»
«We banned the publisher from the VS Marketplace and removed all of their extensions and uninstalled from all VS Code instances that have this extension running. For clarity – the removal had nothing to do about copyright/licenses, only about potential malicious intent.»
Microsoft, en referencia a Amit Assaraf e Itay Kruk.
Código malicioso
Los investigadores sugieren que el código malicioso se introdujo en una actualización de la extensión, lo que podría indicar un ataque a la cadena de suministro mediante dependencias comprometidas o una posible brecha en la cuenta del desarrollador.
Al parecer, la extensión fue detectada debido a la ejecución de código JavaScript, algo inusual, ya que los temas de VSCode deberían ser archivos estáticos sin ejecución de código.
Microsoft ha indicado que continuará analizando la extensión y cualquier actividad sospechosa dentro del mismo repositorio una vez que logre desofuscar el código por completo.
El propio desarrollador ha confirmado que el problema se originó en una dependencia obsoleta llamada «Sanity.io».
Se recomienda desinstalar las siguientes extensiones hasta que la situación se aclare:
- equinusocio.moxer-theme
- equinusocio.vsc-material-theme
- equinusocio.vsc-material-theme-icons
- equinusocio.vsc-community-material-theme
- equinusocio.moxer-icons
La reacción del desarrollador
El creador de las extensiones mencionó que diseñó un nuevo tema desde cero, «Fanny Themes», pero Microsoft también lo eliminó, lo que generó su indignación, expresada en diversas publicaciones.
«That dependency has been there since 2016 and passed every check since then, now it looks compromised but NO ONE from Microsoft reached us to remove it. They just pulled down everything causing issues to millions of users, and causing a loop in vscode (yep, it’s their fault).»
«They broke everything without ever reaching out to us for clarification. Removing the old dependency was a quick 30-second fix, but it seems that’s just how Microsoft operates. We also ship an obfuscated index.js file that contains all the theme commands and logic. It’s obfuscated because the extension is now closed-source; however, if you delete it, the extension will still function with plain JSON files.»
Estas son algunas de las declaraciones que ha publicado. Para más información, se puede consultar el hilo en GitHub.
Fuente: unaaldia.hispasec.com