Tunnel IDE: IDE Tunneling (T1219.001)

La tecnica T1219.001 — IDE Tunneling descrive l'abuso delle funzionalità di sviluppo remoto integrate negli Integrated Development Environment moderni per instaurare un canale di comando e controllo interattivo verso sistemi compromessi. Rientra nella tattica TA0011 (Command and Control) e si colloca nella fase post-exploitation della kill chain, dove l'attaccante ha già ottenuto esecuzione di codice sull'host bersaglio e cerca un canale persistente, cifrato e mimetizzato nel traffico legittimo.

A differenza di un semplice port forwarding SSH, un tunnel IDE incapsula un'intera sessione di sviluppo — editing, debugging, terminal, file transfer — dentro una connessione autenticata verso portali cloud legittimi come Microsoft Dev Tunnels o JetBrains Gateway. L'autenticazione avviene tipicamente tramite account GitHub, Microsoft Entra o JetBrains, e il traffico viaggia verso domini fidati (*.devtunnels.ms, *.tunnels.api.visualstudio.com), rendendo la distinzione dal lavoro legittimo di uno sviluppatore particolarmente ardua.

L'impatto operativo è significativo: un singolo comando come code tunnel genera un URL web che consente il controllo remoto del sistema senza aprire porte in ingresso, senza richiedere infrastruttura C2 dedicata e senza generare allarmi sui firewall perimetrali. La tecnica offre anche persistenza nativa grazie all'auto-reconnect degli IDE e alla possibilità di lanciare l'eseguibile all'avvio. Un solo gruppo APT — Mustang Panda (G0129) — risulta documentato in ATT&CK per l'impiego di questa procedura, ma la superficie di rischio è ampia in ogni ambiente dove Visual Studio Code o JetBrains IDE siano permessi.

In un esercizio red team autorizzato, la simulazione di T1219.001 richiede pochi passaggi ma offre un canale C2 estremamente pulito. Il tool primario è Visual Studio Code (gratuito) nella sua distribuzione CLI, disponibile come binario standalone senza necessità di installare l'IDE completo. Su un host Windows compromesso l'operatore scarica il CLI ufficiale e lancia:

code tunnel --accept-server-license-terms --name redteam-host01

Al primo avvio il processo stampa un codice di device flow e chiede autenticazione via GitHub o Microsoft account. Una volta completato il login da qualsiasi browser esterno, l'URL restituito (nella forma nome-tunnel.tunnels.api.visualstudio.com oppure attraverso vscode.dev) fornisce accesso completo al filesystem, terminale integrato e possibilità di port forward verso servizi interni.

Per garantire persistenza, il flag --install-as-service installa il tunnel come servizio Windows che si riavvia automaticamente. Su Linux la stessa CLI è disponibile come tarball; il comando è identico e la persistenza si ottiene con una unit systemd utente, oppure con una voce crontab @reboot. Su macOS un LaunchAgent in ~/Library/LaunchAgents/ con chiave RunAtLoad raggiunge lo stesso obiettivo.

La variante JetBrains Gateway (freemium) richiede installazione dell'agent remote-dev-server.sh sul target e apertura di una sessione dal client dell'operatore; il canale sfrutta SSH ma con handshake e keepalive proprietari.

Catena d'attacco tipica in un lab:

  • Initial access tramite phishing con LNK o macro (fuori scope per questa tecnica)
  • Download del CLI di VS Code in %LOCALAPPDATA% o ~/.local/bin per evitare directory di sistema
  • Esecuzione di code tunnel user login --provider github con token PAT preparato in laboratorio
  • Avvio del tunnel con nome host anonimo
  • Uso del port forwarding integrato per pivotare verso RDP, SMB o servizi applicativi interni

Per misurare la detection capacity del blue team, l'operatore dovrebbe variare: il path di installazione del binario, il nome del tunnel (evitando parole ovvie), l'account di autenticazione (usando identità GitHub non collegate al red team), e l'orario di attivazione. È utile anche testare la variante code serve-web che espone l'editor via browser senza necessità di client desktop.

Strumenti di supporto per la fase di validazione includono Wireshark (open source) per confermare la destinazione delle connessioni TLS e Sysmon (gratuito) sul target per verificare quali eventi il red team stia effettivamente generando.

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

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.