Subvert Trust Controls: Gatekeeper Bypass T1553.001

Tactic: Defense Impairment

Adversaries may modify file attributes and subvert Gatekeeper functionality to evade user prompts and execute untrusted programs. Gatekeeper is a set of technologies that act as layer of Apple’s security model to ensure only trusted applications are executed on a host. Gatekeeper was built on top of File Quarantine in Snow Leopard (10.6, 2009) and has grown to include Code Signing, security policy compliance, Notarization, and more. Gatekeeper also treats applications running for the first time differently than reopened applications.

Events covered

1 catalog event is tagged with this technique by at least one rule.

ProviderEventTitle
ESFexecProcess Execution (Notify)

Authoring guide

Patterns shared across the 8 rules above: which fields they filter on, what specific values they look for, and what they exclude. The catalog normalizes field names 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 (16 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
EventType5eq 5exec, extended_attributes_delete, gatekeeper_override, gatekeeper_user_override
host.os.type5eq 5
event.type3eq 2, in 1start, process_started
CommandLine2contains 2com.apple.quarantine, -d, master-disable, spctl
Image2ends_with 1, is_not_null 1/xattr
process.args2eq 1, in 1, match 1--directory, --download, --master-disable, --output
process.args_count2eq 1, le 11, 10
process.code_signature.exists2eq 2false
process.code_signature.trusted2eq 2false
process_name2eq 1, in 1curl, nscurl, spctl
DestinationHostname1is_null 1
DestinationPort1lt 149152
TargetFilename1wildcard 1/applications/*, /private/tmp/*, /private/var/tmp/*
esf.event_type1eq 1146
parent_process_name1wildcard 1bash, osascript, python*

Top indicator values (48 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. Click a value to expand the rules under this technique that use it.

FieldKindValueRules (here)Corpus reach
CommandLinecontains
com.apple.quarantine
22
CommandLinecontains
-d
18
CommandLinecontains
master-disable
1
CommandLinecontains
spctl
1
CommandLinecontains
xattr
1
EventTypeeq
exec
2171
EventTypeeq
extended_attributes_delete
1
EventTypeeq
gatekeeper_override
1
EventTypeeq
gatekeeper_user_override
1
event.typeeq
start
2606
process.code_signature.existseq
false
219
process.code_signature.trustedeq
false
218
DestinationPortlt
49152
12
Imageends_with
/xattr
12
TargetFilenamewildcard
/applications/*
1
TargetFilenamewildcard
/private/tmp/*
13
TargetFilenamewildcard
/private/var/tmp/*
1
TargetFilenamewildcard
/tmp/*
17
TargetFilenamewildcard
/users/*/applications/*
1
TargetFilenamewildcard
/users/*/desktop/*
1
TargetFilenamewildcard
/users/*/documents/*
1
TargetFilenamewildcard
/users/*/downloads/*
1
TargetFilenamewildcard
/users/shared/*
14
TargetFilenamewildcard
/var/tmp/*
16
TargetFilenamewildcard
/volumes/*
1
esf.event_typeeq
146
1
event.typein
process_started
140
event.typein
start
142
parent_process_namewildcard
bash
17
parent_process_namewildcard
osascript
16

Exclusions (46 distinct)

Field/operator/value combinations excluded by rules under this technique (top-level not() clauses), sorted by how many rules exclude each. 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. Click a value to expand the rules under this technique that exclude it.

FieldKindValueRules excluding
DestinationPortin
22
1
DestinationPortin
25
1
DestinationPortin
443
1
DestinationPortin
465
1
DestinationPortin
53
1
DestinationPortin
587
1
DestinationPortin
80
1
DestinationPortin
8080
1
DestinationPortin
8200
1
DestinationPortin
9200
1
DestinationPortin
993
1
Imagestarts_with
/opt/homebrew/
1
Imagewildcard
/applications/.com.bomgar.scc.*/remote support customer...
1
Imagewildcard
/applications/cewe fotoschau.app/contents/macos/fotoplus
1
Imagewildcard
/private/tmp/ksinstallaction.*/*/install google software...
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.

Platform (all)
Domain (all)

Sigma 2 rules

Elastic 5 rules

Splunk 1 rule