Skip to main content
T1580Discoverymedium difficulty

Cloud Infrastructure Discovery

Cloud Infrastructure Discovery (T1580) is an attacker mapping an IaaS tenant with its own APIs: DescribeInstances, ListBuckets, DescribeDBInstances and their Azure and GCP equivalents, run against stolen credentials to inventory compute, storage and database resources before deciding what to steal. The signal is not any single call, which looks like routine automation, but the burst and the caller.

Practice detecting Cloud Infrastructure Discovery on realistic SIEM alerts in SOCSimulator Operations.

SIEM

What is Cloud Infrastructure Discovery?

Cloud Infrastructure Discovery is documented as technique T1580 in MITRE ATT&CK® v19.1 under the Discovery tactic. Detection requires visibility into SIEM telemetry.

The attacker holds a working credential, an IAM access key, a Snowflake login, an assumed role, a leaked service-account JSON, and needs to know what it can reach before doing anything destructive or profitable with it. AWS answers that question with a small set of read-only APIs: DescribeInstances for EC2 fleets, DescribeDBInstances for RDS, ListBuckets for S3, ListFunctions for Lambda, ListRoles for IAM. None of these calls modify anything, none require special permissions beyond what most operational roles already carry, and each one individually looks exactly like the automation tooling a real DevOps team runs constantly.

What separates recon from routine operations is volume and caller identity, not the API name. A compromised CI/CD credential or a newly minted access key calling five or more distinct Describe/List/Get actions inside a ten-second window, especially across service boundaries (compute, storage, database, IAM) rather than one narrow area, is the pattern tools like Pacu, ScoutSuite, enumerate-iam.py and CloudFox automate on purpose: hit every enumeration endpoint fast, build an inventory, then decide where to go next. Azure and GCP mirror this with Microsoft.Resources read operations and cloudresourcemanager.projects.list respectively, so the same detection logic ports across providers with different field names.

Attackers frequently chain sts:GetCallerIdentity or its Azure/GCP equivalent immediately before the enumeration burst, since a stolen key's first job is confirming what account and permissions it landed in. That validation call, followed within seconds by a wide discovery sweep, is a stronger and more specific signal than either behavior alone, and it is exactly what an analyst should pivot on when triaging a burst alert.

Where Cloud Infrastructure Discovery fits in an attack

This technique sits right after initial access to the cloud control plane, whether that access came from a leaked long-term access key embedded in a public repository or CI pipeline, a phished console session, or a purchased credential from an infostealer log. A recurring pattern follows: keys exposed in build tooling or a public repository are immediately used to run high-volume Describe and List calls against the victim account, the reconnaissance step before the attacker commits to a specific objective.

What comes next depends on what the discovery sweep finds. A tenant rich in S3 buckets routes toward Cloud Storage Object Discovery (T1619) and bulk exfiltration; a tenant with exposed RDS snapshots routes toward data theft through snapshot sharing; a tenant with idle compute capacity routes toward cryptomining deployment. Stratus Red Team's aws.discovery.ec2-enumerate-from-instance atomic test, referenced by Elastic's detection rule, models the specific case of an attacker pivoting from a single compromised EC2 instance role to enumerate the rest of the account, the same recon-before-commit logic that shows up across ransomware, data-theft and cryptomining cloud intrusions alike.

Detection Strategies

The following detection strategies help SOC analysts identify Cloud Infrastructure Discovery activity. These methods apply across SIEM environments and can be implemented as detection rules, correlation queries, or behavioral analytics in your security platform.

SIEM detection

SPL
index=cloudtrail
  eventSource IN ("ec2.amazonaws.com","rds.amazonaws.com","s3.amazonaws.com","iam.amazonaws.com","lambda.amazonaws.com")
  (eventName="Describe*" OR eventName="List*" OR eventName="Get*")
  userAgent="aws-cli*"
| bin _time span=10s
| stats dc(eventName) as unique_calls values(eventName) as calls by userIdentity.arn, _time
| where unique_calls > 5
| table _time, userIdentity.arn, unique_calls, calls

Buckets CloudTrail events into 10-second windows and counts distinct Describe/List/Get calls per caller, mirroring Elastic's 'AWS Discovery API Calls via CLI from a Single Resource' rule (5 EQL), which flags any single ARN that crosses five unique discovery calls that fast.

