Supply Chain Compromise: Compromise Software Dependencies and Development Tools

ID Name
T1195.001 Compromise Software Dependencies and Development Tools
T1195.002 Compromise Software Supply Chain
T1195.003 Compromise Hardware Supply Chain

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 may be targeted as a means to add malicious code to users of the dependency.[1]

Targeting may be specific to a desired victim set or may be distributed to a broad set of consumers but only move on to additional tactics on specific victims.

ID: T1195.001
Sub-technique of:  T1195
Tactic: Initial Access
Platforms: Linux, Windows, macOS
Version: 1.0
Created: 11 March 2020
Last Modified: 19 April 2022

Procedure Examples

ID Name Description

XCSSET adds malicious code to a host's Xcode projects by enumerating CocoaPods target_integrator.rb files under the /Library/Ruby/Gems folder or enumerates all .xcodeproj folders under a given directory. XCSSET then downloads a script and Mach-O file into the Xcode project folder.[2]


ID Mitigation Description
M1051 Update Software

A patch management process should be implemented to check unused dependencies, unmaintained and/or previously vulnerable dependencies, unnecessary features, components, files, and documentation.

M1016 Vulnerability Scanning

Continuous monitoring of vulnerability sources and the use of automatic and manual code review tools should also be implemented as well.[3]


Use verification of distributed binaries through hash checking or other integrity checking mechanisms. Scan downloads for malicious signatures and attempt to test software and updates prior to deployment while taking note of potential suspicious activity.