MITRE ATT&CK · T1195.001

Compromise Software Dependencies and Development Tools

MITRE · cited in 5 of our lessons

Explanation

What attackers do. Attackers tamper with software dependencies and development tools, such as open source packages, build tools or code editor plugins, so that the compromise spreads into the software built with them. This serves Initial Access.

How to defend. Pin dependency versions, use lock files and internal package mirrors, and scan dependencies for known malicious packages. Protect developer workstations and build systems, require code review for dependency changes and keep a software bill of materials. Run builds in isolated, monitored environments with restricted network access.

Signs to look for. Look for new or renamed packages similar to popular ones, install scripts making network connections, unexpected changes in package maintainers and build systems contacting unknown domains. A common gap is developer machines having broad access with little monitoring.

The official text
Adversaries may manipulate software dependencies and development tools prior to receipt by a final consumer for the purpose of data or system compromise. Applications often depend on external software to function properly. Popular open source projects that are used as dependencies in many applications, such as pip and NPM packages, may be targeted as a means to add malicious code to users of the dependency. This may also include abandoned packages, which in some cases could be re-registered by threat actors after being removed by adversaries. Adversaries may also employ "typosquatting" or name-confusion by choosing names similar to existing popular libraries or packages in order to deceive a user. Additionally, CI/CD pipeline components, such as GitHub Actions, may be targeted in order to gain access to the building, testing, and deployment cycles of an application. By adding malicious code into a GitHub action, a threat actor may be able to collect runtime credentials (e.g., via Proc Filesystem) or insert further malicious components into the build pipelines for a second-order supply chain compromise. As GitHub Actions are often dependent on other GitHub Actions, threat actors may be able to infect a large number of repositories via the compromise of a single Action. Adversaries may also target the configuration and instruction files consumed by integrated development environments and AI coding agents. Project files such as tasks.json may execute commands when a developer opens or builds a project, while agent skill files (SKILL.md) supply an agent with instructions and resources that it loads on demand and runs with the permissions of the agent process. To encourage downloads, adversaries may publish these files under benign-appearing or typo-squatted names, upload unmodified copies of the genuine skills first so the listings accumulate installs before the content behind them is weaponized, or may place the malicious instructions in a secondary document that the reviewed entry point references. Because these artifacts are natural language or configuration rather than executable code, they may pass registry screening and signature-based scanning.

© The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation (MITRE ATT&CK®).

Lessons that cite it

Real incidents where this item mattered.