luizmachado.dev

Estratégias para mitigar ataques de exfiltration no Amazon S3

Nesse post estarei utilizando apenas serviços AWS, em um próximo vou falar sobre ferramentas OpenSource que podem apoiar também.

---

1. Entendendo o risco de exfiltration no S3

Uma exfiltration de consiste em extrair ou transferir informações de forma não autorizada para fora da organização. Falando de S3, isso pode ocorrer se:

  • permissões excessivas em bucket policies ou ACLs, permitindo acesso público ou de usuários mal-intencionados.
  • Não há monitoramento e logs de atividades, dificultando a detecção de downloads ou cópias suspeitas de dados.
  • Falta de criptografia e mecanismos de auditoria, tornando mais fácil para um atacante ler e exportar dados sensíveis.

---

2. Acesso mínimo e governança de identidades

  1. Princípio do Menor Privilégio (Least Privilege)

- Conceda apenas as permissões necessárias para cada usuário, serviço ou aplicativo.

- Evite políticas amplas (como "s3:*") quando apenas algumas ações específicas são necessárias (por exemplo, s3:GetObject ou s3:PutObject).

  1. Políticas de Bucket e IAM

- Use políticas de bucket (Bucket Policies) e políticas de IAM para restringir acesso a endereços IP confiáveis, VPC Endpoints ou contas específicas.

- Considere o uso de Condition Keys, como aws:SourceVpce, para autorizar apenas tráfego originado de um AWS PrivateLink (VPC Endpoint).

  1. Bloqueio de Acesso Público (S3 Block Public Access)

- Habilite essa configuração para todos os buckets que não necessitam de acesso público.

- Isso evita a exposição acidental caso alguém aplique permissões públicas sem querer.

  1. Integração com AWS Organizations

- Se a sua empresa utiliza múltiplas contas, estabeleça Service Control Policies (SCPs) para impor controles de segurança em nível organizacional, restringindo ações S3 não aprovadas.

---

3. Protegendo o tráfego e os dados

  1. Criptografia em repouso (Server-Side Encryption)

- Ative a criptografia padrão (SSE-S3) ou use SSE-KMS para chaves gerenciadas pelo AWS KMS, oferecendo controle granular sobre chaves de criptografia e logs de uso.

- Essa abordagem garante que, mesmo que alguém acesse objetos indevidamente, não consiga ler seus conteúdos sem as chaves adequadas.

  1. Criptografia em trânsito (HTTPS/TLS)

- Exija sempre conexões HTTPS, bloqueando requisições HTTP para evitar interceptação no caminho.

- Configure clientes, aplicativos e serviços para usar aws:SecureTransport como condição de acesso.

  1. VPC Endpoints para S3

- Ao usar o S3 dentro de uma VPC, crie VPC Endpoints. Dessa forma, o tráfego entre a VPC e o S3 não passa pela internet pública, reduzindo o risco de interceptação ou exfiltration via caminhos externos.

  1. S3 Object Lock e Versionamento

- Habilitar o Object Lock em modo Compliance impede exclusão ou substituição de objetos antes do período de retenção. Isso ajuda a proteger dados contra adulterações maliciosas.

- O versionamento mantém versões anteriores dos objetos, facilitando a recuperação se houver alteração ou remoção indevida.

---

4. Monitoramento e detecção de atividades suspeitas

  1. S3 Access Logs

- Configure logs de acesso do S3 para capturar detalhes de cada solicitação de leitura (GET) ou gravação (PUT).

- Armazene esses logs em um bucket separado (com as devidas políticas de segurança) para posterior análise e auditoria.

  1. AWS CloudTrail

- Registra todas as chamadas de API relacionadas a S3, como criação e exclusão de buckets, modificações em políticas, listas de objetos etc.

- Ative CloudTrail Data Events para rastrear ações específicas em objetos (por exemplo, downloads), ajudando a identificar acessos incomuns ou não autorizados.

  1. Amazon GuardDuty

- Serviço de detecção de ameaças que monitora atividades suspeitas, como extração massiva de dados ou acessos de IPs maliciosos.

