# T1526 - Cloud Service Discovery ## Descrição **T1526 - Cloud Service Discovery** descreve como adversários, após obter acesso inicial a um ambiente cloud, enumeram os serviços, recursos e configurações disponíveis. O objetivo é construir um mapa operacional da infraestrutura da vítima - identificando quais serviços estão ativos, quais ferramentas de segurança estão presentes, quais dados são acessíveis e quais caminhos de escalonamento existem. A enumeração pode ocorrer em qualquer provedor: **AWS**, **Microsoft Azure**, **Google Cloud Platform (GCP)** ou plataformas SaaS como o **Microsoft 365**. APIs como a Microsoft Graph API e o Azure Resource Manager permitem listar aplicações, grupos de gerenciamento, políticas e relacionamentos entre recursos - tudo acessível com uma credencial válida, mesmo sem privilégios administrativos. No **Brasil e na América Latina**, a adoção acelerada de cloud (especialmente Microsoft 365 e Azure) pelo setor financeiro, governo e saúde criou uma superfície de ataque significativa. Grupos como [[g1053-storm-0501|Storm-0501]] utilizam T1526 como etapa central de reconhecimento antes de ataques de ransomware - mapeando buckets S3, contas de armazenamento Azure e instâncias de banco de dados para identificar os dados mais valiosos a cifrar ou exfiltrar. Ferramentas abertas como **Pacu** (AWS) e **ROADTools** (Azure/Entra ID) permitem que atacantes com acesso mínimo produzam grafos completos de relacionamentos entre recursos, facilitando a descoberta de caminhos de escalonamento de privilégios que seriam invisíveis em uma análise manual. > [!danger] Risco para Ambientes Brasileiros > Organizações brasileiras com Entra ID (Azure AD) híbrido conectado a AD on-premises são particularmente vulneráveis. A enumeração de serviços cloud revela sincronizações entre ambientes, permitindo que o atacante planeje movimentos laterais que cruzam de cloud para on-premises - ou vice-versa. ## Attack Flow ```mermaid graph TB A([Credencial Válida<br/>Obtida]) --> B([Acesso ao Ambiente<br/>Cloud]) B --> C>service discovery:::highlight C --> D([Enumerar Serviços<br/>Ativos]) C --> E([Identificar Ferramentas<br/>de Segurança]) C --> F([Mapear Permissões<br/>e Funções IAM]) D --> G([Localizar Dados<br/>Valiosos]) E --> H([Evasão de Defesas<br/>T1562]) F --> I([Escalonamento<br/>de Privilégios]) G --> J([Exfiltração<br/>ou Ransomware]) H --> J I --> J classDef highlight fill:#e74c3c,color:#fff ``` ## Como Funciona **Passo 1 - Enumeração de serviços via API** Após obter uma credencial válida - sejá por phishing, credential stuffing ou roubo de token OAuth - o adversário utiliza as APIs nativas do provedor cloud para listar todos os serviços habilitados. No Azure, comandos como `az resource list` ou chamadas à Microsoft Graph API retornam todos os recursos associados à assinatura. No AWS, `aws sts get-caller-identity` confirma o contexto da credencial e `aws s3 ls` lista buckets acessíveis. Ferramentas como [[s1091-pacu|Pacu]] automatizam essa varredura com dezenas de módulos de descoberta em paralelo. **Passo 2 - Mapeamento de configurações e serviços de segurança** O adversário identifica quais controles defensivos estão ativos: AWS GuardDuty, Microsoft Defender for Cloud, GCP Security Command Center, Azure Sentinel. Com [[s0684-roadtools|ROADTools]] e [[s0677-aadinternals|AADInternals]], é possível extrair políticas de acesso condicional, configurações de MFA, grupos de segurança e aplicações registradas no Entra ID - incluindo service principals com permissões elevadas. Esse mapeamento direciona ações de [[t1562-001-disable-tools|Desabilitação de Ferramentas de Segurança]] e [[t1562-008-disable-or-modify-cloud-logs|Modificação de Logs de Cloud]]. **Passo 3 - Construção do grafo de ataque** Com os dados coletados, o adversário monta um grafo de relacionamentos: quais identidades têm acesso a quais recursos, quais service accounts têm permissões excessivas, quais buckets/blobs têm ACLs mal configuradas. O [[g1053-storm-0501|Storm-0501]] usa esse grafo para identificar o caminho de menor resistência até os dados críticos - muitas vezes um service principal esquecido com permissão de Owner, ou uma conta de serviço com acesso a storage accounts que contêm backups cifrados. ## Detecção ### Event IDs e Fontes de Log Relevantes | Fonte | Evento / Log | Descrição | |-------|-------------|-----------| | **AWS CloudTrail** | `ListBuckets`, `ListFunctions`, `DescribeInstances`, `GetCallerIdentity` | Chamadas de enumeração em sequência rápida de uma única identidade | | **Azure Monitor** | `Microsoft.Resources/subscriptions/resources/read` | Leitura em massa de recursos via Resource Manager | | **Microsoft Graph** | `ServicePrincipalSignIn`, `DirectoryAudit - List applications` | Enumeração de apps registrados e service principals | | **Entra ID Sign-in Logs** | Sign-ins de localização/IP incomum acessando Graph API | Uso de ferramentas como ROADTools gera padrão de acesso atípico | | **GCP Audit Logs** | `cloudresourcemanager.projects.list`, `serviceusage.services.list` | Listagem de projetos e serviços habilitados | | **Azure Activity Log** | `List Keys`, `List Secrets` (Key Vault) | Tentativa de acesso a secrets e credenciais armazenadas | ### Sigma Rule - Enumeração de Recursos Azure em Massa ```yaml title: Mass Azure Resource Enumeration via API id: 3f7a1b2e-8c4d-4f9a-b6e2-2a3b4c5d6e7f status: experimental description: > Detecta enumeração em massa de recursos Azure via Resource Manager API, padrão típico de ferramentas de cloud discovery como Stormspotter, ROADTools ou Pacu adaptado para Azure. Indica reconhecimento pós-comprometimento (T1526). author: RunkIntel daté: 2026-03-24 references: - https://attack.mitre.org/techniques/T1526 logsource: product: azure service: activitylogs detection: selection: operationName|startswith: - 'Microsoft.Resources/subscriptions/resourceGroups/read' - 'Microsoft.Resources/subscriptions/resources/read' - 'Microsoft.Authorization/roleAssignments/read' - 'Microsoft.Compute/virtualMachines/read' - 'Microsoft.Storage/storageAccounts/read' - 'microsoft.directory/applications/allProperties/read' timeframe: 5m condition: selection | count() by caller > 30 fields: - caller - operationName - resourceGroup - tenantId falsepositives: - Ferramentas legítimas de CSPM (Prisma Cloud, Defender CSPM) - Scripts de inventário corporativo autorizados - Pipelines CI/CD com permissões de leitura amplas level: medium tags: - attack.discovery - attack.t1526 - attack.cloud ``` ## Mitigação | Controle | Descrição | Aplicação para Organizações Brasileiras | |----------|-----------|----------------------------------------| | **Princípio do Menor Privilégio (IAM)** | Toda identidade - usuário, service principal, função Lambda - deve ter apenas as permissões estritamente necessárias | Revisar IAM Policies AWS e Azure RBAC; eliminar atribuições de Owner/Contributor desnecessárias; usar Azure PIM para acesso just-in-time | | **Monitoramento de Chamadas API** | Alertar sobre padrões de enumeração - muitas chamadas de leitura em curto intervalo por uma única identidade | AWS CloudTrail + Athena queries; Azure Monitor Workbooks; regras no Microsoft Sentinel ou AWS GuardDuty | | **Segmentação de Ambientes** | Isolar ambientes de produção, staging e dev em contas/assinaturas separadas | Evita que comprometimento de uma identidade de dev exponha toda a infraestrutura de produção | | **Proteção de Service Principals** | Auditar e rotacionar regularmente credenciais de service principals e app registrations | AADInternals e ROADTools são frequentemente usados contra service principals esquecidos com permissões excessivas | | **Conditional Access Policies** | Restringir acesso à Microsoft Graph API e Azure Resource Manager a IPs corporativos ou dispositivos gerenciados | Implementar políticas no Entra ID que bloqueiem chamadas API de localizações não autorizadas ou dispositivos não conformes | | **CSPM (Cloud Security Posture Management)** | Usar ferramentas como Microsoft Defender CSPM, AWS Security Hub ou Prisma Cloud para identificar recursos superprovisionados antes que o atacante os encontre | Muitas organizações brasileiras têm buckets S3 ou blobs Azure com ACLs excessivamente permissivas que só são descobertas após um incidente | ## Threat Actors e Software Associado ### Grupos que Utilizam esta Técnica **[[g1053-storm-0501|Storm-0501]]** - Grupo ransomware identificado pela Microsoft como operador ativo em ambientes híbridos Azure AD / on-premises. Utiliza T1526 sistematicamente para mapear toda a superfície de ataque cloud antes de distribuir ransomware. Documentado em ataques a setores de saúde, governo e manufatura. O grupo combina T1526 com [[t1538-cloud-service-dashboard|Cloud Service Dashboard]] para maximizar a cobertura do reconhecimento - usando tanto APIs quanto a interface gráfica do portal Azure. ### Ferramentas Associadas | Ferramenta | Tipo | Uso nesta Técnica | |-----------|------|-------------------| | [[s0677-aadinternals\|AADInternals]] | Ferramenta de ataque Azure/O365 | Enumera usuários, grupos, apps, políticas e configurações do Entra ID; obtém tokens de acesso | | [[s0684-roadtools\|ROADTools]] | Framework de auditoria Azure AD | Constrói banco de dados local com todos os objetos do Entra ID; gera grafo de relacionamentos | | [[s1091-pacu\|Pacu]] | Framework de ataque AWS | Mais de 35 módulos de enumeração AWS - IAM, S3, EC2, Lambda, CloudTrail, GuardDuty | > [!tip] Correlação de Técnicas > T1526 é frequentemente combinada com [[t1538-cloud-service-dashboard|T1538 - Cloud Service Dashboard]] (reconhecimento via interface gráfica) e precede [[t1562-008-disable-or-modify-cloud-logs|T1562.008 - Disable Cloud Logs]] (evasão após mapeamento) e [[t1530-data-from-cloud-storage|T1530 - Data from Cloud Storage Object]] (exfiltração de dados). --- *Fonte: [MITRE ATT&CK - T1526](https://attack.mitre.org/techniques/T1526)*