Melhore a segurança do seu ambiente Kubernetes com práticas eficazes

Melhore a segurança do seu ambiente Kubernetes com práticas eficazes

A ampla utilização do Kubernetes (K8S) em ambientes produtivos traz uma alerta, de como esses ambientes estão sendo usados em relação as configurações e boas práticas de segurança da informação.

Ou seja, apenas usar o Kubernetes não garante que seu ambiente, ou mesmo os manifests (arquivos para gerenciar os recursos do K8S), estão com as configurações voltadas para Segurança da Informação em dia.

Sendo assim, o intuito desse post é mostrar como avaliar o ambiente Kubernetes em busca de problemas de segurança e ter, a partir disso, um direcionamento de como solucionar esses problemas.

Vale ressaltar que a apresentação desse post pode servir como um dos inúmeros meios de implantação do DevSecOps.

Saiba mais sobre DevSecOps no post: DevSecOps – Implementação em 6 passos

Mas como fazer essas avaliações? Para isso vamos usar ferramentas Opensource super práticas:

  • Minikube: Formas mais simples de ter um cluster Kubernetes básico.
  • Kube-bench: Ferramenta para avaliar se o ambiente Kubernetes segue as boas práticas de segurança da informação

Preparando o Laboratório

Para que todos possam fazer esse laboratório, vamos utilizar o Minikube. O Minikube tem como propósito criar um ambiente de desenvolvimento ou de testes, virtualizado de forma simples e rápida.

Já que o foco é a parte de Segurança, vamos seguir os passos de instalação do Minikube e Kubectl mencionados no post abaixo:

Então, após garantir a instalação do Minikube e o kubectl (binário para controlar os recursos do K8S) vamos fazer os seguintes comandos:

minikube start
kubectl get node

O resultado esperado é semelhante ao seguinte:

Com isso, já temos uma laboratório simples para que nossa avaliação da segurança seja efetiva.

Kube-bench

Vamos começar pelo Kube-bench!

Esse é um projeto, da Aqua Security, que visa avaliar as configurações gerais do cluster Kubernetes. E isso significa que ele tenta identificar desde configurações nos serviços, nodes e até na forma que as aplicações estão sendo configuradas.

Para isso, esse projeto usa como referência a CIS (Center for Internet Security) que disponibiliza gratuitamente documentos com boas práticas de configuração para inúmeras plataformas.

Saiba mais em CIS Benchmarks

Dessa forma, o Kube-bench executa uma avaliação usando o CIS Benchmark voltado para Kubernetes, e te traz o resultado de quais são as configurações que estão em compliance com as boas práticas apontadas pela CIS e, obviamente, as configurações que precisam de atenção.

Execução Kube-bench no cluster Kubernetes

O Kube-bench é executado em formato de contêiner, sendo assim basta fazer a criação de um objeto do tipo Job dentro cluster. Para facilitar, vamos usar o manifest já pronto dentro do projeto do Kube-bench (https://github.com/aquasecurity/kube-bench).

Agora, com o minikube ativo e com o kubectl já configurado podemos executar o seguinte comando:

# kubectl apply -f https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml
job.batch/kube-bench created

Dessa forma, o Job criou um Pod para executar a tarefa de avaliar o ambiente. Para sabermos o resultado, basta olharmos o Log do Pod criado pelo Job, e para isso devemos seguir os passos abaixo:

# kubectl get pod -o name
pod/kube-bench-gqjbj

O comando mostrou o nome do pod criado. É importante coletar essa informação, porque o nome do pod será diferente para cada execução ficando apenas com padrão kube-bench-xxxxx

Sendo assim, vamos usar esse nome do pod para coletar o resultado da avaliação:

 kubectl logs kube-bench-gqjbj 

Após isso, sairá na tela todo o resultado, semelhante ao print abaixo:

Conclusão

Podemos ver que existem 13 validações que falharam, ou seja, não estão em compliance, e um total 46 validações que precisam de uma análise mais específica. Para resolver esses pontos ou avaliá-los melhor, basta pegar a documentação gratuita da CIS para Kubernetes, identificar os tópicos numerados e executar dentro do documento os comandos e direcionamento para correção de cada etapa.

Atenção: Cada procedimento de correção tem que ser bem avaliado, já que alguns tópicos podem não ser adequados para a configuração no ambiente.

É importante lembrar que o projeto pode ser usado em um cluster on-premises ou mesmo em Cloud. Além disso, é aconselhado que o kube-bech seja executado após a criação de um cluster, para validar e garantir que o cluster entre em produção de acordo com as boas práticas de Segurança.

Mas, como avaliar a segurança, não apenas do ambiente, mas também dos manifests de deploy de objetos? Segura aí, que a continuação desse post vem em breve, para complementarmos as verificações de segurança em um Cluster Kubernetes.

 

Líder em Treinamento e serviços de Consultoria, Suporte e Implantação para o mundo open source. Conheça nossas soluções:

CURSOSCONSULTORIA

Anterior Guia completo para instalar e configurar o Nextcloud em seu sistema
Próxima Guia Completo: Monitorando OpenVPN no Firewall pfSense com Prometheus e Grafana

About author

Yago Ésquines
Yago Ésquines 5 posts

Yago Ésquines, atua como Coordenador de TI em Software Livre, formado em Ciência da Computação pela Universidade Paulista (UNIP) e em Segurança da Informação pela FATEC São Caetano. Atua com foco em Linux, Automação, DevOps e DevSecOps, possuindo mais de 10 anos de experiência profissional em Tecnologia da Informação. Detém expertise como instrutor de cursos voltados ao Sistema Operacional Linux, Infraestrutura Ágil, DevSecOps e Kubernetes, além ser Certificado Linux Engineer(LPIC-2), CKA (Certified Kubernetes Administrator) e DevOps Essentials.

View all posts by this author →

Você pode gostar também

DevOps

Conheça a experiência DevOps de Talita Pereira na 4Linux

No último dia 3 de setembro aconteceu a prova beta test na sede da 4Linux em SP. Foram mais de 150 inscritos que fizeram a prova de seleção na plataforma

Desenvolvimento

Por que aprender Python? Descubra os motivos e vantagens

Dizem que se alguém quer trabalhar no Google, o caminho mais simples é aprender Python. Será este o único motivo? De fato, a linguagem Python é intensivamente usada pelo Google.

Segurança

Entenda o Ataque Man-In-The-Middle e Como Detectá-lo

Você sabe o que é MITM? O Man-In-The-Middle (em português: Homem no Meio), faz referência ao atacante que intercepta os dados trocados entre duas partes (por exemplo: você e o