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.
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.
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.
É 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:
About author
Você pode gostar também
Desvendando o mundo dos CTFs: competições de segurança da informação
E ai… Qual teu Papo? CTFs são um dos meus hobbies favoritos. Curto muito a sensação de resolver um desafio particularmente difícil e ver todas as peças do quebra-cabeça se
Guia Prático: Como Instalar e Configurar o K3D para Kubernetes
Este post tem como objetivo apresentar um guia para instalação e configuração do K3D. A solução independe de sistemas operacionais pois todas as tecnologias serão utlilizadas em containers. Introdução Montar
Seja o melhor aluno e garanta sua contratação na 4Linux
A 4Linux escolherá 20 pessoas para realizarem gratuitamente seus cursos Devops e garante contratar o melhor aluno, venha para o caça talentos Devops. Quem pode participar? Poderá participar todas as