# T1219.001 - Tunelamento via IDE
## Técnica Pai
Esta é uma sub-técnica de [[t1219-remote-access-tools|T1219 - T1219 - Remote Access Tools]].
## Descrição
Adversários abusam de funcionalidades de desenvolvimento remoto presentes em IDEs modernos para estabelecer canais de comando e controle persistentes e difíceis de detectar. Ferramentas como Visual Studio Code, JetBrains e similares oferecem nativamente recursos de acesso remoto que combinam SSH, encaminhamento de portas, compartilhamento de arquivos e depuração em uma única conexão segura - permitindo que desenvolvedores trabalhem em sistemas remotos como se estivessem locais.
O que torna essa técnica particularmente eficaz é que ela se mistura perfeitamente ao tráfego legítimo de desenvolvimento. O VS Code, por exemplo, oferece o comando `code tunnel`, que cria um túnel web-acessível autenticado via conta do GitHub ou Microsoft, permitindo que o atacante controle o sistema comprometido através de um portal de desenvolvedor completamente legítimo. Para ferramentas de segurança tradicionais, esse tráfego é indistinguível do uso normal de um desenvolvedor.
Além do canal C2, adversários utilizam o tunelamento via IDE para [[t1078-valid-accounts|persistência com credenciais válidas]]. IDEs como VS Code e JetBrains suportam reconexão automática e podem ser configurados para inicializar junto com o sistema operacional, reestabelecendo o túnel automaticamente após reinicializações. Máquinas de desenvolvedor comprometidas são especialmente valiosas porque frequentemente têm acesso privilegiado a repositórios de código, pipelines CI/CD, ambientes de staging e sistemas de produção.
O [[g0129-mustang-panda|Mustang Panda]], grupo APT de origem chinesa, foi documentado utilizando essa abordagem para manter acesso persistente em redes corporativas enquanto evitava detecção por soluções de segurança convencionais. Extensões maliciosas de IDE, cobertas pela técnica [[t1176-002-ide-extensions|T1176.002 - IDE Extensions]], podem ser usadas em conjunto para ampliar as capacidades do atacante dentro do ambiente comprometido.
**Contexto Brasil/LATAM:** O crescimento acelerado de equipes de desenvolvimento remoto no Brasil pós-pandemia expandiu significativamente a superfície de ataque para essa técnica. Empresas de tecnologia, fintechs e startups - setores em expansão no ecossistema brasileiro - frequentemente têm políticas mais permissivas para conexões de desenvolvedores remotos, tornando o tunelamento via IDE menos suspeito. A autenticação via GitHub, amplamente usada por desenvolvedores brasileiros, fornece cobertura adicional para o tráfego malicioso.
## Attack Flow
```mermaid
graph TB
A[Acesso Inicial] --> B[Instalar IDE / Extensão]
B --> C[T1219.001 - Túnel IDE]
C --> D[Persistência Auto-reconexão]
D --> E[Lateral Movement via Jump Host]
```
## Como Funciona
**1. Preparação**
O atacante garante que um IDE com suporte a desenvolvimento remoto estejá presente no sistema-alvo - sejá explorando um IDE já instalado pelo desenvolvedor legítimo ou instalando um como parte do acesso inicial. Uma conta de serviço (GitHub, Microsoft) é usada para autenticar o túnel.
**2. Execução**
O atacante executa o mecanismo de tunelamento do IDE (ex: `code tunnel` no VS Code). O túnel é estabelecido usando protocolos proprietários do IDE sobrepostos ao SSH, criando uma URL web-acessível que o atacante acessa externamente. A sessão completa - terminal, sistema de arquivos, debugger - fica disponível através desse portal.
**3. Pós-execução**
O IDE é configurado para inicializar automaticamente com o sistema, garantindo persistência. A máquina comprometida passa a funcionar como jump host para movimentação lateral na rede interna, aproveitando os acessos legítimos que o desenvolvedor possuía.
**Exemplo:**
```bash
# Artefatos de detecção no sistema comprometido
# Processo suspeito: code tunnel em execução em horários atípicos
# ps aux | grep "code tunnel"
# Verificar: /home/usuario/.vscode-server/ (presença inesperada)
# Chave de registro (Windows) para auto-inicialização:
# HKCU\Software\Microsoft\Windows\CurrentVersion\Run
# Valor: "code" -> "C:\Users\...\AppData\Local\Programs\Microsoft VS Code\Code.exe" tunnel
# Log de autenticação GitHub inesperado:
# ~/.config/Code/logs/ (conexões de IPs não-reconhecidos)
```
## Detecção
**Fontes de dados:** Logs de processo (Sysmon Event ID 1), conexões de rede (Event ID 3), registros de autenticação OAuth (GitHub/Microsoft), logs de EDR para processos de IDE
```yaml
title: Detecção de Tunelamento via Visual Studio Code
id: b8e4f1a2-93cd-4f7b-a523-6g9b01e2f5d8
status: experimental
description: Detecta uso do VS Code tunnel para estabelecer canal C2 persistente via portal de desenvolvedor legítimo
logsource:
category: process_creation
product: windows
detection:
selection_vscode_tunnel:
Image|endswith:
- '\code.exe'
- '\code-tunnel.exe'
CommandLine|contains:
- 'tunnel'
- '--cli-data-dir'
selection_jetbrains:
Image|contains:
- 'gateway'
- 'remote-dev-server'
CommandLine|contains:
- 'cwm'
- 'remoteDevServer'
condition: selection_vscode_tunnel or selection_jetbrains
falsepositives:
- Desenvolvedores legítimos usando VS Code Remote Development
- Equipes de DevOps usando JetBrains Gateway
- Ambientes de desenvolvimento remoto corporativos autorizados
level: medium
tags:
- attack.command_and_control
- attack.t1219.001
```
## Mitigação
| Mitigação | Recomendação Prática |
|-----------|---------------------|
| [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Restringir a execução de IDEs e ferramentas de desenvolvimento remoto em sistemas de produção e servidores. Implementar allowlist de aplicações para estações de trabalho não-dev. Bloquear o domínio `vscode.dev` e `tunnel.api.visualstudio.com` em segmentos de rede que não requerem desenvolvimento remoto. Auditar regularmente contas GitHub/Microsoft com acesso a túneis corporativos. |
## Threat Actors que Usam
- [[g0129-mustang-panda|Mustang Panda]]
## Técnicas Relacionadas
- [[t1176-002-ide-extensions|T1176.002 - IDE Extensions]] - extensões maliciosas como vetor complementar
- [[t1078-valid-accounts|T1078 - Valid Accounts]] - autenticação legítima para manter o túnel
- [[t1021-002-smb-windows-admin-shares|T1021.002]] - movimentação lateral após acesso via jump host
---
*Fonte: [MITRE ATT&CK - T1219.001](https://attack.mitre.org/techniques/T1219/001)*