Cloud Storage Object Discovery T1619

Tactic: Discovery

Adversaries may enumerate objects in cloud storage infrastructure. Adversaries may use this information during automated discovery to shape follow-on behaviors, including requesting all or specific objects from cloud storage. Similar to File and Directory Discovery on a local host, after identifying available storage services (i.e. Cloud Infrastructure Discovery) adversaries may access the contents/objects stored in cloud infrastructure.

Authoring guide

Patterns shared across the 7 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 (19 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.dataset5eq 5aws.cloudtrail, azure.activitylogs, o365.audit
Provider_Name4eq 4s3.amazonaws.com, SharePoint
event.outcome4eq 3, in 1success, Success
EventType3in 2, eq 1DeleteObject, GetBucketAcl, GetBucketPolicy, GetBucketPolicyStatus, GetObject
aws::userIdentity.type3eq 1, in 1, ne 1AWSAccount, AWSService, AssumedRole, Unknown
Esql.aws_cloudtrail_resources_arn_count_distinct1gt 115
aws.cloudtrail.resources.arn1is_not_null 1
aws::errorCode1eq 1AccessDenied
aws::eventName1eq 1ListBuckets
aws::eventSource1eq 1s3.amazonaws.com
aws::recipientAccountId1eq 1anonymous
aws::sessionCredentialFromConsole1is_null 1
aws::userIdentity.arn1is_not_null 1
azure.activitylogs.operation_name1eq 1MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/WRITE
httpstatus1in 1403, 405

Top indicator values (112 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
Provider_Nameeq
s3.amazonaws.com
314
Provider_Nameeq
SharePoint
12
data_stream.dataseteq
aws.cloudtrail
3141
data_stream.dataseteq
azure.activitylogs
134
data_stream.dataseteq
o365.audit
145
event.outcomeeq
success
3251
Esql.aws_cloudtrail_resources_arn_count_distinctgt
15
1
EventTypeeq
SearchQueryPerformed
1
EventTypein
DeleteObject
1
EventTypein
GetBucketAcl
1
EventTypein
GetBucketPolicy
1
EventTypein
GetBucketPolicyStatus
1
EventTypein
GetBucketPublicAccessBlock
1
EventTypein
GetBucketVersioning
1
EventTypein
GetObject
1
EventTypein
ListBucket
1
EventTypein
ListObjects
1
EventTypein
PutObject
1
aws::errorCodeeq
AccessDenied
119
aws::eventNameeq
ListBuckets
12
aws::eventSourceeq
s3.amazonaws.com
117
aws::recipientAccountIdeq
anonymous
1
aws::userIdentity.typeeq
AssumedRole
112
aws::userIdentity.typein
AWSAccount
1
aws::userIdentity.typein
Unknown
1
aws::userIdentity.typene
AWSService
15
azure.activitylogs.operation_nameeq
MICROSOFT.STORAGE/STORAGEACCOUNTS/BLOBSERVICES/CONTAINERS/WRITE
1
event.outcomein
Success
137
event.outcomein
success
138
httpstatusin
403
1

Exclusions (2 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::userIdentity.typeeq
AssumedRole
1
useragentstarts_with
aws-internal
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 5 rules

Panther 1 rule