Supply Chain Compromise: Compromise Software Supply Chain

Adversaries may manipulate application software prior to receipt by a final consumer for the purpose of data or system compromise. Supply chain compromise of software can take place in a number of ways, including manipulation of the application source code, manipulation of the update/distribution mechanism for that software, or replacing compiled releases with a modified version.

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.[1] [2]

ID: T1195.002
Sub-technique of:  T1195
Tactic: Initial Access
Platforms: Linux, Windows, macOS
Data Sources: File monitoring, Web proxy
Version: 1.0
Created: 11 March 2020
Last Modified: 11 March 2020

Procedure Examples

Name Description

APT41 gained access to production environments where they could inject malicious code into legitimate, signed files and widely distribute them to end users.[3]


CCBkdr was added to a legitimate, signed version 5.33 of the CCleaner software and distributed on CCleaner's distribution site.[4][5][1]


Dragonfly has placed trojanized installers on legitimate vendor app stores.[6]


GOLD SOUTHFIELD has distributed ransomware by backdooring software installers via a strategic web compromise of the site hosting Italian WinRAR.[7][8][9]


GoldenSpy has been packaged with a legitimate tax preparation software.[10]

Sandworm Team

Sandworm Team has distributed NotPetya by compromising the legitimate Ukrainian accounting software M.E.Doc and replacing a legitimate software update with a malicious one.[11][12]


Sunspot malware was designed and used to insert Sunburst into software builds of the SolarWinds Orion IT management product.[13]


UNC2452 gained initial network access via a trojanized update of SolarWinds Orion software.[14]


Mitigation Description
Update Software

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

Vulnerability Scanning

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


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.