T1526 Cloud service discovery

How to detect an adversary listing the cloud services in your environment, using open-source telemetry from IaaS, identity, office suite and SaaS platforms, and how to prove the detection in a range.

On this page

How T1526 cloud service discovery exposes an attacker's map of your cloud

Once an adversary has a foothold, the first practical question is what the environment contains and what that access can reach. For a SOC lead, the cloud is often the largest part of that answer: IaaS accounts and subscriptions, identity provider tenants, office suite workloads and a long tail of SaaS applications, each with its own administrative surface. MITRE ATT&CK places this activity under the Discovery tactic, TA0007, which the framework describes as the adversary trying to figure out your environment. T1526 Cloud service discovery covers the part of that effort where the adversary identifies which cloud services are present and in use, so that later steps can be chosen with that knowledge. This page does not describe how the enumeration is performed. It focuses on the telemetry that reveals it and the decisions that determine whether you will see it.

T1526 is most useful to a defender when it is read by platform family. The ATT&CK technique is mapped across IaaS, Identity Provider, Office Suite and SaaS, and each family produces different logs with different owners. IaaS control-plane activity usually sits in the cloud provider's audit trail, identity activity sits in the identity provider's sign-in and directory logs, Office Suite activity sits in the suite's unified audit or admin logs, and SaaS activity depends on what each application exports. A detection that covers only one of these families leaves a map of the others unobserved. Before tuning any rule, confirm which of these logs are enabled, where they are retained, and whether your SOC receives them in near real time. Questions to put to each vendor include retention period, export options and whether administrative read operations are recorded at all.

This page targets MITRE ATT&CK Enterprise version 20.0. ATT&CK releases can rename, deprecate or revoke techniques and change detection guidance, so the detection mappings that follow should be recorded against that version in your rule library and reviewed when you move to a later release. The technique's sibling pages in this pillar cover other discovery behavior, including account and permission group discovery, which often appears alongside cloud service discovery in the same session. Treat T1526 as one signal among several in a discovery sequence rather than as a standalone alert, and decide in advance which combinations of identity, cloud and SaaS events should trigger an analyst review.

Which cloud telemetry reveals service enumeration and where it comes from

This table maps the three telemetry families used for T1526 detection to the audit logs that carry them and the open-source paths that bring those logs into Wazuh, Security Onion or a Sigma pipeline. Read each row as a source to inventory, then confirm field names and data component IDs against the ATT&CK version your team targets. The main takeaway is that most T1526 signal comes from control-plane audit records, so collection gaps usually sit in cloud logging configuration.

TelemetryPlatform audit sourceOpen-source collection pathConfirm before relying on it
Cloud Service EnumerationAWS CloudTrail management events for read-only describe and list callsWazuh AWS integration reading the CloudTrail bucket, with events forwarded to Security Onion for huntingWhich describe and list event names your account records and whether data events are enabled
User Account MetadataEntra ID or Okta directory audit and user read events, Google Workspace admin audit logsWazuh identity and Office 365 integrations, plus Sigma rules written against identity provider log sourcesWhether read-only user lookups are logged or only directory changes, by tenant tier
Logon Session CreationIdentity provider sign-in logs and cloud console session start eventsWazuh decoders for sign-in JSON, with Security Onion ingest through its supported collectorSession identifier, client IP and user agent field names for each provider
Enumeration from unexpected identitiesCloudTrail identity and access key fields, service principal sign-insSigma rules keyed to identity type and source network, converted to your SIEM backendField names for role sessions and service principals in each cloud platform
Office suite and SaaS admin readsMicrosoft 365 unified audit log and Google Workspace reportingWazuh Office 365 integration for management activity, with API pulls into Security Onion where supportedRetention period and license tier that include the read-level audit records you need
Collector healthLog delivery status, bucket read errors and checkpoint failuresWazuh integration status alerts and Security Onion ingest dashboardsAlert on silent sources so gaps do not look like quiet periods
ATT&CK data component mappingCloud Service Enumeration, User Account Metadata and Logon Session Creation as named data components in the enterprise-attack 20.0 bundleSigma and internal rule metadata that references data component IDs for the targeted versionConfirm the DC IDs in the 20.0 bundle, since ATT&CK v18 moved detections to DC IDs and analytics

