Demostración de un ataque a editores de código que provoca fugas de archivos al abrir códigos fuente

Se ha demostrado un método para atacar el editor de código VSCode, que permite la transferencia de archivos arbitrarios dentro de los derechos del usuario actual al abrir un código fuente especialmente diseñado en el editor. En esta demostración, al abrir código Rust que utiliza una macro de procedimiento, establece una conexión con el host 127.0.0.1:8080 y envía el contenido del archivo "~/.ssh/id_rsa" con las claves SSH del usuario.

Para comprometerse, basta con abrir el archivo con el código, sin realizar ninguna otra acción con el proyecto. Para que el ejemplo funcione, VSCode requiere el complemento Rust-analyzer (un enlace además del compilador estándar Rustc) y la presencia en el sistema de herramientas para trabajar con código en lenguaje Rust. El problema está relacionado con la expansión de macros de procedimientos durante el análisis inicial del código. También se puede lograr un efecto similar en tiempo de compilación usando el comando "cargo build".

Cabe señalar que el problema puede afectar a otros editores de código y lenguajes de programación. VSCode y Rust-analyze se utilizan únicamente para demostrar el vector de ataque. En teoría, cualquier editor de código que exponga macros de procedimiento que le permitan crear extensiones de sintaxis y ejecutar código en tiempo de compilación es susceptible al problema. El investigador inicialmente investigó la posibilidad de que ocurrieran acciones maliciosas durante la compilación del código, pero descubrió que las macros de procedimiento se expandían cuando el código fuente se procesaba en los editores de código. El ataque probablemente pueda afectar a otros lenguajes de programación; por ejemplo, en Java, el procesamiento de anotaciones se puede manipular de forma similar.



Fuente: opennet.ru

Añadir un comentario