Tunnel IDE come Canale C2: IDE Tunneling (T1219.001)

Quando un avversario ha bisogno di un canale di comando e controllo che si confonda perfettamente con il traffico legittimo degli sviluppatori, pochi strumenti sono efficaci quanto le funzionalità di tunneling integrate negli ambienti di sviluppo moderni. La tecnica IDE Tunneling — sottotecnica di Remote Access Software nella tattica Command and Control (TA0011) — sfrutta le capacità di sviluppo remoto offerte da IDE come Visual Studio Code e JetBrains per instaurare sessioni interattive persistenti verso macchine compromesse.

Il meccanismo è elegante nella sua semplicità: un singolo tunnel IDE incapsula SSH, port forwarding, condivisione file e debugging in una connessione cifrata che transita su protocolli proprietari o standard, diretta verso endpoint Microsoft o JetBrains perfettamente legittimi. L'autenticazione avviene tramite account GitHub o Microsoft Entra, e l'accesso remoto si materializza attraverso un portale web o un client desktop che l'attaccante controlla comodamente dalla propria postazione.

Il rischio si amplifica quando l'avversario configura il tunnel per il riavvio automatico, trasformando un semplice canale C2 in un meccanismo di persistenza. Le macchine compromesse — spesso workstation di sviluppatori con accessi privilegiati a repository e ambienti di staging — diventano jump host ideali per il movimento laterale. Con 1 gruppo APT documentato che utilizza attivamente questa tecnica e 1 mitigazione formale disponibile, il panorama difensivo è ancora in fase di maturazione.


La simulazione di questa tecnica in laboratorio è sorprendentemente accessibile: bastano il CLI di Visual Studio Code e un account GitHub gratuito. Il punto di forza per il red teamer è che l'intera catena si basa su binari firmati Microsoft e traffico verso domini di primo livello legittimi.

Il primo passo è ottenere il binario CLI di VS Code sulla macchina target. In uno scenario reale l'attaccante potrebbe trasferirlo via download diretto o sfruttare un'installazione preesistente. Su Windows, il comando fondamentale è:

code.exe tunnel --accept-server-license-terms

Alla prima esecuzione il CLI genera un codice di autenticazione da inserire nel portale GitHub per associare il tunnel a un account. Una volta completato il binding, il sistema target diventa raggiungibile tramite il portale VS Code web o da un client desktop remoto — con terminal integrato, file browser e debugger completi.

Su Linux il flusso è analogo. Dopo aver scaricato il CLI standalone (il pacchetto si chiama code-cli e non richiede l'installazione completa dell'IDE), si esegue:

./code tunnel --name lab-target --accept-server-license-terms

Il parametro --name assegna un alias al tunnel, rendendo più semplice gestire target multipli. L'attaccante che vuole persistenza può creare un servizio systemd o una entry crontab @reboot che rilanci il tunnel automaticamente.

Per simulare lo scenario JetBrains, il tool JetBrains Gateway (gratuito) consente di stabilire connessioni remote tramite SSH con port forwarding automatico verso l'IDE backend. Il red teamer può configurare un tunnel SSH inverso e poi collegare Gateway per ottenere un'esperienza di sviluppo remoto completa, indistinguibile da un uso legittimo.

Alcuni aspetti da validare durante l'esercizio:

  • Visibilità DNS: verificare se il proxy o il DNS aziendale registra le query verso i domini devtunnels di Microsoft (pattern *.devtunnels.ms) o i gateway JetBrains
  • Catena processi: controllare se l'EDR identifica code.exe lanciato da un processo non-interattivo (es. schtasks, cmd.exe da servizio)
  • Autenticazione: testare se le policy Entra ID bloccano l'autenticazione da tenant non autorizzati

Per documentare il traffico generato, Wireshark (open source) è ideale per catturare i flussi TLS verso i domini tunnel e analizzare pattern di heartbeat e volume dati. Il red teamer dovrebbe confrontare il profilo di traffico del tunnel IDE con quello di una sessione di sviluppo legittima per valutare quanto siano realmente distinguibili.


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.