Cloud Infrastructure Discovery T1580

Tactic: Discovery

An adversary may attempt to discover infrastructure and resources that are available within an infrastructure-as-a-service (IaaS) environment. This includes compute service resources such as instances, virtual machines, and snapshots as well as resources of other services including the storage and database services.

Events covered

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

Authoring guide

Patterns shared across the 42 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 (81 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
EventType10eq 5, in 4, ne 1, wildcard 1DescribeInstances, CreateAssociation, DescribeCapacityReservations, DescribeDBInstances, DescribeDBSnapshots
Provider_Name10eq 8, in 2ec2.amazonaws.com, cloudtrail.amazonaws.com, dynamodb.amazonaws.com, s3.amazonaws.com, cloudfront.amazonaws.com
data_stream.dataset10eq 9, in 1aws.cloudtrail, azure.activitylogs, azure.auditlogs, azure.graphactivitylogs, azure.signinlogs
aws::eventName7eq 5, in 2AssumeRole, DescribeDBClusterSnapshots, DescribeDBSnapshots, DescribeInstanceAttribute, GetCallerIdentity
aws::errorCode6eq 5, is_null 1AccessDenied, Client.UnauthorizedOperation, MalformedPolicyDocumentException
event.outcome6eq 6success
sourcetype5eq 5aws:cloudtrail, aws:asl
aws::userIdentity.type4eq 2, ne 2AWSService, AssumedRole
aws::eventSource3eq 3bedrock.amazonaws.com, rds.amazonaws.com, s3.amazonaws.com
failures3ge 35, 3
security_result.action3eq 3BLOCK, ALLOW
src_ip3is_not_null 3
Esql.cloud_region_count_distinct2ge 210
Esql.event_count2ge 210
Image2wildcard 2, starts_with 1./, ./*, /.*, /boot/, /boot/*

Top indicator values (303 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
data_stream.dataseteq
aws.cloudtrail
8141
event.outcomeeq
success
6251
aws::errorCodeeq
AccessDenied
419
Provider_Nameeq
ec2.amazonaws.com
319
Provider_Nameeq
s3.amazonaws.com
214
sourcetypeeq
aws:cloudtrail
359
Esql.cloud_region_count_distinctge
10
22
Esql.event_countge
10
28
EventTypein
GetAccountSummary
22
EventTypein
ListAccountAliases
22
Imagewildcard
/home/*/*
25
Provider_Namein
cloudtrail.amazonaws.com
22
Provider_Namein
dynamodb.amazonaws.com
22
Provider_Namein
ec2.amazonaws.com
22
Provider_Namein
iam.amazonaws.com
22
Provider_Namein
kms.amazonaws.com
22
Provider_Namein
lambda.amazonaws.com
22
Provider_Namein
rds.amazonaws.com
22
Provider_Namein
s3.amazonaws.com
22
Provider_Namein
sts.amazonaws.com
22
aws::userIdentity.typeeq
AssumedRole
212
aws::userIdentity.typene
AWSService
25
event.dataseteq
aws.cloudtrail
217
failuresge
5
22
process_namestarts_with
.
218
process_namestarts_with
lua
215
process_namestarts_with
perl
220
process_namestarts_with
php
214
process_namestarts_with
python
231
process_namestarts_with
ruby
221

Exclusions (33 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
AWSService
3
ClientIpcidr_match
10.0.0.0/8
1
ClientIpcidr_match
127.0.0.0/8
1
ClientIpcidr_match
169.254.0.0/16
1
ClientIpcidr_match
172.16.0.0/12
1
ClientIpcidr_match
192.168.0.0/16
1
ClientIpstarts_with
127.
1
ClientIpstarts_with
::
1
ClientIpstarts_with
fe80
1
Imagewildcard
/vscode/vscode-server/bin/linux-x64/*/node
1
TI_ipEntitycidr_match
10.0.0.0/8
1
TI_ipEntitycidr_match
127.0.0.0/8
1
TI_ipEntitycidr_match
169.254.0.0/16
1
TI_ipEntitycidr_match
172.16.0.0/12
1
TI_ipEntitycidr_match
192.168.0.0/16
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 21 rules

Splunk 5 rules

Kusto 7 rules

YARA-L 4 rules

Panther 3 rules