Dimostrazione di un attacco agli editor di codice che porta alla perdita di file all'apertura dei codici sorgente

È stato dimostrato un metodo per attaccare l'editor di codice VSCode, che consente il trasferimento di file arbitrari entro i diritti dell'utente corrente quando si apre un codice sorgente appositamente progettato nell'editor. In questa demo, quando si apre il codice Rust che utilizza una macro procedurale, stabilisce una connessione all'host 127.0.0.1:8080 e invia il contenuto del file "~/.ssh/id_rsa" con le chiavi SSH dell'utente.

Per scendere a compromessi è sufficiente aprire semplicemente il file con il codice, senza eseguire altre azioni con il progetto. Affinché l'esempio funzioni, VSCode richiede il plug-in Rust-analyzer (un collegamento al compilatore Rust standard) e la presenza di strumenti nel sistema per lavorare con il codice nel linguaggio Rust. Il problema è legato all'espansione delle macro procedurali durante l'analisi iniziale del codice. Un effetto simile può essere ottenuto anche in fase di compilazione utilizzando il comando "cargo build".

Si noti che il problema potrebbe interessare altri editor di codice e linguaggi di programmazione. VSCode e Rust-Analyze vengono utilizzati solo per dimostrare il vettore di attacco. In teoria, qualsiasi editor di codice che esponga macro procedurali che consentono di creare estensioni di sintassi ed eseguire codice in fase di compilazione è soggetto al problema. Inizialmente il ricercatore ha indagato sulla possibilità che si verificassero azioni dannose durante la compilazione del codice, ma ha scoperto che le macro procedurali venivano ampliate quando il codice sorgente veniva elaborato negli editor di codice. L'attacco può probabilmente colpire altri linguaggi di programmazione; ad esempio, in Java, l'elaborazione delle annotazioni può essere manipolata in modo simile.



Fonte: opennet.ru

Aggiungi un commento