Permission Groups Discovery: Cloud Groups T1069.003

Tactic: Discovery

Adversaries may attempt to find cloud groups and permission settings. The knowledge of cloud permission groups can help adversaries determine the particular roles of users and groups within an environment, as well as which users are associated with a particular group.

Events covered

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

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 (24 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
data_stream.dataset4eq 3, in 1aws.cloudtrail, azure.activitylogs, azure.auditlogs, azure.graphactivitylogs, azure.signinlogs
aws::userAgent3eq 1, is_not_null 1, starts_with 1(azure|sharp|blood)(hound)/., Mozilla/5.0 (Windows NT 10.0; Win64; x64)...
aws::errorCode2eq 2MalformedPolicyDocumentException, success
aws::eventName2eq 2DeleteGroup
sourcetype2eq 2aws:asl, aws:cloudtrail
EventID1eq 14104
EventType1eq 1UpdateAssumeRolePolicy
Provider_Name1eq 1iam.amazonaws.com
ScriptBlockText1in 1*install-module -name aadinternals*, *install-module -name az.resources*, *install-module -name azuread*
apiGroup1eq 1authorization.k8s.io
aws::eventSource1eq 1iam.amazonaws.com
event.outcome1eq 1failure
kubernetes.audit.annotations.authorization_k8s_io/decision1eq 1allow
kubernetes.audit.impersonatedUser.username1starts_with 1system\:node\:, system\:serviceaccount\:
kubernetes.audit.objectRef.resource1in 1selfsubjectaccessreviews, selfsubjectrulesreviews

Top indicator values (45 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
aws::eventNameeq
DeleteGroup
24
EventIDeq
4104
1268
EventTypeeq
UpdateAssumeRolePolicy
12
Provider_Nameeq
iam.amazonaws.com
125
ScriptBlockTextin
*install-module -name aadinternals*
1
ScriptBlockTextin
*install-module -name az.resources*
1
ScriptBlockTextin
*install-module -name azuread*
1
ScriptBlockTextin
*install-module -name msonline*
1
ScriptBlockTextin
*install-module aadinternals*
1
ScriptBlockTextin
*install-module az.resources*
1
ScriptBlockTextin
*install-module azuread*
1
ScriptBlockTextin
*install-module msonline*
1
apiGroupeq
authorization.k8s.io
1
aws::errorCodeeq
MalformedPolicyDocumentException
12
aws::errorCodeeq
success
112
aws::eventSourceeq
iam.amazonaws.com
128
aws::userAgenteq
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like...
1
aws::userAgentstarts_with
(azure|sharp|blood)(hound)/.
1
data_stream.dataseteq
aws.cloudtrail
1141
data_stream.dataseteq
azure.activitylogs
134
data_stream.dataseteq
azure.auditlogs
120
data_stream.dataseteq
azure.graphactivitylogs
15
data_stream.dataseteq
azure.signinlogs
130
data_stream.dataseteq
kubernetes.audit_logs
136
data_stream.dataseteq
o365.audit
145
data_stream.datasetin
azure.signinlogs
15
data_stream.datasetin
o365.audit
13
event.outcomeeq
failure
116
kubernetes.audit.annotations.authorization_k8s_io/decisioneq
allow
123
kubernetes.audit.impersonatedUser.usernamestarts_with
system\:node\:
12

Exclusions (1 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
aws::userAgentends_with
kubernetes/$Format
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 1 rule

Elastic 4 rules

Splunk 3 rules