Sigma
logsource:
  product: aws
  service: cloudtrail
detection:
  selection:
    eventSource: 's3.amazonaws.com'
    eventName: 'ListBuckets'
  filter:
    userIdentity.type: 'AssumedRole'
  condition: selection and not filter

Direct port of SigmaHQ's 'Potential Bucket Enumeration on AWS' rule, tagged attack.t1580: it catches ListBuckets calls from IAM users or the root account while excluding the AssumedRole calls that legitimate automation typically makes.

Simulated example generated by SOCSimulator Research
{"eventTime": "2026-07-16 02:41:07", "eventSource": "ec2.amazonaws.com", "eventName": "DescribeInstances", "userIdentity": {"type": "IAMUser", "arn": "arn:aws:iam::472819035621:user/svc-ci-deploy"}, "sourceIPAddress": "185.220.101.47", "userAgent": "aws-cli/2.15.30 Python/3.11.6"}
{"eventTime": "2026-07-16 02:41:09", "eventSource": "rds.amazonaws.com", "eventName": "DescribeDBInstances", "userIdentity": {"type": "IAMUser", "arn": "arn:aws:iam::472819035621:user/svc-ci-deploy"}, "sourceIPAddress": "185.220.101.47", "userAgent": "aws-cli/2.15.30 Python/3.11.6"}
{"eventTime": "2026-07-16 02:41:11", "eventSource": "s3.amazonaws.com", "eventName": "ListBuckets", "userIdentity": {"type": "IAMUser", "arn": "arn:aws:iam::472819035621:user/svc-ci-deploy"}, "sourceIPAddress": "185.220.101.47", "userAgent": "aws-cli/2.15.30 Python/3.11.6"}
{"eventTime": "2026-07-16 02:41:14", "eventSource": "iam.amazonaws.com", "eventName": "ListRoles", "userIdentity": {"type": "IAMUser", "arn": "arn:aws:iam::472819035621:user/svc-ci-deploy"}, "sourceIPAddress": "185.220.101.47", "userAgent": "aws-cli/2.15.30 Python/3.11.6"}

Tuning and false positives

The overwhelming majority of Describe/List/Get calls in any cloud account are legitimate automation: Terraform plan and apply cycles, AWS Config's continuous resource inventory, CSPM and vulnerability scanners like Prowler or Wiz, cost-management tooling, and CI/CD pipelines that check resource state before deploying. All of these will legitimately trip a naive rule that alerts on any burst of discovery calls, and at scale they will generate far more noise than genuine reconnaissance.

The fix is identity-based baselining rather than call-based filtering. Maintain an explicit allow-list of the ARNs, service principals, and service accounts your automation actually uses, and scope the burst-detection rule to exclude them; Elastic's own rule takes this approach by filtering out known AWS service identities and console sessions before counting. From there, weight new-terms detections heavily: a principal with no prior CloudTrail history running a discovery burst is far more likely to be a stolen key than an established Terraform service account doing its Tuesday-morning plan. Correlating with GetCallerIdentity immediately preceding the burst also cuts false positives, since routine automation rarely calls it first.

Example Alerts

These realistic alert examples show what Cloud Infrastructure Discovery looks like in your security tools. Use them to tune detection rules and train analysts to recognize true positives versus false positives in live environments.

MediumSIEM

Discovery API Burst from Single IAM Principal

arn:aws:iam::472819035621:user/svc-ci-deploy fired 14 distinct Describe/List/Get calls (DescribeInstances, DescribeDBInstances, ListBuckets, ListFunctions, ListRoles) across three regions within an 8-second window, using aws-cli/2.15 from an IP address never seen for this principal before.

LowSIEM

S3 ListBuckets Enumeration by IAM User Outside AssumedRole

The IAM user contractor-jsmith called s3.amazonaws.com ListBuckets nine times in two minutes from a VPN-exit IP in a country outside the account's normal access pattern, with no corresponding S3 console session in the same period.

HighSIEM

First-Seen Principal Running Wide Cloud Enumeration

A newly created access key for role prod-lambda-exec, issued four minutes earlier, called sts:GetCallerIdentity followed immediately by DescribeInstances, DescribeSnapshots, DescribeVolumes and ListBuckets, a reconnaissance sweep with no legitimate automation history behind it.

Responding to Cloud Infrastructure Discovery

