Uma abordagem de segurança na AWS — S3 | CWI Software
Uma abordagem de segurança na AWS — S3
13/11/2020 • 4 min. de leitura
Bruno da Silva Verch Autor
Já faz alguns anos que ouvimos sobre vazamentos de dados, de pequenas a grandes empresas, que muitas vezes são acarretados por pequenos deslizes como a má configuração de um serviço, deixar exposto para internet um banco de dados ou um bucket com dados pessoais dos usuários.
Aqui abordaremos dois serviços da AWS que ajudam a diminuir esses riscos e manter os documentos dos seus buckets em conformidade com as melhores práticas de segurança.
O primeiro é o AWS Config, esse serviço é responsável por criar um inventário com todos os recursos da sua conta, para que possamos aplicar regras de segurança nos itens mapeados.
Para habilitar o serviço é muito simples, só clicar no 'Get Started', na página de configurações é importante habilitar o opção para incluir recursos globais, conforme imagem abaixo. Isso garante que usuários, grupos e permissões também sejam mapeados. Depois só clicar no 'Next', 'Next' e 'Confirm'.
Esse processo demora um tempo para catalogar tudo, após concluído teremos uma visão de todos os recursos da conta, incluindo os buckets do S3.
Agora que já temos mapeado esses itens, vamos ao segundo serviço, o Security Hub, que vai nos proporcionar um conjunto de regras de segurança para aplicarmos nesses recursos.
Atualmente o Security Hub oferece três conjuntos de regras:
CIS AWS Foundations Benchmark — guia feito pela ONG CIS com o objetivo de criar um checklist de configurações dos serviços voltados a segurança, a AWS implementa no total 43 regras desse documento. Esse documento pode ser encontrado aqui.
AWS Foundational Security Best Practices — este é um guia feito por especialistas de segurança da AWS, são 38 regras que contemplam mais de 20 serviços da AWS. O guia pode ser encontrado aqui.
PCI DSS — um guia de referência para aplicações que manipulem dados de cartão de pagamento, a AWS atualmente implementa 32 regras que ajudam a estar em conformidade com esse padrão. O guia pode ser encontrado aqui.
Neste tutorial não iremos aplicar regras de PCI, portanto podemos selecionar as duas primeiras opções e habilitar o serviço. Neste momento as regras começam a ser aplicadas e após alguns minutos devemos ter o resultado, conforme a imagem abaixo.
Como estamos interessados nas regras que envolvem os buckets do S3, podemos focar mais especificamente no quadro ao lado:
Nesta conta temos 3 buckets com possíveis falhas de segurança, vamos analisar as falhas do primeiro bucket:
Temos uma falha critica, que é ter deixado o bucket com listagem pública e livre acesso a leitura, e duas regras 'medium' mas também importantes, habilitar somente requisições https para o bucket e habilitar a criptografia nos objetos que são armazenados, existem dois detalhes relacionados a criptografia no S3:
1 — Na criptografia server-side, o arquivo é criptografado antes de ser salvo no disco e descriptografado ao fazer o download do arquivo, neste caso a AWS se encarrega de fazer esse gerenciamento, portanto não precisamos modificar nenhuma aplicação que utilize esse bucket.
2 — Mesmo habilitando a criptografia posteriormente a criação do bucket, todos os objetos que já estavam armazenados vão continuar sem criptografia, porém é possível criptografar cada objeto manualmente ou através de scripts.
Ao acessar a regra, temos um link, conforme imagem abaixo, apontando para a documentação da AWS que explica mais detalhadamente a regra e o passo-a-passo de como resolver a falha de segurança.
Com base nesses resultados só precisaremos resolver cada uma das falhas, garantindo que as aplicações que utilizam esses buckets não sejam afetadas.
Agora que já descobrimos como habilitar e analisar cada uma das falhas, vem sempre aquela pergunta 'Quanto custa essa brincadeira?', normalmente ferramentas de segurança tem um custo elevado, a AWS utiliza um formato de cobrança conforme o volume de uso.
A cobrança é feita conforme a quantidade de vezes que uma regra de segurança é aplicada num recurso da conta, para exemplificar a conta que foi utilizado para este tutorial tem essa estimativa de custo:
Uma conta com 2 ou 3 aplicações que não tenham muitas mudanças nas configurações de infraestrutura, provavelmente vai gastar entre 4$ ~ 8$ dólares, o que é um custo bem baixo considerando os benefícios.
Considero que a principal vantagem de habilitar esses serviços é a capacidade de reduzir o esforço de gerenciar e melhorar a segurança da sua infraestrutura, reduz a necessidade de conhecer cada aspecto de segurança do S3, podendo detectar e tomar uma ação rapidamente baseado nas regras existentes. Sem contar que o valor pago por esses serviços é irrisório pelo benefício que entregam. Espero que esses serviços ajudem você a entregar aplicações mais seguras 💪.