Segurança de containers— Host
Melhores práticas de segurança do host.
Nesse post iremos abordar sobre como minimizar falhas de segurança, como restringir o acesso ao host e como dito na introdução, como adicionar mais uma camada de segurança.
O que fazer ?
Use um sistema operacional otimizado para a execução de containers (superfície de ataque mínima)
- Amazon Linux2 otimizado para EKS ou Bottlerocket
- Atomic, Flatcar Linux, RancherOS
Utilizar nós em sub-redes privadas
Minimize e faça auditoria do acesso
- AWS Systems Manager Session Manager
Executar o Inspetor da Amazon para avaliar continuamente o alinhamento com as práticas recomendadas e os requisitos de conformidade
• kube-bench
• EKS CIS benchmarks
Usar SELinux (RHEL e CentOS)
• Audit2Allow, Audit2Why, SEAlert
Bottlerocket
é um sistema operacional de código aberto baseado em Linux criado sob medida pela Amazon Web Services para a execução de contêineres. Ele inclui apenas os softwares essenciais necessários para executar contêineres e garante que o software subjacente esteja sempre seguro. Com o Bottlerocket, os clientes podem reduzir a sobrecarga de manutenção e automatizar seus fluxos de trabalho, aplicando configurações de maneira consistente à medida que os nós são atualizados ou substituídos.
Coisas boas (Hardening)
- SELinux está habilitado no modo enforcing por padrão
- dm-verity protege o sistema de arquivos raiz somente leitura
- /etc é sem estado (steteless) para tmpfs
- Nenhum shell ou interpretadores instalados
- Binários criados com flag de hardening
… Ainda sobre boas praticas de segurança do host.
Bloquear o uso do Instance Metadata Service (IMDS) para pods
- Políticas de rede (disableIMDSv1: true)
- Modelo de lançamento — Token Hop Limits (disablePodIMDS: true)
Criptografar todo o armazenamento
Atualização constantes (recursos, deprecations, vulnerabilidades)
• Trate os nós como imutáveis
Use ferramentas para monitorar e controlar syscalls como seccomp e AppArmor