Detection logic for cloud service discovery that SOC teams can tune

Cloud service discovery is noisy by nature, because inventory, posture and backup tooling enumerate the same services that an intruder would. The cards below describe four detection ideas in words, with the tuning levers and false positive sources that decide whether each one is usable in a SOC queue.

Breadth of listing calls

Flag a single identity that issues many distinct service or resource listing calls across several services inside a short window, compared with its own historical baseline. The signal is breadth, not volume: one identity listing one service repeatedly is usually a script, while the same identity touching many unrelated services is the pattern that matters for T1526 Cloud service discovery. Tune the window length, the count of distinct services, and an allow list for known inventory and CSPM service accounts. Check the identity's job first. Confirm the expected list of services for each automation account before setting thresholds.

Enumeration from unseen sources

Alert when listing activity comes from an identity, source address, or client application that has no prior record of performing enumeration against that tenant or account. Pair the identity with the source network range and the user agent field from the cloud audit log, so that a known administrator working from a new location is distinguished from a credential used from an unfamiliar host. Tune the lookback period and maintain a register of approved scanner and backup source addresses. Expect false positives during vendor onboarding and after laptop replacements.

Listing immediately after sign-in

Correlate a new sign-in or session creation with enumeration calls that begin within a few minutes of it, especially when the sign-in used an unfamiliar device, a new location, or a sign-in method the identity does not normally use. This pairing is more specific than either event alone. Tune the correlation window and exclude sign-ins from managed devices that run scheduled inventory jobs. Administrators logging in for routine work will also match, so review the sign-in risk score and MFA result alongside the listing burst.

Discovery bursts across platforms

Look for enumeration bursts that span more than one platform in the same window, such as an identity provider directory query followed by IaaS resource listing and then an office suite or SaaS admin listing. Single-platform bursts are common in ordinary operations, but a sequence that crosses identity, infrastructure and collaboration systems is harder to explain without an attack or an unusual project. Tune by documenting which platform combinations are legitimate for each team, and suppress known migration projects with a fixed end date. Backup jobs and CSPM scanners often touch many platforms, so keep them on an explicit allow list with their own owners recorded.

Known false positive sources

Several common operations produce the same telemetry as T1526 Cloud service discovery. Inventory tools, CSPM scanners, backup and disaster recovery jobs, and asset management connectors all enumerate services on a schedule. Administrators during onboarding or a tenant migration also generate broad listing activity for days. Before tuning, ask each owning team for its schedule, service accounts, source addresses and expected services, then record those in the allow list with a review date. Validate exclusions in the cyber range by replaying the scanner's normal behavior, so that suppressions do not hide real intrusions.

How to validate that the cloud discovery detection actually fires

