Segurança de Aplicação

Cuidados de segurança em Kubernetes para cenários Cloud – IaaS (Infrastructure as a Service)

Qual é a importância da utilização de Kubernetes em ambiente Cloud? E qual a necessidade de aplicar segurança em kubernetes neste contexto?

Os provedores de Nuvem pública Aws, Google e Azure possuem recursos para disponibilidade e estabilidade de acessos. Além disso, a tecnologia kubernetes provê benefícios na automatização de Deploys, gerência e escalonamento de aplicações

Entretanto, todo esse cenário necessita de precauções de segurança. Nesse sentido, já podemos fazer uma reflexão: A responsabilidade de segurança é do Provedor de Nuvem?  Na realidade não é bem assim, visto que existe um conceito chamado Responsabilidade Compartilhada que em resumo define que o cliente do Provedor Cloud também precisa ter cuidados com segurança. 

Explore o tema sobre aplicações cloud native através desse artigo.

Estudo de caso


Figura 1: Modelo de responsabilidade compartilhada

Na Figura 1 é possível visualizar que um cliente Cloud tem a responsabilidade de segurança em diversos pontos desse cenário, logo possui desafios e cuidados de segurança. A seguir trazemos um estudo de caso relacionado a um cenário Kubernetes, apresentar alguns desafios de segurança e cuidados que devem ser tomados para minimizar as ameaças para o cenário apresentado.


Figura 2: Exemplo de ambiente kubernetes

Na Figura 2 podemos observar as seguintes tecnologias:

  • Terraform para criar e destruir os Deploys
  • Git Actions para CI/CD.
  • Docker para buildar a Imagem
  • Kubernetes para orquestrar os containers
  • Um cenário Multi-Cloud Provider por questões de custos e contingência.

Para esse artigo elencamos um cenário IaaS. Logo o cliente do provedor de nuvem precisa montar sua própria estrutura de Cluster Kubernetes. Sendo assim, foram elencadas as seguintes tecnologias:

  • AWS EC2
  • Azure Virtual Machine
  • Google Compute Engine

Dado todo o contexto do estudo de caso, podemos fazer um breve levantamento de segurança:

Como é feita a autenticação? A estrutura montada tem contra-medidas para manter a disponibilidade das aplicações? As Boas práticas estão sendo consideradas nesse ambiente?

Dessa forma, existe uma necessidade clara para identificação de desafios de Segurança para Kubernetes, sendo assim, a Owasp traz o Owasp top 10 Kubernetes e disponibiliza especificamente um material com desafios de segurança para o cenário kubernetes. A seguir, vamos elencar alguns desafios que poderíamos elencar para o nosso estudo de caso.

  • K01: Workloads inseguros
    • Desafio: Processos do App executados como root.
  • K02: Vulnerabilidades da Cadeia de Suprimentos
    • Desafio : Vulnerabilidades de software conhecidas em bibliotecas.
  • K03: Definições Rbac resistentes permissivas
    • Desafio: Uso desnecessário de cluster-admin, ou seja, usuário ou grupo, tem acesso ao “superusuário” integrado do Kubernetes chamado cluster-admin, ele pode executar qualquer ação em qualquer recurso dentro de um cluster.
  • K04: Falta de Política Centralizada
    • Desafio: Uso de imagens de registros não confiáveis.
  • K05: registro e monitoramento inadequados
    • Desafio: Logs e rastreamentos de cargas de trabalho em execução não são monitorados para atividades suspeitas.
  • K06: Mecanismos de Autenticação Quebrados
    • Desafio: Autenticação/Acesso inadequado a API do Kubernetes
  • K07: Controles de segmentação de rede ausentes
    • Desafio: Os invasores exploram workloads, sem restrições de rede, atravessar para outros contêineres em execução ou invocar APIs privadas.
  • K08: Falhas de gerenciamento de segredos
    • Desafio: Armazenamento inadequado de defeitos.
  • K09: Componentes do Cluster mal configurados
    • Desafio: Erros de configuração nos principais componentes do Kubernetes podem levar ao comprometimento total do cluster:  kubelet, kube-apiserver, etc.
  • K10: Componentes do Kubernetes desatualizados e independentes
    • Desafio: Vulnerabilidades no Cluster Kubernetes.

Enfrentando os desafios – Cuidados de Segurança em Kubernetes

Alguns cuidados minimizam de forma prática os desafios abordados anteriormente. É válido ter cuidados para o host do Cluster e identificar se boas práticas são aplicadas, tais como: Versionamento adequado do cluster, o uso de TLS. Na mesma linha, ter cuidados com o build: identificar se as imagens são confiáveis e estão com a imagem mínima necessária.

Cuidados são necessários também para o deploy, considerando o que está sendo colocado em produção. E para fechar essa questão, cuidados no runtime. Por exemplo, verificar se é feito o monitoramento de anomalias durante a execução do Cluster. Em linhas gerais é recomendado realizar a Modelagem de Ameaças para identificar possíveis brechas e requisitos para todo esse cenário. Além de priorizar ações de Hardening para reforçar a segurança dos sistemas, ou seja, mapear possíveis ameaças para que a proteção dos sistemas possa ser aprimorada.

Identificar brechas de segurança em Kubernetes

Dando continuidade no estudo de caso foi utilizado a feature de Iac do Conviso Platform para analisar brechas neste ambiente. Quando o git action do Iac foi executado, os findings foram identificados e enviados para a Conviso Platform (Figura 3).


Figura 3: Findings identificados após a execução git action do Iac

Contudo, há uma real necessidade da realização de Gestão de Defeitos para avaliação dos findings e direcionamento para correção das vulnerabilidades, ou seja, de forma geral, o objetivo é coletar, registrar e analisar os defeitos de segurança, além da possibilidade de enriquecer essas informações para utilizá-las em tomadas de decisões através de métricas.

Concluindo o tema sobre segurança em kubernetes 

Portanto, em linhas gerais, existem cuidados essenciais para enfrentar os desafios de uma estrutura kubernetes em cenário Cloud IaaS. Tais ações devem ser feitas de forma manual e automatizada para evitar brechas de segurança e o mais importante é realizar esse processo de forma organizada.

Nova call to action
Related posts
Code FightersSegurança de Aplicação

Como integrar o Semgrep no CI/CD e enviar os resultados para a Conviso Platform

Atualmente, é uma prática muito comum integrar verificações de segurança durante a fase de…
Read more
Segurança de Aplicação

Impactos Negativos Gerados pela Ausência de Logs e Monitoramento de Segurança

Primeiramente, os logs são registros de atividades gerados também por sistemas, aplicações e…
Read more
Segurança de Aplicação

Dockers e Containers

Containers são soluções cada vez mais populares na indústria de desenvolvimento de software.
Read more

Deixe um comentário