Has distributed a trojanized version of PuTTY software for initial access to victims.1
Compromise Software Supply Chain T1195.002
- Tactic
- Initial Access
- Platforms
- Linux, Windows, macOS
- Version
- 1.1
- Created
- 11 March 2020
- Last modified
- 24 October 2025
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.
Compromise Software Supply Chain MITRE reference T1195.002
9 groups have been recorded using this technique. Newest first; each entry carries MITRE’s procedure text and a link to the group’s full record. Click a name to filter the rules below.
Is associated with several supply chain compromises using malicious updates to compromise victims.12
Has distributed ransomware by backdooring software installers via a strategic web compromise of the site hosting Italian WinRAR.123
Gained access to production environments where they could inject malicious code into legitimate, signed files and widely distribute them to end users.1
Has compromised legitimate web browser updates to deliver a backdoor. 1
Has gained initial access by compromising a victim's software supply chain.1
All 9 groups for this technique · 6 newest in this preview
2 campaigns have been recorded using this technique. Listed newest first; dates are year-granularity and attribution is MITRE’s.
During the 3CX Supply Chain Attack, AppleJeus first compromised an “end-of-life" trading software application which was downloaded and executed inside the 3CX enterprise environment. The second compromise modified the Windows and macOS build environments used to distribute the 3CX software to their customer base.1
During the SolarWinds Compromise, APT29 gained initial network access to some victims via a trojanized update of SolarWinds Orion software.1234
All 2 campaigns for this technique
3 software entries are documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
Malware was designed and used to insert SUNBURST into software builds of the SolarWinds Orion IT management product.1
Has been packaged with a legitimate tax preparation software.1
Was added to a legitimate, signed version 5.33 of the CCleaner software and distributed on CCleaner's distribution site.123
All 3 software entries for this technique
Offense vs defense T1195.002
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
Compromise Software Supply Chain detection strategy DET0309
MITRE names one behaviour worth catching for this technique and breaks it into 3 analytics, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Compromised software/update chain (installer/write → first-run/child → egress/signature anomaly)
AN0862 · Windows
Adversary ships a tampered application or update: an updater/installer (msiexec/setup/update.exe/vendor service) writes or replaces binaries; on first run it spawns scripts/shells or unsigned DLLs and beacons to non-approved update CDNs/hosts. Detection correlates: (1) process creation of installer/updater → (2) file metadata changes in program paths → (3) first-run children and module/signature anomalies → (4) outbound connections to unexpected hosts within a short window.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Module LoadDC0016 | WinEventLog:Sysmon | EventCode=7 |
| Process CreationDC0032 | WinEventLog:Sysmon | EventCode=1 |
| File CreationDC0039 | WinEventLog:Sysmon | EventCode=11 |
| File MetadataDC0059 | WinEventLog:Microsoft-Windows-CodeIntegrity/Operational | Unsigned or invalid image for newly installed/updated binaries |
| Windows Registry Key ModificationDC0063 | WinEventLog:Sysmon | EventCode=13, 14 |
| Network Traffic FlowDC0078 | NSM:Flow | First-time egress to non-approved update hosts right after install/update |
| Driver LoadDC0079 | WinEventLog:Sysmon | EventCode=6 |
| Network Connection CreationDC0082 | WinEventLog:Sysmon | EventCode=3, 22 |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| TimeWindow | Correlate write→first-run→egress (default 90 minutes). |
| ApprovedUpdateHosts | Allow-list of vendor update endpoints, enterprise proxy/cache. |
| ApprovedSigners | Code-signing publishers allowed for programs/services. |
| ProgramPaths | Monitored install locations (e.g., C:\Program Files, C:\ProgramData, %LOCALAPPDATA%). |
AN0863 · Linux
A compromised package/update (deb/rpm/tarball/AppImage/vendor updater) is installed, writing/overwriting files in /usr/local/bin, /usr/bin, /opt, or ~/.local; first run executes unexpected shells/curl/wget and connects to unapproved hosts. Correlate package/updater execution → file writes/replace → first-run child processes → egress.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Process CreationDC0032 | auditd:SYSCALL | execve |
| File MetadataDC0059 | journald:package | dpkg/apt/yum/dnf transaction logs; vendor updaters in systemd journals |
| Network Traffic FlowDC0078 | NSM:Flow | New outbound flows to non-approved vendor hosts post install |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| PathScope | Monitored install paths (/usr/local, /usr/bin, /opt/*, ~/.local/bin, /var/lib/systemd). |
| ApprovedRepos | Allow-listed APT/YUM repos and GPG keys for vendor updates. |
| TimeWindow | Default 90 minutes. |
AN0864 · macOS
A tampered app/pkg/notarized update is installed via installer, softwareupdated, Homebrew, or vendor updater; new Mach-O or bundle contents appear in /Applications, /Library, /usr/local or /opt/homebrew; first run spawns sh/zsh/osascript/curl and makes egress to unfamiliar domains; AMFI/Gatekeeper may log signature/notarization problems.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Process CreationDC0032 | macos:endpointsecurity | exec |
| File MetadataDC0059 | macos:unifiedlog | pkginstalld/softwareupdated/Homebrew install transactions |
| Network Traffic FlowDC0078 | NSM:Flow | New/rare egress to non-approved update hosts after install |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| AllowedTeamIDs | Apple Developer Team IDs allowed for enterprise. |
| BrewTapsAllowList | Trusted Homebrew taps. |
| TimeWindow | Default 90 minutes. |
A patch management process should be implemented to check unused applications, unmaintained and/or previously vulnerable software, unnecessary features, components, files, and documentation.
Continuous monitoring of vulnerability sources and the use of automatic and manual code review tools should also be implemented as well.
Tests from Atomic Red Team (MIT licence) · technique definition