This sequence proves, in a lab or private range against a non-production tenant, that activity mapped to T1526 Cloud Service Discovery produces alerts that reach the right people within a known time. It ends with a dated list of gaps that feeds the detection engineering backlog.

  1. Agree the validation scope in writing

    The detection owner, the cloud platform team and the security operations lead sign a short scope note before any activity runs. The note names the non-production tenant or subscription, the identity providers and SaaS applications in scope, the test accounts used, the time window, and who may stop the exercise. It also states that no production data, customer records or live credentials are involved. The step is done when all three parties have signed and the scope is stored with the detection record.

  2. Map each planned activity to ATT&CK

    Build a plan table that lists every activity the emulation will perform, the platform it targets (IaaS, identity provider, office suite or SaaS), and the ATT&CK ID it represents, using T1526 for the parent technique and the relevant sub-technique or related ID where one applies. Each row also names the expected telemetry, such as Cloud Service Enumeration, User Account Metadata or Logon Session Creation, and the data component the detection strategy references. The plan should target the ATT&CK version the team has documented for its detections, because technique definitions can change between releases. The step closes when a reviewer can trace every row to one detection and one data source.

  3. Confirm log ingestion and latency baseline

    Before any test activity, the platform team confirms that the cloud audit logs, identity provider sign-in and directory logs, and SaaS audit logs for the test tenant reach the SIEM, such as Wazuh or a Security Onion deployment. They record the ingestion path for each source and measure a baseline delay by generating a harmless marker event and timing its arrival. The baseline becomes the reference for the time-to-alert measurement in later steps. The step is complete when each in-scope source has a documented path and a recorded baseline delay.

  4. Run the scoped emulation in the range

    A tester runs the agreed activities from the plan, in the order recorded, from the test accounts and network locations listed in the scope note. The exercise uses lab tooling and a private range only, and the tester logs start and end times for each activity in a shared timeline. Observers in the detection team do not tune rules during the run, so the result reflects the current detection. The step is done when every planned row has a timestamped entry, including any activity that could not be executed and the reason.

  5. Check alert routing to the correct queue

    The security operations lead verifies that each expected alert is created, that it is tagged with the ATT&CK ID from the plan, and that it lands in the queue or case type assigned to that platform. Routing tests also confirm that notifications reach the on-call channel and that no alert is silently suppressed by an existing rule or exception. Any alert that appears in the wrong queue is logged as a routing defect, separate from a detection defect. The step closes when every expected alert has a confirmed destination or a logged defect.

  6. Record time to alert and fields present

    For each detection, the analyst records the time between the emulated activity and the alert, subtracts the baseline ingestion delay from the earlier step, and notes which fields appear in the alert, such as the acting identity, source address, platform, target service and result. Missing fields are recorded against the data component the detection strategy expects, so the team can see whether the gap is in collection or in parsing. The step produces a table with one row per detection and a completed field checklist. It is done when every row has a time value or an explicit reason for none.

  7. Log gaps into the detection backlog

    The detection engineer reviews the results with the operations lead and converts each gap into a backlog item with an owner, the affected ATT&CK ID, the platform, and the evidence from the run. Gap types include no alert, late alert, missing field, wrong queue and noisy alert. Items are ranked by the consequence of a missed detection in the client's environment, not by ease of fix. The step is complete when every gap has a ticket, and the next validation run is scheduled against the same plan to confirm each fix.

Why legitimate inventory activity makes cloud discovery hard to separate from attacks

Most cloud discovery alerts fire on activity that administrators, deployment pipelines and posture tools perform every day. A cloud administrator listing instances, a Terraform or other infrastructure-as-code run refreshing state, a CSPM scanner enumerating resources and an SaaS admin reviewing user lists can each produce enumeration events that look much like an intruder mapping the tenant. The detection design therefore has to start from who or what made the call, not from the API name alone. Before tuning any rule for T1526 Cloud service discovery, document every legitimate source of listing calls in each platform you monitor, including IaaS accounts, the identity provider, the office suite and key SaaS applications.

The first separator is identity type. Human administrators should authenticate through federated single sign-on with multifactor authentication, while automation should run under workload identities such as service principals, instance roles or application accounts with fixed, documented scopes. A listing call from a human identity at an unusual hour is a different signal from the same call made by the pipeline role that always runs at that hour. Next, compare the source network and the user agent or client application. Pipeline runners, CSPM vendors and admin workstations usually egress from known address ranges, so a workload identity that suddenly calls from a residential or unfamiliar address deserves review. Check whether each platform records the source address and client application in its audit logs, and confirm that scope with the vendor, because some SaaS audit trails omit one or both fields.

The second separator is context. Correlate enumeration events with approved change tickets, deployment records and scheduled jobs. A CSPM scan that runs every night at the same time from the same role is expected, and a baseline of its normal volume and resource types lets analysts ignore it while still alerting on new scope, new regions or new service families. Keep the baseline in version control alongside the rule set so that changes are reviewed. Finally, agree on an escalation path for events that match no ticket or schedule. Ask each platform owner which audit log categories are retained, for how long, and whether listing calls appear at the same detail level as write events, because a detection that depends on logs you do not actually receive will fail silently.

Mitigations that reduce what discovery can reveal