When a discovery burst fires, the first question is whether the ARN or service account belongs to a documented automation workflow, and if so, whether the timing and source IP match its normal schedule. If the caller is unfamiliar or the source IP is a VPN exit node, a residential proxy range, or a region the account has never operated from, treat it as a live credential compromise rather than noise. Pull the key's creation date next: an access key issued minutes before the burst, or an assumed-role session with no prior activity, is close to conclusive.

Once compromise looks likely, revoke or rotate the credential immediately, since the enumeration itself does no direct damage but is the last cheap warning before the attacker acts on what it found. Check what the burst actually touched (which services, which regions) to scope what needs closer review: buckets it listed should be checked for subsequent GetObject or bulk-download activity, snapshots it described should be checked for sharing or copy operations to external accounts, and instances it enumerated should be checked for new security-group rules or SSM command execution. Escalate to IR if the same identity shows any follow-on write action within the same session, since that confirms the recon converted into an active intrusion rather than a scan that got interrupted.

Frequently Asked Questions

How do SOC analysts detect Cloud Infrastructure Discovery?
Detection centers on SIEM telemetry for the discovery phase of the attack. Baseline your automation identities (Terraform, AWS Config, CSPM scanners, CI/CD roles) first, then alert when a principal outside that set fires more than five distinct Describe*/List*/Get* calls against EC2, RDS, S3, IAM or Lambda within a 10-second window, the pattern Elastic's discovery-API-burst rule keys on. Watch CloudTrail eventSource s3.amazonaws.com with eventName ListBuckets from a userIdentity.type of IAMUser or Root rather than AssumedRole; SigmaHQ's bucket-enumeration rule treats this combination as the highest-signal variant.
What does a Cloud Infrastructure Discovery alert look like?
A representative SIEM detection is "Discovery API Burst from Single IAM Principal" (medium severity): arn:aws:iam::472819035621:user/svc-ci-deploy fired 14 distinct Describe/List/Get calls (DescribeInstances, DescribeDBInstances, ListBuckets, ListFunctions, ListRoles) across three regions within an 8-second window, using aws-cli/2.15 from an IP address never seen for this principal before.
Which tools detect Cloud Infrastructure Discovery, and how can I practice?
Cloud Infrastructure Discovery (T1580) is best surfaced with SIEM telemetry, which exposes the discovery signals described above. Practice detecting it on those exact consoles in SOCSimulator Operations, free.
Glossary

What is Lateral Movement? SOC Glossary

Lateral movement is the attack phase where adversaries expand access from an initial foothold to additional systems, usi…

Read more
Glossary

What is NDR? SOC Glossary

Network Detection and Response (NDR) is a security platform that passively monitors network traffic, using machine learn…

Read more
Glossary

What is Threat Hunting? SOC Glossary

Threat hunting is the proactive, human-led process of searching through security telemetry to find hidden threats that e…

Read more
Glossary

What is SIEM? SOC Glossary

Security Information and Event Management (SIEM) is a platform that aggregates, normalizes, and correlates log data from…

Read more
Career Path

Threat Hunter Career Guide: Salary & Skills

Threat Hunters do not wait for alerts. You develop hypotheses based on threat intelligence and adversary behavior models…

Read more
Career Path

SOC Analyst (Tier 2) Career Guide: Salary & Skills

Tier 2 SOC Analysts handle the investigations that Tier 1 escalates. You dig into multi-stage attacks, coordinate contai…

Read more
Tool

SIEM Training Console: SOCSimulator

The SIEM console in SOCSimulator replicates the workflow of enterprise platforms like Splunk Enterprise Security, Micros…

Read more
Comparison

SOCSimulator Vs. Letsdefend: Platform Comparison

SOCSimulator wins on operational realism. You get multi-tool shift simulation with SLA pressure, noise injection, and al…

Read more
Glossary

SOC Glossary: Security Operations Terminology

Complete glossary of Security Operations Center terminology for aspiring SOC analysts.

Read more
Feature

Shift Mode: Real-Time SOC Simulation

Practice alert triage under realistic time pressure with SLA timers and noise injection.

Read more
Feature

Operations: Guided Training Operations

Structured CTF-style investigation operations covering real-world attack scenarios.

Read more
Blog

SOCSimulator Blog: Security Training Insights

Articles on SOC analyst skills, detection engineering, and career development.

Read more