# DS0010 — Cloud Storage
## Descrição
**Cloud Storage** refere-se à infraestrutura de armazenamento de objetos hospedada on-premise ou por provedores terceiros, disponibilizada aos usuários via conexões de rede e/ou APIs. Os exemplos mais comuns incluem Amazon S3, Azure Blob Storage, Google Cloud Storage (GCS) e equivalentes privados como MinIO. Em ambientes IaaS, o armazenamento em nuvem é onipresente — utilizado para backups, artefatos de aplicação, dados de log, imagens de container e muito mais.
Do ponto de vista de segurança, buckets e contêineres de armazenamento em nuvem são alvos de alto valor para adversários. Dados confidenciais mal protegidos, credenciais armazenadas em buckets públicos, e exfiltração de dados via APIs de storage são vetores de ataque amplamente explorados — especialmente contra empresas financeiras, governo e saúde no Brasil. A exposição acidental de buckets S3 (misconfigured public access) foi responsável por diversos vazamentos de dados brasileiros documentados em 2023-2025.
A telemetria de Cloud Storage é gerada nativamente pelos provedores de nuvem via logs de acesso de API (AWS CloudTrail, Azure Monitor, GCP Cloud Audit Logs). Analistas de SOC devem centralizar esses logs em um SIEM para correlação com outras fontes e detecção de padrões de acesso anômalo — como enumeração massiva de buckets, download em lote de objetos, ou deleção que pode indicar ransomware ou wiper em ambientes cloud.
## Pipeline de Coleta
```mermaid
graph TB
A["☁️ AWS S3 / Azure Blob<br/>GCS / MinIO"] --> B["📋 CloudTrail Data Events<br/>GetObject · PutObject<br/>DeleteObject · ListBuckets"]
A --> C["📋 Server Access Logs<br/>IP de origem · bytes · UA"]
B --> D["📡 Conector de Nuvem<br/>S3 → SIEM / Azure Monitor"]
C --> D
E["🔧 GuardDuty / Defender<br/>Detecção automática de anomalia"] --> D
D --> F["🗄️ SIEM<br/>Sentinel · Splunk · Elastic"]
F --> G["🚨 Alerta<br/>Bucket público · Exfiltração<br/>Deleção massiva em nuvem"]
```
## Componentes de Dados
| Componente | ID | Descrição |
|---|---|---|
| Cloud Storage Enumeration | [[dc0017-cloud-storage-enumeration\|DC0017]] | Listagem de buckets/contêineres disponíveis — reconhecimento de superfície de dados |
| Cloud Storage Access | [[dc0025-cloud-storage-access\|DC0025]] | Leitura/download de objetos — pode indicar exfiltração |
| Cloud Storage Creation | [[dc0024-cloud-storage-creation\|DC0024]] | Criação de novo bucket ou contêiner — pode indicar staging para exfiltração |
| Cloud Storage Modification | [[dc0023-cloud-storage-modification\|DC0023]] | Alteração de objetos ou políticas — ex: tornar bucket público |
| Cloud Storage Deletion | [[dc0022-cloud-storage-deletion\|DC0022]] | Deleção de objetos ou buckets — ransomware cloud, destruição de evidências |
| Cloud Storage Metadata | [[dc0027-cloud-storage-metadata\|DC0027]] | Consulta de metadados — ACLs, tags, configurações de criptografia |
## Como Coletar
### AWS
| Fonte | Configuração | Eventos relevantes |
|---|---|---|
| **AWS CloudTrail** | Habilitar Data Events para S3 em todas as regiões | `GetObject`, `PutObject`, `DeleteObject`, `ListBuckets`, `CreateBucket` |
| **S3 Server Access Logs** | Habilitar em cada bucket | Logs detalhados de acesso com IP de origem |
| **AWS Security Hub** | Controle `S3.2` (Block Public Access) | Alertas de misconfiguration |
| **Amazon GuardDuty** | Finding type `S3/SuspiciousActivity` | Detecção automática de acesso anômalo |
**Exemplo CloudTrail — detectar download em massa de S3:**
```json
{
"eventName": "GetObject",
"requestParameters": {
"bucketName": "nome-do-bucket"
},
"userIdentity": {
"type": "IAMUser"
}
}
```
### Azure
| Fonte | Configuração | Eventos relevantes |
|---|---|---|
| **Azure Monitor / Diagnostic Logs** | Habilitar em cada Storage Account | `BlobRead`, `BlobWrite`, `BlobDelete`, `ListBlobs` |
| **Microsoft Defender for Cloud** | Storage threat protection | Alertas de acesso anômalo, enumeração, exfiltração |
| **Azure Activity Log** | Automático | Criação/deleção de Storage Accounts |
### GCP
| Fonte | Configuração | Eventos relevantes |
|---|---|---|
| **Cloud Audit Logs** | Data Access logs para Cloud Storage | `storage.objects.get`, `storage.objects.delete`, `storage.buckets.list` |
| **Security Command Center** | Detecção de misconfiguration | Buckets públicos, ACLs excessivas |
### Integração com SIEM
```
# Splunk — detectar enumeração de buckets S3 por usuário
index=aws_cloudtrail eventName=ListBuckets
| stats count, dc(requestParameters.bucketName) as buckets_listed by userIdentity.arn, sourceIPAddress
| where buckets_listed > 10
| sort -buckets_listed
# Splunk — exfiltração via GetObject em volume alto
index=aws_cloudtrail eventName=GetObject
| stats count, sum(responseElements.contentLength) as total_bytes by userIdentity.arn, sourceIPAddress
| where total_bytes > 1073741824 /* > 1 GB */
| sort -total_bytes
```
## Técnicas Detectadas
| ID MITRE | Técnica | Sinal de detecção |
|---|---|---|
| [[t1530-data-from-cloud-storage\|T1530]] | Data from Cloud Storage | Download massivo ou incomum de objetos de storage por identidade |
| [[t1619-cloud-storage-object-discovery\|T1619]] | Cloud Storage Object Discovery | Enumeração de buckets/objetos — ListBuckets em sequência rápida |
| [[t1537-transfer-data-to-cloud-account\|T1537]] | Transfer Data to Cloud Account | Upload de dados para bucket externo controlado pelo adversário |
| [[t1485-data-destruction\|T1485]] | Data Destruction | Deleção massiva de objetos — ransomware cloud ou wiper |
| [[t1562-008-disable-cloud-logs\|T1562.008]] | Disable Cloud Logs | Modificação de configurações de logging do bucket para evasão |
## Gaps de Cobertura Brasil/LATAM
**Problemas críticos observados em ambientes cloud brasileiros:**
- **CloudTrail Data Events desabilitados por custo:** O AWS CloudTrail Standard não registra eventos de dados S3 (GetObject, PutObject) — apenas eventos de gerenciamento. Muitas empresas brasileiras não habilitam Data Events por custo, criando ponto cego total para exfiltração via S3. O custo é real, mas a cobertura é essencial para qualquer dado sensível.
- **Buckets sem Server Access Logging:** Mesmo com CloudTrail habilitado, detalhes de acesso individual (IP, user agent, byte range) só estão disponíveis via S3 Server Access Logs — que devem ser habilitados separadamente por bucket.
- **Ausência de alertas de bucket público:** Empresas de médio porte no setor financeiro e saúde frequentemente têm buckets S3 públicos por misconfiguration. AWS Config + Security Hub com controle `S3.2` detecta isso automaticamente — mas poucos ambientes brasileiros têm essa cobertura configurada.
- **Falta de baseline de acesso:** Sem perfil de comportamento normal (qual IAM role acessa qual bucket, volume típico diário), alertas de anomalia são impossíveis de calibrar. SIEMs com ML comportamental (Splunk UBA, Microsoft Sentinel UEBA) resolvem isso.
**Recomendações:**
1. Habilitar CloudTrail Data Events pelo menos para buckets que contêm PII, dados financeiros e backups — priorizar conformidade com LGPD
2. Ativar S3 Server Access Logging em todos os buckets críticos — armazenar em bucket separado com retenção mínima de 90 dias
3. Implementar AWS Config rule `s3-bucket-public-read-prohibited` e `s3-bucket-public-write-prohibited` com remediação automática
4. Criar alertas para mudanças de ACL que tornem buckets públicos — este é o vetor número 1 de vazamento de dados em cloud no Brasil
## Referências
- [[dc0017-cloud-storage-enumeration|DC0017 — Cloud Storage Enumeration]] — reconhecimento de superfície de dados
- [[dc0025-cloud-storage-access|DC0025 — Cloud Storage Access]] — detecção de exfiltração
- [[dc0022-cloud-storage-deletion|DC0022 — Cloud Storage Deletion]] — detecção de destruição de dados
- [[t1530-data-from-cloud-storage|T1530 — Data from Cloud Storage]] — técnica de exfiltração diretamente desta fonte
- [[t1619-cloud-storage-object-discovery|T1619 — Cloud Storage Object Discovery]] — reconhecimento de dados
- [[m1022-restrict-file-and-directory-permissions|M1022 — Restrict File and Directory Permissions]] — princípio de menor privilégio em ACLs
- [[m1047-audit|M1047 — Audit]] — auditoria periódica de configurações de bucket
---
*Fonte: [MITRE ATT&CK — DS0010](https://attack.mitre.org/datasources/DS0010)*