Olá, pessoal. Tudo bem?
Hoje vamos finalizar o assunto sobre o pilar de segurança do Well-Architected Framework. Para ler a primeira parte deste post, basta clicar aqui.
Proteção da infraestrutura
Evitar acesso não autorizado aos recursos do nosso workload é aspecto chave quando falamos em segurança. Aqui devemos considerar a segurança destes recursos em todas as camadas possíveis, atendendo práticas regulatórios ou políticas da própria organização, e deixando expostos somente os recursos necessários, como load balancers públicos, para acesso HTTP/HTTPS, ou buckets S3 hospedando websites.
A AWS fornece alguns recursos básicos que devemos considerar sempre que formos configurar a nossa infraestrutura, como:
- Grupos de segurança: Permite configurarmos acessos de entrada e saída em determinada porta ou intervalo de portas de um grupo de recursos, como instâncias EC2 ou tarefas no ECS. É importante salientar que o grupo de segurança é statefull, se uma porta for aberta para entrada, ela também permitirá a saída;
- Listas de controle de acesso (ACL – Access Control Lists): as listas de controle de acesso, são semelhantes aos grupos de segurança, salvo que elas são vinculadas a sub-redes e que elas são stateless, abrindo uma porta para acesso de entrada, não abre para a saída;
- Sub-redes: Podemos segregar o acesso a recursos utilizando sub-redes, combinadas a tabelas de roteamento (abaixo), definindo o que são recursos públicos e privados;
- Tabelas de roteamento: Permitem configurarmos como as sub-redes se comunicam entre si e como elas se comunicam com o mundo exterior.
Outros serviços mais avançados que podemos citar, e que tratam diferentes aspectos de segurança, são:
- AWS WAF: O Web Application Firewall protege contra exploits que podem afetar a segurança e disponibilidade da aplicação;
- AWS Shield: O AWS Shield é um serviço que protege contra DDoS (Distributed Denial of Service). A versão básica do AWS Shield é inclusa por padrão em todas as contas da AWS, mas é possível contratar um nível de serviço avançado;
- AWS Firewall Manager: Permite o gerenciamento conjunto de regras de diversos Web Application Firewalls, inclusive em contas diferentes;
- Direct Connect: Permite uma conexão privada e direta entre uma VPC e um data center local.
Outro ponto que vale ser citados, é que devemos aplicar o mínimo de privilégio na comunicação com serviços gerenciados da AWS, como o RDS ou o S3. Isso pode ser feito utilizando o IAM, de modo geral, ou podemos utilizar o controle dos próprios serviços, quando existirem. Como é o caso do S3 e suas políticas de bucket.
Por último, mas não menos importante, devemos sempre garantir que o S.O. de nossas máquinas virtuais, antivírus, permissões de acesso e configurações de firewall estejam sempre bem configurados e atualizados. A AWS fornece o System Manager para auxiliar neste tipo de tarefa.
Proteção de dados
Os dados são um dos ativos mais importantes de uma organização, e por isto devem estar muito bem protegidos.
À começar, devemos classificá-los com base em sua sensibilidade. O que não for público, deve ser armazenado e transmitido de forma segura, e preferencialmente sem acesso direto para humanos. Em casos onde é necessária essa interação, ferramentas seguras devem ser disponibilizadas para permitir este acesso.
A proteção dos dados privados, devem ser feitas em trânsito e em repouso.
Basicamente, a proteção em trânsito pode ser efetuada se utilizarmos certificados TLS na comunicação (HTTPS), pois isso garante que a comunicação será criptografada. Para adicionarmos um nível adicional de segurança, também podemos utilizar VPNs quando possível.
Existem diversas entidades que fornecem certificados TLS no mercado, inclusive gratuitamente. A AWS possui o AWS Certificate Manager, ou ACM. O ACM permite criarmos certificados públicos e privados que podem ser utilizados em serviços gerenciados, como o Application Load Balancer e o Cloudfront. Não precisamos nos preocupar com a renovação destes certificados, pois a mesma é feita pela própria AWS. Podemos também importar certificados adquiridos fora da AWS no ACM, mas vale salientar que eles não são renovados automaticamente.
A proteção em repouso é efetuada através da criptografia dos dados nos dispositivos de armazenamento. A AWS oferece diversas tecnologias de armazenamento, e praticamente todas possuem opções de criptografia, como o EBS e o S3. As chaves de criptografia são gerenciadas no KMS, ou Key Management Service.
No S3, por exemplo, temos algumas opções relacionadas ao método de criptografia e gerenciamento da chave:
- SSE-S3: Server-Side Encryption com a chave gerenciada pelo S3;
- SSE-KMS: Server-Side Encryption com a chave gerenciada pelo KMS;
- SSE-C: Server-Side Encryption com a chave gerenciada pelo cliente;
- CSE-KMS: Client-Side Encryption com a chave gerenciada pelo KMS;
- CSE-C: Client-Side Encryption com a chave gerenciada pelo cliente;
Geralmente criptografia do lado servidor (SSE) é mais fácil de ser implementada, porém muitas vezes a criptografia do lado do cliente (CSE) é necessária por uma questão de compliance.
Uma recomendação relacionada a backup é fazer o seu armazenamento em uma conta separada da conta onde está executando o workload, para evitar que o backup seja comprometido, caso a conta principal também seja comprometida.
Resposta a incidentes
Mesmo tendo uma infraestrutura extremamente segura, devemos ter processos bem definidos para identificar e mitigar incidentes. As simulações efetuadas durante game days, auxiliam na otimização destes processos.
Na identificação de ameaças, uma boa prática é o Clean Room, que é uma forma de isolarmos o ambiente/recurso para investigação forense. Utilizando o CloudFormation podemos recriar rapidamente um ambiente isolado, similar ao ambiente comprometido, permitindo a investigação da possível ameaça.
Também vale reforçar aqui a regra do privilégio mínimo, utilizando o IAM para permitir apenas acesso as pessoas certas e no nível necessário.
Fim
Como citei no início da primeira parte deste post, nenhum dos procedimentos citados é extremamente difícil de ser executado. A maioria é de certa forma simples, graças ao auxílio das ferramentas e processos existentes na AWS. Este é com certeza um motivador para considerarmos com muito carinho as técnicas citadas, pois, relacionado a segurança, a ameaça pode ser fatal.
Chegamos ao final do pilar de segurança pessoal. Espero que tenham gostado.
Uma boa semana a todos e até a próxima.