| ID | Name |
|---|---|
| T1219.001 | IDE Tunneling |
| T1219.002 | Remote Desktop Software |
| T1219.003 | Remote Access Hardware |
Adversaries may abuse Integrated Development Environment (IDE) software with remote development features to establish an interactive command and control channel on target systems within a network. IDE tunneling combines SSH, port forwarding, file sharing, and debugging into a single secure connection, letting developers work on remote systems as if they were local. Unlike SSH and port forwarding, IDE tunneling encapsulates an entire session and may use proprietary tunneling protocols alongside SSH, allowing adversaries to blend in with legitimate development workflows. Some IDEs, like Visual Studio Code, also provide CLI tools (e.g., code tunnel) that adversaries may use to programmatically establish tunnels and generate web-accessible URLs for remote access. These tunnels can be authenticated through accounts such as GitHub, enabling the adversary to control the compromised system via a legitimate developer portal.[1][2][3]
Additionally, adversaries may use IDE tunneling for persistence. Some IDEs, such as Visual Studio Code and JetBrains, support automatic reconnection. Adversaries may configure the IDE to auto-launch at startup, re-establishing the tunnel upon execution. Compromised developer machines may also be exploited as jump hosts to move further into the network.
IDE tunneling tools may be built-in or installed as IDE Extensions.
| ID | Name | Description |
|---|---|---|
| G0129 | Mustang Panda |
Mustang Panda has utilized an established Github account to create a tunnel within the victim environment using Visual Studio Code through the |
| ID | Mitigation | Description |
|---|---|---|
| M1038 | Execution Prevention |
Use Group Policies to require user authentication by disabling anonymous tunnel access, preventing any unauthenticated tunnel creation or usage. Disable the Visual Studio Dev Tunnels feature to block tunnel-related commands, allowing only minimal exceptions for utility functions (unset, echo, ping, and user). Restrict tunnel access to approved Microsoft Entra tenant IDs by specifying allowed tenants; all other users are denied access by default.[4][5] |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0133 | IDE Tunneling Detection via Process, File, and Network Behaviors | AN0375 |
Detection of the creation of VSCode or JetBrains CLI tunneling profiles followed by persistent remote access via IDE-integrated tunnels, potentially authenticated via GitHub or JetBrains accounts. |
| AN0376 |
Creation of VSCode tunnel configuration file combined with interactive remote session via code CLI or ssh with JetBrains gateway. |
||
| AN0377 |
Detection of JetBrains or VSCode tunnel profile creation followed by unusual persistent SSH or IDE-based tunnel communications to devtunnel APIs. |