Discovery succeeds when an identity can see more than it needs to. The mitigations below narrow that visibility from several directions: who holds accounts, which network paths exist, what gets logged, how systems are configured, what traffic is inspected, and which services are switched on. Each one is mapped in ATT&CK to Discovery techniques, so each can be checked against T1526 Cloud service discovery in your own environment.

Limit account and role scope

User Account Management (M1018) restricts who can create, modify and grant roles in identity platforms and IaaS consoles. A discovering identity can only enumerate services its roles allow it to query, so over-broad read roles such as tenant-wide directory or project-wide inventory access directly widen what T1526 reveals. Review which accounts can list services across subscriptions, projects or tenants, and confirm that service accounts used by automation have no interactive or administrative reach they do not need. Ask your identity team for a current export of role assignments.

Segment cloud control planes

Network Segmentation (M1030) limits which hosts, subnets and management endpoints can reach cloud management APIs and identity services. For T1526, the question is whether a workstation or workload that should not manage cloud resources can still reach the APIs that enumerate them. Map management paths from admin networks, CI runners and developer segments, then confirm that egress rules and private endpoint configurations block unexpected callers. Verify these controls from the segments you intend to restrict, not only from the design document.

Enable and retain audit logs

Audit (M1047) is the mitigation that makes discovery visible at all. Control plane and identity audit logs should record list, describe and get operations across IaaS, identity provider and SaaS administration consoles, with retention long enough for hunts to look back. Confirm that these logs are enabled in every account, tenant and project, that they reach a central store, and that someone has tested a query for enumeration bursts from a single identity. Retention periods should be set against your own policy, so confirm the values with the platform owner.

Harden cloud host configuration

Operating System Configuration (M1028) covers the images and virtual machines that act as jump hosts, CI runners and management workstations. These hosts often hold cloud CLI profiles, cached tokens or instance metadata access, so they are a common source of discovery calls. Standardize builds, restrict which tools are installed on administrative hosts, and limit instance metadata access to the workloads that need it. Review the baseline with your platform team and record exceptions in writing.

Inspect and block suspicious API traffic

Network Intrusion Prevention (M1031) applies to traffic that crosses your network boundary, including outbound calls from workloads to cloud and SaaS endpoints. Signature and behavior rules can flag unusual enumeration patterns, such as a host calling many management endpoints in a short window. Note that much cloud API traffic is encrypted and reaches SaaS endpoints directly, so inspection coverage depends on your proxy, TLS handling and egress design. Confirm coverage with a test from a representative workload before relying on it.

Disable unused cloud features

Disable or Remove Feature or Program (M1042) reduces the number of services and management interfaces an identity can query. Unused IaaS regions, deprecated SaaS admin modules, legacy authentication methods and idle management tools each add surface that discovery can reach. Build an inventory of enabled services per account and tenant, retire those with no owner, and review them on a fixed cadence. Ask your cloud and SaaS administrators which features they can turn off without breaking business workflows.

Triage steps when a cloud discovery alert fires

Start by answering one question: is the identity that ran the enumeration a known, accountable principal? Resolve the identity to a named person or a registered workload, confirm its owner in your identity provider and HR or service catalog records, and check whether that owner expects activity from this account at this time. For cloud service discovery, the alert usually names a user, service principal or role that made many read-only list and describe calls across IaaS, identity and SaaS consoles in a short window. Record the principal, the source address, the client application and the tenant or account it acted in before anyone changes anything. Ask the owner directly through a channel you verify independently of the alert, not through a reply to an email that may have come from the same session.

Next, pull the sign-in and session history for that identity over the period before the alert, not just the minutes around it. Look for new sign-in locations, unfamiliar user agents, sign-ins that required a new device or MFA method, and session creation that does not match the usual pattern for the role. Then compare the services the identity touched with what its role legitimately needs. A developer account that lists IAM policies, directory objects and billing data across several accounts is a stronger signal than one that reads a single resource group it normally uses. If the evidence points to a compromised session, the decision is to contain: revoke the sign-in sessions and refresh tokens, require re-authentication, and rotate any access keys or client secrets the identity holds. If the evidence points to legitimate use, document the reason and move on. Confirm the decision with the cloud and identity owners before disabling a production workload identity, because a containment step can itself cause an outage.

