Segurança em Containers
Os "big 5" tópicos
Nos ultimos anos tem se tornado normativo o uso de arquitetura de microserviços e parte viabilizadora desse modelo é o uso de containers e orquestradores (Kubernetes, Mesos, Openshift …) dos mesmos.
Assim tendo o pensamento de Security Firth, vamos falar sobre como a AWS lida com segurança e tambem as boas praticas de segurança em containers.
Let's Bora
Se você ja leu algum post sobre serviços AWS, certamente ja conhece sobre o modelo mais famoso da grande redes de computadores mundial, estou falando do Modelo de responsabilidade compartilhada da AWS.
- A responsabilidade pela segurança e conformidade é compartilhada, veja no sistematizado abaixo.
Então notemos que é de responsabilidade da AWS toda parte de Fundação, ou seja, segurança de seus Data centers, atualização dos drives de sistema operacional(S.O) e outros como pode ser visto na parte laranja na figura. Já nos como cliente e usuarios, temos uma parcela de responsabilidades, sendo elas criptografia, proteção do tráfego de rede, configuração de firewall, S.O, gerenciamento de chaves de segurança (Identity Access Manager), aplicativos e dados do cliente.
[EM RESUMO] — Os clientes são responsáveis por sua segurança e conformidade NA nuvem e a AWS é responsável pela segurança DA nuvem.
Tendo isso em mente…
Quais são os desafios com soluções em containers ?
Essa imagem ilustra bem os desafios, e exemplifica os riscos do "novo mundo".
Os desafios são diversos e vou lista-los alguns que me vem em memoria, caso lembre de mais alguns, coloque num comentário.
- Processos em execução em um host compartilhado
- Isolamento implementado por namespaces e cgroups (control groups) do Linux
- Containers são imutáveis e possuem TTL mais curtos (cargas de trabalho efêmeras)
- O software de segurança tradicional/legado raramente reconhece containers [Firewalls, Sistema de detecção de intrusão (IDS) /Sistema de prevenção de intrusões (IPS)]
- Detectar e restringir fontes e conteúdos de imagens de container
- Impedir que artefatos maliciosos entrem em imagens de container
Vamos falar sobre Principios:
- Defesa em profundidade.
Defesa em profundidade é uma estratégia de adoção de diversas medidas de segurança para proteger a integridade de uma informação. Ela é usada para cobrir todos os ângulos de segurança de uma empresa, sendo redundante quando necessário.
- Mecanismos de defesa estão em camadas
- A abordagem em várias camadas aumenta a segurança do sistema
- Redundâncias intencionais
- Projetado para lidar com diferentes vetores de ataque
- Projetado para ajudar a gerenciar riscos
- Menor Privilégio.
- Conceda apenas os privilégios essenciais necessários para realizar o trabalho pretendido
- Anexar permissão ao serviço de computação por meio de uma role de execução
• Prefiraumafunçãoexclusivaporaplicativo
• Imporlimitesdepermissão - Seja específico: identifique um conjunto limitado de recursos e ações permitidos
• Examinar o uso de “*”
[Fontes]
https://docs.aws.amazon.com/pt_br/wellarchitected/latest/framework/sec_permissions_least_privileges.html
https://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/access-analyzer-findings.html
https://docs.aws.amazon.com/pt_br/IAM/latest/UserGuide/access-analyzer-policy-validation.html
Okay, falamos sobre desafios, resposabilidade e principios… Vamos falar sobre os modelos de resposabilidades dos serviços gerenciados sendo eles o AWS Elastic Container Service (ECS) e Elastic Kubernetes Service (EKS).
Sim… Vamos ver a matriz de responsabilidade. (Sabendo nossos deveres construimos, engajamos preocupação e esforço no ponto exato) ;)
Modelos de responsabilidade compartilhada do ECS
Bom, o Amazon Elastic Container Service (Amazon ECS) é um serviço de gerenciamento de contêineres altamente escalável e rápido que facilita a execução, a interrupção e o gerenciamento de contêineres em um cluster. Este guia aborda muitas das práticas recomendadas operacionais mais importantes e, ao mesmo tempo, explica os principais tópicos subjacentes ao funcionamento dos aplicativos baseados no Amazon ECS. O objetivo é fornecer uma abordagem concreta e acionável para operar e solucionar problemas de aplicativos baseados no Amazon ECS. [link]
O Amazon ECS pode ser executado instâncias autogerenciadas ou AWS Fargate, para não se extender ou deixar um outro post sobre esse tema e diferença entre eles. [link]
No que diz respeito à segurança da infraestrutura, AWS assume mais responsabilidade por AWS Fargate do que para outras instâncias autogerenciadas (AWS EC2). Com Fargate,AWS gerencia a segurança da instância subjacente na nuvem e o tempo de execução usado para executar suas tarefas. A Fargate também dimensiona automaticamente sua infraestrutura em seu nome.
Referência
https://docs.aws.amazon.com/pt_br/AmazonECS/latest/bestpracticesguide/security-shared.html
Modelos de responsabilidade compartilhada do EKS
O Amazon Elastic Kubernetes Service (Amazon EKS) é um serviço gerenciado que você pode usar para executar o Kubernetes na AWS, sem necessidade de instalar e manter seus próprios nós ou ambiente de gerenciamento do Kubernetes. Kubernetes é um sistema de código aberto para automatizar a implantação, o dimensionamento e o gerenciamento de aplicações em contêineres.
Isso, mais sobre nossas resposabilidades…
Assim como no ECS, existe a possibilidade de ter grupos de nós autogerenciados, Gerenciados e em Farget. Eu acredito que nesse ponto voce já esta craque em ler o modelo de responsabilidade, veja as imagens…
Mamão com açucar não é mesmo ?
Caso tenha duvida, sugiro a leitura da documentação oficial e por favor, coloque um comentario aqui, pois sua duvida pode ser a duvida de outros. ;)
Enfim, vamos para parte mais pratica e interesante do assunto (grifo do autor, sim, Eu, Eu mesmo).
The Big 5 — Melhores praticas de segurança em containers
• Segurança na “cadeia de CI/CD”
• Segurança do host
• Segurança em tempo de execução
• Segurança de rede
• Gestão de chaves / segredos
Essa serie de posts tem como base experiencias vivenciadas e diversos artigos e paletras. Assim, temos em todo ponto algum link de referencia, peço que se debruce sob cada um e extraia o maximo que puder, lembre Segurança é Prioridade 0