ATT&CK coverage › Technique

Supply Chain Compromise: Compromise Software Supply Chain T1195.002

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.

Events covered

4 catalog events are tagged with this technique by at least one rule.

ProviderEvent IDTitle
Sysmon1Process creation
Sysmon11FileCreate
Sysmon22DNSEvent (DNS query)
Security-Auditing4688A new process has been created.

Authoring guide

Patterns shared across the 6 rules above: which fields they filter on, what specific values they look for, and what they exclude. Field names are normalized across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (11 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
Image3ends_with 3\gup.exe, \pwsh.exe, \mshta.exe, \powershell.exe
QueryName1eq 1, ends_with 1.sourceforge.net, notepad-plus-plus.org, .googleapis.com
CommandLine1match 1forfiles, wget, curl
ParentImage1ends_with 1\gup.exe
TargetFilename1match 1, starts_with 1npp., .exe, \Notepad++\plugins\ComparePlugin\
isIOC1eq 1true
dns.question.name1eq 1*
file_name1in 1"contents.json", "actionsSecrets.json", "cloud.json"
FileVersion1eq 118.12.*
OriginalFileName1eq 13CXDesktopApp.exe
process_name1eq 13CXDesktopApp.exe

Top indicator values (47 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique.

FieldKindValueRules (here)Corpus reach
Imageends_with\gup.exe23
QueryNameeqnotepad-plus-plus.org1
QueryNameends_with.sourceforge.net1
QueryNameends_with.azurewebsites.net1
QueryNameeqgithub.com1
QueryNameends_with.googleapis.com1
QueryNameends_with.githubusercontent.com1
QueryNameends_withblock.opendns.com1
QueryNameends_withgateway.zscalerthree.net1
Imageends_with\wscript.exe164
CommandLinematchbitsadmin15
Imageends_with\cscript.exe164
CommandLinematchforfiles12
Imageends_with\cmd.exe192
Imageends_with\mshta.exe157
Imageends_with\pwsh.exe1140
ParentImageends_with\gup.exe12
CommandLinematchregsvr32111
CommandLinematchcurl13
CommandLinematchwget12

Common exclusions (2 distinct)

Field/operator/value combinations that rules under this technique routinely exclude (top-level not() clauses). These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths.

FieldKindValueRules excluding
dns.question.namein"unknown"1
dns.question.namein"-"1

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Sigma 3 rules

Splunk 3 rules