Software Extensions: IDE Extensions
- ID
- T1176.002
- Tactics
- TA0003 Persistence
- Sub-technique of
- T1176 Software Extensions
- Platforms
- Linux, macOS, Windows
- Data sources
- Process Creation, Network Connection Creation, File Creation, Network Traffic Flow
- Source
- attack.mitre.org
- MITRE last modified
- 23 Apr 2025
Adversaries may abuse an integrated development environment (IDE) extension to establish persistent access to victim systems.[1] IDEs such as Visual Studio Code, IntelliJ IDEA, and Eclipse support extensions - software components that add features like code linting, auto-completion, task automation, or integration with tools like Git and Docker. A malicious extension can be installed through an extension marketplace (i.e., Compromise Software Dependencies and Development Tools) or side-loaded directly into the IDE.[2][3]
In addition to installing malicious extensions, adversaries may also leverage benign ones. For example, adversaries may establish persistent SSH tunnels via the use of the VSCode Remote SSH extension (i.e., IDE Tunneling).
Trust is typically established through the installation process; once installed, the malicious extension is run every time that the IDE is launched. The extension can then be used to execute arbitrary code, establish a backdoor, mine cryptocurrency, or exfiltrate data.[4]
Detection
- DET0561 Detect malicious IDE extension install/usage and IDE tunneling
Data components: Process Creation, Network Connection Creation, File Creation, Network Traffic Flow
Mitigations (5)
- M1017 User Training
Train users to minimize IDE extension use, and to only install trusted extensions.
- M1033 Limit Software Installation
Only install IDE extensions from trusted sources that can be verified.
- M1038 Execution Prevention
Set an IDE extension allow or deny list as appropriate for your security policy.
- M1047 Audit
Ensure extensions that are installed are the intended ones, as many malicious extensions may masquerade as legitimate ones.
- M1051 Update Software
Ensure operating systems and IDEs are using the most current version.
