> [!warning] Aviso Importante > Este playbook é um ponto de partida. Deve ser revisado, testado e adaptado ao ambiente da sua organização. Não substitui um plano formal de Incident Response. Queries e comandos devem ser válidados em ambiente de homologação antes do uso em produção. Itens marcados com `# [VALIDAR NO SEU AMBIENTE]` exigem ajuste obrigatório antes do uso operacional. **Especial aténção:** os três grandes provedores (AWS, Azure, GCP) possuem APIs e ferramentas distintas — adapte cada etapa ao(s) provedor(es) em uso. ## Visão Geral O comprometimento de conta cloud é um dos vetores de incidente de maior impacto e crescimento mais rápido da atualidade. Diferente de um ataque convencional a endpoints, o atacante não precisa instalar malware — basta obter credenciais ou tokens válidos para mover-se lateralmente em toda a infraestrutura provisionada. Os três grandes provedores — AWS, Azure e GCP — possuem superfícies de ataque distintas, mas padrões de comprometimento convergentes. **Por que este cenário é crítico para organizações brasileiras:** - A **região AWS São Paulo (sa-east-1)** concentra a maior parte das cargas de trabalho cloud nativas do Brasil, tornando-a alvo prioritário para atores com motivação financeira e de espionagem - O modelo de **responsabilidade compartilhada** cria lacunas: o provedor protege a infraestrutura, mas a organização é responsável pela gestão de identidade, configuração de serviços e dados armazenados - Ambientes **multi-cloud** (AWS + Azure + GCP simultâneos) multiplicam a superfície de ataque e dificultam visibilidade centralizada - **Cryptojacking** - uso abusivo de instâncias EC2/Azure VMs/Compute Engine para mineração de criptomoedas - é a consequência imediata mais comum e pode gerar faturas de dezenas de milhares de reais em horas - **Exfiltração de dados via S3/Blob/GCS** pode violar obrigações da [[lgpd]] se envolver dados pessoais, exigindo notificação à ANPD em até 72 horas **Atores relevantes:** [[g1015-scattered-spider]] é especialista em engenharia social para acesso a ambientes cloud corporativos, frequentemente comprometendo administradores de identidade via help desk. [[g0016-apt29]] utiliza tokens OAuth e aplicações registradas para persistência silenciosa em Microsoft 365 e Azure AD. Ambos exploram [[t1078-004-cloud-accounts|T1078.004 — Cloud Accounts]] como técnica central. **Notas relacionadas:** [[t1537-transfer-data-to-cloud-account|T1537 — Transfer Data to Cloud Account]] · [[t1580-cloud-infrastructure-discovery|T1580 — Cloud Infrastructure Discovery]] · [[t1578-modify-cloud-compute-infrastructure|T1578 — Modify Cloud Compute Infrastructure]] · [[t1098-account-manipulation|T1098 — Account Manipulation]] · [[t1528-steal-application-access-token|T1528 — Steal Application Access Token]] · [[t1110-brute-force|T1110 — Brute Force]] --- ## Fluxo de Resposta ```mermaid graph TB A([🚨 Alerta: Atividade<br/>Anômala em Conta Cloud]) --> B{Confirmar<br/>Comprometimento} B -->|Evidências claras| C[DECLARAR INCIDENTE P1<br/>Notificar IR Lead + CISO] B -->|Incerto| D[Análise Rápida<br/>CloudTrail / Activity Log<br/>15 minutos] D --> C C --> E{Acesso<br/>ainda ativo?} E -->|Sim| F[Revogar Sessões<br/>e Tokens Imediato] E -->|Não/Desconhecido| G[Monitorar e<br/>Coletar Evidências] F --> H[CONTENÇÃO] G --> H H --> H1[Desabilitar Usuário/<br/>Service Account IAM] H1 --> H2[Revogar Access Keys<br/>e Tokens de API] H2 --> H3[Aplicar SCP / Policy<br/>de Quarentena no IAM] H3 --> H4[Isolar Recursos<br/>Comprometidos — VPC/VNET] H4 --> I[COLETA FORENSE] I --> I1[Exportar Logs de Auditoria<br/>CloudTrail / Activity Log] I1 --> I2[Preservar Snapshots<br/>de VMs/Volumes] I2 --> I3[Documentar Recursos<br/>Criados pelo Atacante] I3 --> J[ERRADICAÇÃO] J --> J1[Remover IAM Roles/<br/>Users Não Autorizados] J1 --> J2[Revogar OAuth Apps<br/>e Service Principals] J2 --> J3[Excluir Recursos<br/>Criados pelo Atacante] J3 --> K[RECUPERAÇÃO] K --> K1[Rebuild via IaC<br/>Terraform / CloudFormation] K1 --> K2[Enforçar MFA e<br/>Policies Mínimas] K2 --> K3[Monitoramento<br/>Intensivo 30 dias] K3 --> L([✅ Incidente Encerrado]) style A fill:#ff4444,color:#fff style C fill:#ff6600,color:#fff style L fill:#00aa44,color:#fff style H fill:#ffaa00,color:#000 style J fill:#0066cc,color:#fff style K fill:#006633,color:#fff ``` --- ## Diagrama de Comúnicação ```mermaid sequenceDiagram participant SOC as SOC Analyst participant IR as IR Lead participant CISO as CISO participant Cloud as Cloud/DevOps Team participant Legal as Jurídico/DPO participant Exec as Executivos participant ANPD as ANPD / CERT.br SOC->>IR: T+0min: Alerta confirmado — conta cloud comprometida IR->>Cloud: T+5min: Revogar sessões e tokens críticos IR->>CISO: T+10min: Declaração de incidente P1 — escopo inicial Cloud->>IR: T+15min: Confirmação de ações de contenção imediata CISO->>Exec: T+20min: Briefing — impacto potencial, ações em curso IR->>Legal: T+30min: Dados pessoais/sensíveis afetados? Avaliação LGPD Note over IR,Legal: Canal out-of-band (Signal/telefone)<br/>e-mail corporativo pode estar comprometido Legal->>CISO: T+1h: Parecer sobre obrigações regulatórias IR->>Cloud: T+2h: Auditoria completa de recursos criados pelo atacante IR->>CISO: T+4h: Relatório de contenção — escopo confirmado CISO->>Exec: T+6h: Updaté — escopo definitivo, timeline de recuperação Legal->>ANPD: T+72h: Notificação (se dados pessoais confirmadamente acessados) IR->>Exec: T+72h: Relatório preliminar de post-mortem ``` --- ## Indicadores de Comprometimento > [!danger] Detectar o comprometimento ANTES da exfiltração ou provisionamento abusivo é o objetivo central. Em ambientes cloud, o atacante pode persistir silenciosamente por semanas usando credenciais válidas antes de executar o impacto. ### Fase 1 - Acesso Inicial Os vetores mais comuns de comprometimento de conta cloud: 1. **Roubo de tokens STS/OAuth** - tokens de curta duração obtidos via phishing ou malware infostealer ([[t1528-steal-application-access-token|T1528]]) 2. **Credenciais expostas em repositórios** - AWS Access Keys ou service account JSON commitados acidentalmente no GitHub/GitLab 3. **Phishing de credenciais** SSO/Entra ID com proxy reverso (Evilginx, Modlishka) para bypass de MFA 4. **Engenharia social no help desk** - técnica favorita do [[g1015-scattered-spider]]: ligar para o suporte de TI fingindo ser usuário e solicitar reset de MFA 5. **Brute force em APIs de gerenciamento** - ataques contra endpoints de autenticação não protegidos por MFA ([[t1110-brute-force|T1110]]) 6. **Instance Metadata Service (IMDS)** - exploração de SSRF em aplicações web para roubar credenciais do metadata endpoint `169.254.169.254` **Indicadores de acesso inicial — AWS CloudTrail:** ``` - ConsoleLogin com MFAUsed=No para usuário com acesso privilegiado - AssumeRoleWithWebIdentity de IP geográfico atípico - GetCallerIdentity de IP fora do baseline histórico - Múltiplas falhas de autenticação (event: ConsoleLoginFailure) seguidas de sucesso - Acesso ao endpoint /latest/meta-data/iam/security-credentials/ em logs ALB/WAF ``` **Indicadores de acesso inicial — Azure:** ``` - Sign-in com UserAgent incomum (Postman, curl, Burp) para conta de alto privilégio - Sign-in de país não listado em Conditional Access Policy - Uso de token com AudienceId = management.azure.com fora do baseline - MFA Fatigue: múltiplos MFA prompts em curto período (push bombing) ``` ### Fase 2 - Persistência Após o acesso inicial, o atacante estabelece persistência para sobreviver à rotação de credenciais: | Técnica | AWS | Azure/GCP | |---------|-----|-----------| | Novo usuário IAM com Access Key | `CreateUser` + `CreateAccessKey` | New service principal + client secret | | Backdoor em Lambda/Azure Functions | `UpdateFunctionCode` | `Updaté function app` | | Federation trust maliciosa | `CreateOpenIDConnectProvider` | `Add federation identity` no Entra ID | | Role com trust policy ampla | `CreateRole` com `Principal: *` | `New-AzRoleAssignment` Owner scope | | Snapshot compartilhado externamente | `ModifySnapshotAttribute` Public | - | **Sinais de persistência — CloudTrail:** ``` - CreateUser fora do processo padrão de provisionamento - AttachUserPolicy com AdministratorAccess - CreateLoginProfile em usuário de serviço (não deveria ter console login) - PutRolePolicy com permissões amplas após período de atividade suspeita - CreateOpenIDConnectProvider (federation maliciosa) ``` ### Fase 3 - Impacto | Tipo de Impacto | Indicadores | Ferramentas | |----------------|-------------|-------------| | **Cryptojacking** | RunInstances em massa, altos custos súbitos, instâncias g4/p3 (GPU) | AWS Cost Anomaly, Azure Cost Alerts | | **Exfiltração via S3** | GetObject em volume anômalo, PutBucketAcl Public, novas presigned URLs em massa | S3 Server Access Logs, Macie | | **Exfiltração via Blob/GCS** | Leitura massiva fora do baseline, novo SAS token gerado, ACL alterada para Public | Azure Monitor, GCP Audit Logs | | **Snapshot sharing** | ModifySnapshotAttribute com UserId externo, CreateVolume de snapshot de terceiro | CloudTrail, AWS Config | | **Movimentação on-prem** | Acesso a serviços conectados via VPN/Direct Connect/ExpressRoute | VPC Flow Logs, NSG Flow Logs | | **Destruição** | DeleteBucket, DeleteVolume, TerminateInstances em massa | AWS CloudTrail, Azure Activity Log | --- ## Ferramentas Recomendadas ### Nativas dos Provedores | Ferramenta | Provedor | Uso Principal | |------------|----------|--------------| | **AWS GuardDuty** | AWS | Detecção de ameaças via ML - IAM anomalias, reconhecimento, cryptomining | | **AWS Security Hub** | AWS | Agregação de findings de GuardDuty, Config, Inspector, Macie | | **AWS CloudTrail** | AWS | Log de auditoria de todas as chamadas de API - obrigatório para IR | | **AWS IAM Access Analyzer** | AWS | Identifica recursos com acesso público ou cross-account inesperado | | **Amazon Macie** | AWS | Detecta dados sensíveis (PII, credenciais) em buckets S3 | | **Microsoft Defender for Cloud** | Azure | CSPM + CWPP - postura de segurança e proteção de workloads | | **Azure AD Identity Protection** | Azure | Detecção de sign-ins de risco, MFA anomalias, credential spray | | **Azure Activity Log** | Azure | Log de operações no plano de controle - equivalente ao CloudTrail | | **Azure Entra ID Sign-in Logs** | Azure | Logs de autenticação - análise de MFA, location, device compliance | | **GCP Security Command Center** | GCP | Findings de segurança centralizados - IAM anomalias, exposed services | | **GCP Cloud Audit Logs** | GCP | Admin Activity + Data Access logs - equivalente ao CloudTrail | ### Terceiros e Open Source | Ferramenta | Uso | Instalação | |------------|-----|-----------| | **Prowler** | Auditoria de postura AWS - CIS Benchmark, LGPD, controles IR | `pip install prowler && prowler aws` | | **ScoutSuite** | Auditoria multi-cloud (AWS, Azure, GCP) - mapeamento de configurações expostas | `pip install scoutsuite && scout aws` | | **Cartography** | Grafo de relacionamento de recursos IAM - Neo4j backend | `pip install cartography` | | **CloudMapper** | Visualização de rede e ACLs AWS - identifica exposições | `pip install cloudmapper` | | **Pacu** | Framework de pentest AWS - simular movimento lateral para defesa | `git clone https://github.com/RhinoSecurityLabs/pacu` | | **Stratus Red Team** | Simulação de TTPs cloud (AWS/Azure/GCP) para válidar detecções | `brew install datadog/stratus-red-team/stratus-red-team` | | **CloudFox** | Enumeração de privilege escalation paths em AWS | `go install github.com/BishopFox/cloudfox@latest` | | **MISP** | Compartilhar IoCs - IPs, domínios, hashes associados a campanhas cloud | - | --- ## Queries de Detecção ### KQL - Microsoft Sentinel - Login de IP de Alto Risco ```kql // [VALIDAR NO SEU AMBIENTE] — Ajustar threshold de RiskLevelDuringSignIn SigninLogs | where TimeGenerated > ago(24h) | where RiskLevelDuringSignIn in ("high", "medium") or RiskState == "atRisk" | where AppDisplayName has_any ("Azure Portal", "Microsoft Azure Management", "Azure Active Directory") | project TimeGenerated, UserPrincipalName, IPAddress, Location, RiskLevelDuringSignIn, RiskState, AppDisplayName, DeviceDetail, ConditionalAccessStatus | order by TimeGenerated desc ``` ### KQL - Microsoft Sentinel - Novo Service Principal com Permissões Elevadas ```kql AuditLogs | where TimeGenerated > ago(7d) | where OperationName has_any ( "Add service principal", "Add app role assignment to service principal", "Add member to role" ) | where TargetResources has_any ("Global Administrator", "Privileged Role Administrator", "Owner") | extend InitiatedByUser = tostring(InitiatedBy.user.userPrincipalName) | extend TargetObject = tostring(TargetResources[0].displayName) | project TimeGenerated, OperationName, InitiatedByUser, TargetObject, Result | order by TimeGenerated desc ``` ### KQL - Microsoft Sentinel - MFA Fatigue (Push Bombing) ```kql SigninLogs | where TimeGenerated > ago(2h) | where AuthenticationRequirement == "multiFactorAuthentication" | where Status.failureReason == "MFA denied; user did not respond to mobile app notification" | summarize MFADenials = count(), Locations = make_set(Location) by UserPrincipalName, bin(TimeGenerated, 15m) | where MFADenials >= 5 | order by MFADenials desc ``` ### CloudWatch Insights - AWS - Atividade IAM Anômala ``` # [VALIDAR NO SEU AMBIENTE] - Rodar em log group: /aws/cloudtrail fields @timestamp, eventSource, eventName, userIdentity.arn, sourceIPAddress, userIdentity.sessionContext.sessionIssuer.userName | filter eventSource = "iam.amazonaws.com" and eventName in [ "CreateUser", "CreateAccessKey", "AttachUserPolicy", "AttachRolePolicy", "CreateLoginProfile", "CreateRole", "PutUserPolicy", "PutRolePolicy", "CreateOpenIDConnectProvider" ] | stats count(*) as ActionCount by userIdentity.arn, eventName, sourceIPAddress | sort ActionCount desc | limit 50 ``` ### CloudWatch Insights - AWS - Tentativas de Exfiltração via S3 ``` # [VALIDAR NO SEU AMBIENTE] - Rodar em log group: /aws/cloudtrail fields @timestamp, eventName, requestParameters.bucketName, userIdentity.arn, sourceIPAddress, requestParameters.key | filter eventSource = "s3.amazonaws.com" and eventName in ["GetObject", "PutBucketAcl", "PutBucketPolicy", "PutObjectAcl", "CreatePresignedUrl"] | stats count(*) as Requests, sum(requestParameters.contentLength) as BytesTransferred by userIdentity.arn, sourceIPAddress, requestParameters.bucketName | where Requests > 500 | sort Requests desc ``` ### CloudWatch Insights - AWS - Instâncias EC2 para Cryptomining ``` # [VALIDAR NO SEU AMBIENTE] - Alertar em instâncias GPU (p3, g4, g5, p4) fields @timestamp, eventName, requestParameters.instanceType, userIdentity.arn, sourceIPAddress, awsRegion | filter eventSource = "ec2.amazonaws.com" and eventName = "RunInstances" and (requestParameters.instanceType like "p3" or requestParameters.instanceType like "g4" or requestParameters.instanceType like "g5" or requestParameters.instanceType like "p4") | stats count(*) as InstanceCount by userIdentity.arn, awsRegion, requestParameters.instanceType | sort InstanceCount desc ``` ### SPL - Splunk com CloudTrail (AWS) - Reconhecimento de Infraestrutura ```spl index=aws sourcetype=aws:cloudtrail eventName IN ( "DescribeInstances", "ListBuckets", "DescribeSecurityGroups", "GetAccountSummary", "ListRoles", "ListUsers", "ListPolicies", "DescribeVpcs", "DescribeSubnets", "ListFunctions" ) | bucket _time span=5m | stats count AS api_calls dc(eventName) AS unique_apis BY _time, userIdentity.arn, sourceIPAddress | where api_calls > 50 AND unique_apis > 5 | sort -api_calls ``` ### SPL - Splunk - Detecção de Snapshot Público (AWS) ```spl index=aws sourcetype=aws:cloudtrail eventName="ModifySnapshotAttribute" | rex field=requestParameters "(?<snapshot_id>snap-[0-9a-f]+)" | eval is_public=if(searchmatch("createVolumePermission.*groups.*all"), "YES", "NO") | where is_public="YES" | table _time, userIdentity.arn, sourceIPAddress, snapshot_id, requestParameters | sort -_time ``` --- ## Contenção > [!danger] Execute na ordem exata — revogar sessões antes de desabilitar contas evita que o atacante perceba a detecção e destrua evidências. ### Checklist de Contenção Imediata - [ ] **T+0** - Confirmar comprometimento via GuardDuty / Defender for Cloud / GCP SCC - [ ] **T+5min** - Declarar incidente P1, acionar IR Lead, CISO e Cloud/DevOps Team - [ ] **T+10min** - **AWS:** `aws iam updaté-access-key --status Inactive --access-key-id <KEY>` - [ ] **T+10min** - **Azure:** Revogar sessões no Entra ID: `Revoke-AzureADUserAllRefreshToken -ObjectId <ID>` - [ ] **T+10min** - **GCP:** `gcloud iam service-accounts disable <email>` + revogar tokens OAuth - [ ] **T+15min** - **AWS:** Aplicar inline policy de quarentena na conta IAM comprometida: ```json { "Version": "2012-10-17", "Statement": [{ "Effect": "Deny", "Action": "*", "Resource": "*" }] } ``` - [ ] **T+15min** - **Azure:** Bloquear sign-in do usuário: `Updaté-MgUser -UserId <ID> -AccountEnabled:$false` - [ ] **T+20min** - Identificar e documentar TODOS os recursos criados após o comprometimento inicial - [ ] **T+25min** - Isolar VMs/instâncias em Security Group / NSG sem regras de saída - [ ] **T+30min** - Revogar todas as presigned URLs ativas (AWS S3: `PutBucketPolicy` bloqueando acesso externo) - [ ] **T+35min** - Bloquear ACLs públicas em buckets S3 / Storage Accounts / GCS Buckets afetados - [ ] **T+40min** - **AWS:** Desabilitar IAM Console login e forçar rotação de MFA - [ ] **T+45min** - Exportar e preservar logs de auditoria em bucket/container separado e imutável - [ ] **T+1h** - Verificar se há outros access keys ativos criados pelo atacante em contas laterais - [ ] **T+1h** - Acionar jurídico/DPO para avaliação LGPD (dados pessoais acessados?) - [ ] **T+2h** - Relatório de contenção: recursos afetados, ações tomadas, escopo estimado ### Comandos de Contenção Rápida **AWS — Revogar todas as sessões ativas de um usuário IAM:** ```bash # [VALIDAR NO SEU AMBIENTE] # Attach política de negação imediata aws iam put-user-policy \ --user-name <USUARIO_COMPROMETIDO> \ --policy-name QUARANTINE_DENY_ALL \ --policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Deny","Action":"*","Resource":"*"}]}' # Desativar todos os access keys do usuário for key in $(aws iam list-access-keys --user-name <USUARIO> \ --query 'AccessKeyMetadata[*].AccessKeyId' --output text); do aws iam updaté-access-key --access-key-id $key --status Inactive --user-name <USUARIO> echo "Chave $key desativada" done ``` **Azure — Revogar sessões e bloquear usuário:** ```powershell # [VALIDAR NO SEU AMBIENTE] - Requer módulo Microsoft.Graph Connect-MgGraph -Scopes "User.ReadWrite.All", "Directory.ReadWrite.All" # Revogar todos os tokens de refresh Invoke-MgInválidateUserRefreshToken -UserId "<UPN_OU_OBJECT_ID>" # Bloquear sign-in imediatamente Updaté-MgUser -UserId "<UPN_OU_OBJECT_ID>" -AccountEnabled:$false # Listar service principals registrados pelo usuário Get-MgUserAppRoleAssignment -UserId "<UPN_OU_OBJECT_ID>" ``` **GCP — Revogar acesso de service account:** ```bash # [VALIDAR NO SEU AMBIENTE] # Desabilitar service account gcloud iam service-accounts disable <SA_EMAIL> --project=<PROJECT_ID> # Remover todas as chaves da service account for key in $(gcloud iam service-accounts keys list \ --iam-account=<SA_EMAIL> --format="value(name)"); do gcloud iam service-accounts keys delete $key \ --iam-account=<SA_EMAIL> --quiet done ``` --- ## Erradicação - [ ] Auditar **todos** os usuários IAM / service principals criados após a data do comprometimento inicial - [ ] Buscar roles com `AssumeRolePolicyDocument` contendo `Principal: "*"` ou trusts cross-account desconhecidos - [ ] Identificar e revogar todos os OAuth apps / Enterprise Applications registrados pelo atacante no Azure Entra ID - [ ] Verificar Lambda functions (AWS), Azure Functions e GCP Cloud Functions para código malicioso injetado - [ ] Auditar CloudFormation stacks / ARM templates / Terraform state para recursos não autorizados - [ ] Excluir instâncias EC2/VMs criadas pelo atacante - **após preservar snapshots para forense** - [ ] Remover AMIs, snapshots e imagens de disco compartilhadas externamente - [ ] Revogar e regenerar todas as credenciais de serviços integrados que usavam as contas comprometidas - [ ] Auditar VPC Peerings, Transit Gateway attachments e ExpressRoute/Direct Connect para conexões externas adicionadas - [ ] Verificar EventBridge rules / Azure Event Grid / GCP Pub/Sub para subscriptions maliciosas que mantêm persistência - [ ] Confirmar que nenhuma instância de cryptominer está ainda ativa - verificar via AWS Cost Explorer pico de uso - [ ] Executar Prowler ou ScoutSuite completo para identificar configurações remanescentes que abrem superfície --- ## Recuperação - [ ] Planejar rebuild de todos os recursos afetados via **Infrastructure as Code** (Terraform, CloudFormation, Pulumi) - nunca recriar manualmente - [ ] Restaurar dados de backups imutáveis verificados - S3 Object Lock (WORM), Azure Backup, GCP Snapshots com integridade válidada - [ ] Enforçar **MFA obrigatório** para todos os usuários com acesso ao console cloud - sem exceções - [ ] Implementar **SCPs (AWS) / Azure Policy / GCP Organization Policy** para prevenir reincidência: - Bloquear criação de access keys para usuários não autorizados - Exigir MFA para ações destrutivas (DeleteBucket, TerminateInstances) - Restringir regiões permitidas (ex: apenas sa-east-1 para workloads brasileiros) - [ ] Habilitar **AWS GuardDuty** em todas as contas e regiões (muitas organizações deixam regiões secundárias sem cobertura) - [ ] Configurar alertas de custo para anomalias > 20% do baseline (detecta cryptomining em horas) - [ ] Implementar **Least Privilege IAM**: auditar e remover permissões não utilizadas com IAM Access Analyzer - [ ] Habilitar **S3 Block Public Access** em nível de conta (não apenas por bucket) - [ ] Implementar **CloudTrail com integridade de logs** ativada e destino em conta separada de segurança (Log Archive Account) - [ ] Configurar monitoramento intensivo 30 dias: alertas para qualquer operação IAM, novo recurso, ou acesso cross-region - [ ] Documentar todas as credenciais rotacionadas e confirmar que sistemas dependentes foram atualizados --- ## Contexto LATAM/Brasil > [!info] Relevância Regional > O Brasil é o maior mercado cloud da América Latina e concentra riscos regulatórios e operacionais específicos que impactam diretamente a resposta a incidentes. **AWS São Paulo (sa-east-1):** A região brasileira da AWS é a principal rota de migração cloud para empresas nacionais. Isso a torna alvo para atores que buscam dados de clientes de setores regulados (financeiro, saúde, governo). Incidentes de cryptomining na região já geraram faturas de R$ 50.000 a R$ 200.000 em 24 horas em casos documentados. **LGPD e residência de dados:** A [[lgpd]] (Lei Geral de Proteção de Dados) impõe obrigações relevantes no contexto de comprometimento cloud: - Art. 48: notificação à ANPD em prazo razoável (interpretado como até 72h após confirmação de incidente com dados pessoais) - Dados pessoais armazenados em S3 / Azure Blob / GCS devem ser auditados para determinar se foram acessados pelo atacante - Transferência internacional de dados roubados (exfiltração para servidor fora do Brasil) pode configurar violação adicional **Adoção cloud no setor público:** O programa **gov.br** de transformação digital ampliou a adoção de Azure Government e AWS GovCloud entre órgãos federais e estaduais. Comprometimentos nesse contexto podem envolver dados de cidadãos e notificação ao CTIR.gov e ao Gabinete de Segurança Institucional (GSI). **Grupos de ameaça com foco regional:** Grupos de cibercrime brasileiro têm demonstrado capacidade crescente em cloud attacks, especialmente: - Abuso de contas de terceiros para infraestrutura de phishing (hospedagem em S3/Azure Blob) - Cryptojacking oportunístico em contas AWS com credenciais expostas em repositórios públicos GitHub (técnica amplamente usada por grupos como TeamTNT, afetando Brasil desproporcionalmente por volume de repositórios públicos com credenciais hardcoded) - Comprometimento de pipelines CI/CD no setor de fintechs para pivoting em ambientes cloud de produção **Custo operacional:** O impacto financeiro do comprometimento cloud é imediato e mensurável via fatura. Organizações brasileiras devem configurar AWS Budget Alerts e Azure Cost Alerts com notificação automática para o CISO — isso pode ser o primeiro sinal de cryptojacking antes de qualquer alerta de segurança. --- ## Referências - [[t1078-004-cloud-accounts|T1078.004 - Cloud Accounts]] - técnica MITRE ATT&CK de acesso inicial via contas cloud - [[t1537-transfer-data-to-cloud-account|T1537 - Transfer Data to Cloud Account]] - exfiltração via cloud storage - [[t1580-cloud-infrastructure-discovery|T1580 - Cloud Infrastructure Discovery]] - reconhecimento de infraestrutura cloud - [[t1578-modify-cloud-compute-infrastructure|T1578 - Modify Cloud Compute Infrastructure]] - modificação de recursos cloud - [[t1098-account-manipulation|T1098 - Account Manipulation]] - manipulação de contas IAM/Entra ID - [[t1528-steal-application-access-token|T1528 - Steal Application Access Token]] - roubo de tokens OAuth/STS - [[g1015-scattered-spider]] - grupo especialista em comprometimento cloud via engenharia social - [[g0016-apt29]] - ator estatal com histórico de abuso de tokens OAuth em ambientes Microsoft 365/Azure - [[lgpd]] - Lei Geral de Proteção de Dados - obrigações de notificação - [CISA - Scattered Spider Advisory AA23-320A](https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-320a) - [AWS Security Incident Response Guide](https://docs.aws.amazon.com/whitepapers/latest/aws-security-incident-response-guide/welcome.html) - [Microsoft Incident Response - Compromised Credential Playbook](https://learn.microsoft.com/en-us/security/operations/incident-response-playbook-compromised-malicious-app) - [GCP Incident Response - Best Practices](https://cloud.google.com/architecture/security-log-analytics) - [Prowler - Cloud Security Tool](https://github.com/prowler-cloud/prowler) --- *Última revisão: 2026-03-26 | Próxima revisão recomendada: 2026-09-26*