Estensioni IDE Malevole: IDE Extensions (T1176.002)

Le estensioni per ambienti di sviluppo integrato rappresentano un vettore di persistenza particolarmente insidioso perché sfruttano la fiducia implicita che sviluppatori e organizzazioni ripongono nei propri strumenti di lavoro quotidiani. La tecnica T1176.002 — IDE Extensions si colloca nella fase di Persistence (TA0003), quella in cui l'avversario consolida il proprio accesso al sistema compromesso per sopravvivere a riavvii, rotazione di credenziali e interventi di remediation.

Il meccanismo è elegante nella sua semplicità: IDE come Visual Studio Code, IntelliJ IDEA ed Eclipse supportano componenti aggiuntivi che estendono le funzionalità dell'editor — dal linting del codice all'integrazione con Git e Docker. Un'estensione malevola, una volta installata tramite marketplace ufficiale o caricata lateralmente nella directory di profilo, viene eseguita automaticamente a ogni avvio dell'IDE. Da quel momento può eseguire codice arbitrario, aprire backdoor, esfiltrare dati o instaurare tunnel SSH persistenti.

Il censimento attuale documenta 1 gruppo APT che impiega attivamente questa tecnica, con 5 mitigazioni raccomandate e regole di detection specifiche per Windows, Linux e macOS. Il dato apparentemente contenuto non deve ingannare: la superficie d'attacco cresce proporzionalmente all'adozione di IDE cloud-native e funzionalità di remote tunneling, rendendo questa tecnica una priorità emergente per i team di sicurezza.


La simulazione di questa tecnica in laboratorio richiede di comprendere due vettori distinti: l'installazione di un'estensione malevola e l'abuso di funzionalità legittime di tunneling. Entrambi i percorsi producono persistenza senza modificare chiavi di registro o servizi di sistema, il che li rende particolarmente interessanti per testare la maturità dei controlli di un'organizzazione.

Vettore 1 — Side-loading di estensione malevola. Visual Studio Code (open source) consente l'installazione di estensioni da file VSIX locale. In un esercizio red team, si può confezionare un'estensione con payload personalizzato e installarla dalla riga di comando:

code --install-extension payload.vsix --force

Il flag --force sovrascrive un'eventuale versione già presente. L'estensione finisce nella directory ~/.vscode/extensions/ su Linux e macOS, oppure %USERPROFILE%\.vscode\extensions\ su Windows. Il file extension.js (o activate() nel modulo principale) viene eseguito ogni volta che l'IDE si avvia, garantendo persistenza automatica.

Per confezionare il VSIX, lo strumento ufficiale è vsce (open source), il CLI di packaging per estensioni VS Code. La struttura minimale prevede un package.json con l'entry point e un modulo JavaScript che invoca il payload — ad esempio una reverse shell Node.js.

Vettore 2 — IDE Tunneling con VS Code. Questo è il percorso documentato per Mustang Panda. Il comando chiave è:

code.exe tunnel

Questo abilita una reverse shell integrata che sfrutta l'infrastruttura Microsoft per stabilire un tunnel autenticato. L'operatore remoto può accedere al filesystem, eseguire comandi nel terminale integrato e trasferire file — il tutto mascherato da traffico legittimo verso i domini di Visual Studio.

Procedura lab-safe completa. Per un test realistico, combinate i due vettori in sequenza: installate un'estensione che abilita il tunneling al primo avvio dell'IDE, verificando che il traffico in uscita raggiunga i servizi VS Code Remote. Monitorate con Wireshark (open source) le connessioni verso i domini marketplace e tunnel per validare che il vostro SOC le intercetti.

Per ambienti JetBrains, il percorso equivalente utilizza JetBrains Gateway (freemium) con i plugin remote. Le estensioni risiedono in ~/.config/JetBrains/ su Linux e il meccanismo di attivazione automatica è analogo. Simulate l'installazione via CLI e verificate se le regole di detection coprono anche questo IDE.


Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo

We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.