Rehearsing cloud service discovery detection in a private cyber range

Build the IaaS tenant as an isolated project or subscription inside the range, with its own identity store, a small set of compute instances, storage buckets and a logging pipeline that forwards control plane events to the SIEM. The range should mirror the production logging configuration, not an idealized one, because gaps in audit logging are often the finding. The exercise injects enumeration of the control plane through a service principal or user session that is not normally used for that purpose, so the team can test whether the detection relies on the actor's identity, the API call pattern or both.

  • Topology: One tenant, two accounts (one administrative, one developer), one sandbox project, and the control plane audit log forwarded to Wazuh or a comparable collector.
  • Scripted injects: Ordered listing calls across services, followed by metadata reads on several resources, run at a pace that differs from normal operator behavior.
  • Benign noise: Scheduled inventory jobs, a configuration management tool running read-only checks and a developer listing resources after a deployment.
  • Good detection: An alert appears within the agreed window, names the calling identity and source address, and separates the scripted enumeration from the scheduled jobs.
  • Good response: A ticket is opened with the affected account, the containment decision (disable the session or keep it under watch) is recorded, and the post-exercise review checks whether the API call pattern is documented in the detection content.

Confirm with the cloud provider which control plane events are logged by default, and which require explicit configuration.

Questions SOC leads and detection engineers ask about T1526

How do I tell T1526 cloud service discovery apart from T1538 cloud service dashboard activity?

The two techniques look similar in logs because both involve an identity reaching cloud services, but they differ in intent and in what the activity touches. T1526 covers enumeration of which services exist in the environment, such as listing subscriptions, projects, workloads or enabled SaaS applications through API or management calls. T1538 covers a user or session opening a cloud service dashboard or console and browsing it. In practice, correlate Cloud Service Enumeration events with Logon Session Creation and User Account Authentication for the same identity within a short window, then check whether the pattern is many list or describe calls across services (closer to T1526) or interactive console sessions (closer to T1538). Confirm in your environment which event names your providers emit for each, since naming differs by platform and the mapping should be checked against the ATT&CK version you target.

Which logs should I confirm first on each cloud and SaaS platform?

Start with the audit trail that records control-plane and directory activity, because T1526 usually shows up as enumeration calls rather than as malware. For IaaS, confirm that management-plane API logging is enabled in every account, region and subscription, including the logs that record list and describe operations. For the identity provider, confirm sign-in and directory audit logs are forwarded and retained. For office suites and SaaS, confirm admin and unified audit logs are on, since some of them are off or limited by default and need an explicit setting. Check the forwarding path into your SIEM (for example Wazuh or a Security Onion pipeline) and test that a known benign list call appears there with the expected identity, source address and timestamp. Retention and completeness vary by provider and plan, so confirm the exact retention and log availability with each vendor before you write detection thresholds.

How should I handle naming differences across multiple cloud providers?

Normalize events into one schema before writing shared rules. Map each provider's operation name, such as a list or describe call, to a common field like enumeration action and service category, and keep the original provider field so analysts can pivot back to the raw event. Maintain the mapping as a versioned file in your detection repository, with one entry per provider and per log source, and review it whenever a provider changes its audit schema. Tag each rule with the ATT&CK version it was written against, because releases can rename or revoke techniques and detection strategies. Expect that some providers will not expose an equivalent event for every action, so document those gaps as known coverage holes rather than assuming parity. Validate the normalized rule by replaying a sample from each provider in a cyber range before it reaches production.

How often should I re-check T1526 mappings after ATT&CK releases?

Re-check mappings on each ATT&CK release, and also when a provider changes its logging or API behavior, because the second trigger is often the one that breaks a rule. Recent releases were v18 on October 28, 2025, v19 on April 28, 2026 and v20 on October 13, 2026, per MITRE's updates pages, and they can rename, deprecate or revoke techniques and move detections to detection strategies and analytics. Pull the STIX bundle for the version you target, diff the T1526 entry and its data component references, and update your rule metadata. Assign an owner for this review and record the date and version in your change log. The effort depends on how many platforms and rules you maintain, so ask any implementation partner to quote the review as a recurring task with a defined scope.

