luizmachado.dev

PT EN

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.