Adversaries may manipulate products or product delivery mechanisms prior to receipt by a final consumer for the purpose of data or system compromise.
Supply chain compromise can take place at any stage of the supply chain including:
While supply chain compromise can impact any component of hardware or software, adversaries looking to gain execution have often focused on malicious additions to legitimate software in software distribution or update channels.[3][4][5] Adversaries may limit targeting to a desired victim set or distribute malicious software to a broad set of consumers but only follow up with specific victims.[6][3][5] Popular open-source projects that are used as dependencies in many applications may also be targeted as a means to add malicious code to users of the dependency.[7]
In some cases, adversaries may conduct "second-order" supply chain compromises by leveraging the access gained from an initial supply chain compromise to further compromise a software component.[8] This may allow the threat actor to spread to even more victims.
| ID | Name | Description |
|---|---|---|
| G1003 | Ember Bear |
Ember Bear has compromised information technology providers and software developers providing services to targets of interest, building initial access to ultimate victims at least in part through compromise of service providers that work with the victim organizations.[9] |
| S1213 | Lumma Stealer |
Lumma Stealer has been delivered through cracked software downloads.[10][11][12] |
| G0049 | OilRig |
OilRig has leveraged compromised organizations to conduct supply chain attacks on government entities.[13] |
| S1148 | Raccoon Stealer |
Raccoon Stealer has been distributed through cracked software downloads.[14] |
| G0034 | Sandworm Team |
Sandworm Team staged compromised versions of legitimate software installers on forums to achieve initial, untargetetd access in victim environments.[15] |
| ID | Mitigation | Description |
|---|---|---|
| M1013 | Application Developer Guidance |
Application developers should be cautious when selecting third-party libraries to integrate into their application. Additionally, where possible, developers should lock software dependencies to specific versions rather than pulling the latest version on build.[16] |
| M1046 | Boot Integrity |
Use secure methods to boot a system and verify the integrity of the operating system and loading mechanisms. |
| M1033 | Limit Software Installation |
Where possible, consider requiring developers to pull from internal repositories containing verified and approved packages rather than from external ones.[16] |
| 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. |
| M1018 | User Account Management |
Implement robust user account management practices to limit permissions associated with software execution. Ensure that software runs with the lowest necessary privileges, avoiding the use of root or administrator accounts when possible. By restricting permissions, you can minimize the risk of propagation and unauthorized actions in the event of a supply chain compromise, reducing the attack surface for adversaries to exploit within compromised systems. |
| M1016 | Vulnerability Scanning |
Continuous monitoring of vulnerability sources and the use of automatic and manual code review tools should also be implemented as well.[17] |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0537 | Behavioral detection for Supply Chain Compromise (package/update tamper → install → first-run) | AN1480 |
1) New or updated software is delivered/installed from atypical sources or with signature/hash mismatches; 2) installer/updater writes binaries to unexpected paths or replaces existing signed files; 3) first run causes unsigned/abnormally signed modules to load or child processes to execute, optionally followed by network egress to new destinations. |
| AN1481 |
1) Package manager or curl/wget installs/upgrades from non-approved repos or unsigned packages; 2) new ELF written into PATH directories or replacement of existing binaries/libraries; 3) first run leads to unexpected child processes or outbound connections. |
||
| AN1482 |
1) pkg/notarization installs from atypical sources or with Gatekeeper/AMFI warnings; 2) new Mach-O written into /Applications or ~/Library paths or substitution of signed components; 3) first run from installer spawns unsigned children or exfil. |