- Oferece finding de exfiltration quando detecta padrões de ataque (por exemplo, varredura de buckets ou downloads anormais).

  1. Amazon Macie

- Usa machine learning para identificar dados sensíveis armazenados no S3.

- Ajuda a classificar e monitorar onde informações confidenciais residem, facilitando implementação de políticas e detecção de acessos suspeitos.

  1. AWS Security Hub

- Centraliza achados de segurança de vários serviços (GuardDuty, Macie, Inspector etc.) em um só lugar.

- Permite criar automações via EventBridge para resposta imediata (por exemplo, bloqueio de IP ou remoção de permissões).

---

5. Automação e resposta a incidentes

  1. Amazon EventBridge e Lambda

- Crie regras no EventBridge para disparar funções Lambda ao detectar comportamentos suspeitos em logs ou findings de segurança.

- Exemplos:

- Ao perceber um número anormal de downloads (via CloudTrail Data Events), isolar temporariamente o bucket.

- Se houver um finding de alto risco no GuardDuty relacionado ao S3, atualizar automaticamente a bucket policy para bloquear acesso anônimo.

  1. Remediação Automática

- Use AWS Config com regras customizadas para verificar se buckets estão alinhados a padrões de segurança (criptografia habilitada, bloqueio de acesso público, etc.).

- Se algo estiver fora de conformidade, acione um script (Lambda) que ajuste as configurações imediatamente.

  1. Playbooks de Incidente

- Mantenha procedimentos documentados (playbooks) para responder a incidentes de exfiltration, incluindo etapas para rastrear a origem, bloquear pontos de saída e coletar evidências (logs, capturas de tela, etc.).

---

6. Políticas de Auditoria e Conformidade

  1. Gerencie o Ciclo de Vida dos Dados

- Use S3 Lifecycle Policies para mover dados antigos para camadas de armazenamento de menor custo (Glacier), reduzindo a superfície de risco e limitando a exposição de dados sensíveis.

- Destrua (delete) adequadamente dados que não precisam mais ficar armazenados.

  1. Conformidade com Regulamentações

- Se sua organização está sujeita a normas como LGPD, HIPAA, GDPR, PCI-DSS ou SOC 2, revise regularmente políticas de retenção e acesso no S3.

- Configure avisos de acesso (por exemplo, via Macie) quando dados sensíveis forem colocados em buckets de alto risco.

  1. Relatórios de Auditoria

- Exporte logs e achados para sistemas de SIEM (Security Information and Event Management) ou para AWS Security Hub.

- Gere relatórios que demonstrem que todos os buckets S3 cumprem os requisitos de criptografia, logging e acesso mínimo.

---

7. Boas práticas adicionais

  • Use caminhos privados ao disponibilizar arquivos, preferindo URLs assinadas (pre-signed URLs) para acesso temporário em vez de deixar objetos públicos.
  • Periodicidade de revisão: implemente revisões mensais/trimestrais das políticas de acesso, buckets existentes e dados sensíveis.
  • Proteja as credenciais do IAM (root user, chaves de acesso) e aplique MFA a todas as contas de alta permissão, reduzindo a chance de credenciais comprometidas serem usadas para exfiltration.
  • Segregue ambientes: buckets que contêm dados confidenciais de produção devem ser isolados de buckets de desenvolvimento e testes, preferencialmente em contas separadas na AWS Organizations.

---

Conclusão

Proteger dados armazenados no S3 contra exfiltration requer uma defesa em camadas, que inclui:

  • Controle de acesso rigoroso (menos privilégio, bloqueio de acesso público).
  • Criptografia (em repouso e em trânsito).
  • Monitoramento e logs (CloudTrail, Access Logs, Macie, GuardDuty).
  • Automação de resposta (EventBridge, Lambda, AWS Config).
  • Práticas de conformidade (LGPD, PCI, etc.) e etc....

Como ja sabemos, falando em segurança da informação nada é 100%, mas adicionando camadas no processo você reduz significativamente a superfície de ataque e torna muito mais difícil que um ataque de exfiltration tenha sucesso. Com a rápida evolução do cenário de ameaças, é imprescindível manter seus processos, configurações e políticas atualizados, garantindo um ambiente S3 mais seguro.