How can I test T1526 detections without affecting production?

Run the tests in a private cyber range or a separate, non-production account, project or tenant that mirrors your logging configuration. Use a dedicated test identity with least privilege, scope the test to a named time window, and agree the window and the stop conditions with the owners of the affected platforms before you start. Describe the expected enumeration activity as a written test plan, mapped to the ATT&CK version you target, and record for each step the expected log events, the expected detection and the expected alert. Check that alerts reach the right queue, that the enrichment fields are populated and that the case is closed with evidence. Keep the test identity and its logs separate from production data, and confirm with your provider's terms and your internal policy that the test activity is permitted. DeployOpen can plan and run this kind of exercise in a private cyber range as a fixed-scope engagement with written deliverables.

What does it cost to build and maintain T1526 detection, and what drives it?

The cost has four main parts: log source configuration across each cloud, identity and SaaS platform, normalization and rule engineering in your SIEM, testing in a range, and the recurring review after ATT&CK and provider changes. Who is paid depends on whether your staff do the work or an implementation partner does it under a written scope. One-time costs include logging setup, schema mapping and the first test plan. Recurring costs include rule upkeep, log source health checks, retention storage and periodic exercises. Costs rise with the number of accounts, regions, SaaS tenants and log sources, and with the amount of cross-platform correlation required. No vendor price is given here, so ask any provider or partner for a quote that separates one-time setup, recurring operation and the cost of storage, and that states the scope of platforms and rules included.

Can my team build T1526 detection in-house, or do we need an outside partner?

Many SOC teams can build and run this detection in-house if they already operate a SIEM, own cloud audit logging and have engineers who read provider APIs. The work becomes harder when you run several clouds and SaaS tenants, when logging is inconsistent across accounts, or when no one owns the ATT&CK review cycle. Assess this honestly by listing your current log sources per platform, the number of people who can write and test rules, and whether you have a non-production range for testing. An outside partner is useful for fixed-scope work such as logging configuration, normalization, range-based validation and documentation, and for ongoing testing under a retainer. Make the division of responsibility explicit in writing so that ownership of rules, evidence and alerts stays with your team.

How DeployOpen builds cloud discovery detections and range exercises

DeployOpen starts every cloud discovery detection engagement with a written scope that names the cloud and identity platforms in use, such as the IaaS accounts, the identity provider tenant, and the office suite or SaaS applications that record enumeration activity. The scope also states which telemetry sources the client can actually forward, for example cloud service enumeration logs, user account metadata and logon session creation records, and which ATT&CK version the detection mapping will target. Because ATT&CK releases can rename or deprecate content, the mapping is pinned to a named version, and the client confirms in writing which version their detection team will maintain. Quotes follow from this written scope, so the reader should expect the platform list, log sources and deliverables to be stated before any work begins.

Detection content is then built as open-source rules and pipeline configuration that the client's own team can read, run and change. For T1526, that typically means rules for Wazuh, Sigma or Security Onion that flag unusual volumes of list and describe calls from a single identity, enumeration from service accounts that normally perform no discovery, or first-time access to administrative consoles from unfamiliar sessions. Each rule is written against the stated ATT&CK version, documented with its data source assumptions, and tested against sample events from the client's own tenants where the client permits. Where a required log source is not enabled, the handover notes say so plainly and name the setting the client must confirm with its cloud or identity provider.

DeployOpen then runs purple team exercises in a private cyber range that mirrors the client's cloud and identity configuration, so that the detection is rehearsed before it is trusted in production. The exercise records which discovery actions were visible, which were missed, and how long the response workflow took to reach a decision, with the results kept as evidence. The handover includes tuning notes covering expected false positives from automation and backup tooling, threshold rationale, and a list of open items for the client's detection team. Those artifacts can also support compliance readiness work, although independent auditors and certification bodies, not DeployOpen, decide whether any control is met.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.