Visual Studio Code è un editor di codice sorgente gratuito e open source sviluppato da Microsoft. È diventato uno degli strumenti più popolari tra gli sviluppatori grazie alla sua flessibilità, al supporto per una varietà di linguaggi di programmazione e tecnologie, alla vasta gamma di estensioni installabili e utilizzabili.
Il problema emerso in queste ore è che proprio gli sviluppatori di estensioni per Visual Studio Code possono eventualmente approfittare di una vulnerabilità di sicurezza per recuperare le credenziali memorizzate nei gestori delle password di Windows, Linux e macOS.
I ricercatori di Cycode hanno scoperto che facendo leva su una lacuna insita in Visual Studio Code è possibile recuperare i token autorizzativi di ciascun utente ovvero gli elementi che consentono l’accesso a piattaforme quali GitHub, Git, AWS, Docker/Kubernetes, Microsoft e così via, senza digitare alcuna credenziale.
Accesso non autorizzato ai token autorizzativi conservati a livello di sistema operativo
Gli esperti di Cycode spiegano che Visual Studio Code mette a disposizione delle estensioni installate un’apposita API per l’accesso ai token salvati sul sistema in uso. L’operazione sfrutta Keytar, un componente dell’editor Microsoft che si occupa di sovrintendere le comunicazioni con il gestore delle credenziali di Windows e con i “portachiavi” di Linux e macOS.
Qualsiasi estensione caricata insieme con Visual Studio Code, può ottenere l’accesso all’archivio segreto e abusare di Keytar per recuperare token in modo non autorizzato.
Il problema di fondo, infatti, è che qualsiasi estensione ha titolo per accedere al portachiavi contenente i token autorizzativi perché eseguita all’interno dell’applicazione (Visual Studio Code, appunto) a cui il sistema operativo ha già concesso l’accesso al gestore locale delle password.
Cycode fa presente che i token sono crittografati con l’algoritmo AES-256-GCM, che di solito è assolutamente sicuro. Tuttavia, la chiave utilizzata per cifrare i token è derivata dal percorso dell’eseguibile e dall’ID macchina: è piuttosto semplice, quindi, risalire alla chiave crittografica effettivamente in uso.
Una seconda lacuna individuata in Visual Studio Code, inoltre, permette allo sviluppatore di un’estensione malevola di acquisire direttamente l’accesso ai token gestiti da un’altra estensione.
Microsoft ha fatto presente che non correggerà il problema di sicurezza
I ricercatori hanno privatamente condiviso i risultati delle loro verifiche con Microsoft ormai due mesi fa. I tecnici della società guidata da Satya Nadella non hanno però ritenuto di dover risolvere la problematica non rilevando alcuna minaccia imminente.
È vero che per uno sviluppatore che scarica e installa un’estensione da fonti non affidabili ci sono poche scusanti. Ed è altrettanto vero che se si esegue un componente malevolo sul sistema, le conseguenze possono essere estremamente pesanti (bisognerebbe quindi agire a monte ed evitare che ciò accada). Ciò premesso, però, è la mancanza di isolamento tra il componente di sistema che gestisce i token e le singole estensioni a rendere più semplice l’attacco.