Por que a segurança do Kubernetes é importante?

Copiar URL

O Kubernetes, também conhecido como k8s ou "Kube", é uma plataforma de orquestração de containers open source que automatiza a implantação, o gerenciamento e o escalonamento das aplicações em containers. Com o Kubernetes é possível organizar containers do Linux em clusters e usar interfaces de programação da aplicação (APIs) para conectar microsserviços em containers.

O Kubernetes tornou-se uma tecnologia muito popular nos últimos anos, mas o investimento em segurança não acompanhou necessariamente esse ritmo. Considerando que qualquer camada ou serviço envolvido em uma implantação do Kubernetes pode apresentar vulnerabilidades, o processo de proteção de clusters do Kubernetes pode ser complexo. 

Embora algumas equipes adotem uma abordagem centralizada em container para a segurança do Kubernetes, cujo objetivo principal é proteger imagens de container e o ambiente de execução do container, outras optam por uma abordagem mais ampla: a de segurança nativa em Kubernetes, que adota uma abordagem mais ampla, extraindo o contexto do Kubernetes e usando controles integrados do Kubernetes para implementar práticas recomendadas de segurança baseadas em risco em todo o ciclo de vida de desenvolvimento de aplicações.

A segurança do Kubernetes também resolve riscos e vulnerabilidades específicos do Kubernetes, como políticas RBAC do Kubernetes mal configuradas, componentes desprotegidos do control plane do Kubernetes e segredos do Kubernetes mal utilizados.

O Kubernetes, tecnologia relativamente nova, passou por um enorme processo de adoção nos últimos anos, mas nem sempre os investimentos em segurança acompanharam esse ritmo. Em combinação com a falta de conscientização sobre segurança e a inevitável falta de habilidades, os incidentes de segurança podem causar consequências devastadoras. Os problemas de segurança são responsáveis por atrasar ou desacelerar o desenvolvimento e a implantação das aplicações. No caso de realmente haver um incidente, os problemas de segurança do Kubernetes e do container também contribuem com a perda de receita ou de clientes, a rescisão de funcionários e impactos adicionais nas operações da empresa.

O Kubernetes e a conteinerização ajudam na formação mais rápida e escalável de uma equipe de DevOps, que também acompanha riscos adicionais à segurança. Quanto mais containers são implantados, mais a superfície de ataque se expande e mais difícil se torna a capacidade de identificar quais containers têm vulnerabilidades ou configurações incorretas.

Riscos e desafios comuns

Rede pod-to-pod do Kubernetes

Um grande benefício do Kubernetes é sua ampla variedade de opções de configuração de rede, que controlam como os pods se comunicam em um cluster. No entanto, o Kubernetes não restringe a comunicação de rede entre os pods em um cluster por padrão, portanto, todos os pods se comunicam entre si até que uma política de rede relevante seja atribuída. Isso significa que um único pod que foi violado por um agente mal-intencionado pode ser usado como vetor para atacar todos os outros pods nesse cluster. As políticas de rede do Kubernetes são escritas com arquivos YAML. Esse é apenas um dos muitos motivos pelos quais a operacionalização das políticas de rede do Kubernetes pode ser desafiadora, o que pode causar a negligência da segmentação da rede em favor da velocidade. 

Gerenciamento de configuração

Erros de configuração, geralmente causados por erro humano e ausência de verificações de segurança automatizadas, representam um sério risco para os ambientes Kubernetes e ainda podem causar violações. A natureza dinâmica dos containers dificulta a identificação de configurações incorretas e a preservação de uma postura de segurança consistente. O Kubernetes foi desenvolvido para priorizar a velocidade e a capacidade de operação, portanto, configurações padrão costumam ser abertas/irrestritas. Por isso, as organizações ficam suscetíveis a ataques.

Problemas na cadeia de suprimentos de software

Problemas de segurança na cadeia de suprimentos de software, como componentes de aplicações vulneráveis, controles de acesso insuficientes, falta de uma lista de materiais de software (SBOM), brechas do pipeline de CI/CD e aplicação inconsistente de políticas, também preocupam as organizações. As extensas cadeias de suprimentos de software que simbolizam os ambientes Kubernetes nativos em nuvem exigem um conjunto exclusivo de controles. A segurança da cadeia de suprimentos de software deve começar com ambiente de desenvolvedor individual (IDE) e se estender até o ambiente de runtime. Ele precisa abranger todo o conteúdo (código-fonte, imagens, artefatos), ferramentas (de desenvolvedor e segurança) e pessoas envolvidas na cadeia de suprimentos. Análise de código-fonte, controle de acesso, atestado, SBOMs são apenas algumas das muitas considerações para a segurança da cadeia de suprimentos de software. 

Segurança "shift left"

Intimamente relacionado à segurança da cadeia de suprimentos de software existe o desafio de fazer o "shift left" na segurança. Ter uma segurança "shift left" (colocar as atividades de teste à esquerda) é um conceito em que iniciativas de segurança do Kubernetes passam para os estágios iniciais do ciclo de vida do container. O desafio aqui é exigir que os desenvolvedores se tornem usuários de segurança capacitados, com conhecimento e ferramentas para tomar decisões de segurança em seus fluxos de trabalho. Entretanto, o "shift left" traz grandes benefícios para as empresas. É o principal motivo pelo qual a segurança do Kubernetes e de containers deve ser implementada. Quanto mais questões de segurança forem tratadas no estágio de construção, menos problemas tendem a surgir no runtime, gerando menos atrasos no projeto.

Resposta e detecção do runtime

O volume de vetores de ameaças no runtime em aplicações em containers executadas em um ambiente Kubernetes representa um desafio para as equipes encarregadas de detectar e responder a esses problemas. Um agente mal-intencionado pode ter várias maneiras de conseguir acesso inicial a um ambiente Kubernetes, executar código malicioso, escalonar privilégios, obter persistência, burlar a detecção e mover-se lateralmente, resultando em exclusão ou exfiltração de dados, negação de serviço ou sequestro de recursos. Para ter mais informações sobre este assunto, acesse o nosso blog sobre o framework MITRE ATT&CK® para Kubernetes

Segurança da infraestrutura do Kubernetes

As várias camadas do Kubernetes, desde os componentes do control plane, como o servidor de API, kube-scheduler, kube-controller-manager, etcd, até os componentes de nó de trabalho que executam as cargas de trabalho em container, representam seus próprios desafios de segurança. Cada um desses serviços deve ter a segurança configurada para proporcionar um ambiente de cluster reforçado para a execução das aplicações. Além disso, se você estiver executando o Kubernetes como um serviço autogerenciado ou usando um serviço de nuvem totalmente gerenciado, mudará a forma de proteção dos vários componentes do Kubernetes. Em ambientes autogerenciados, por exemplo, a totalidade dos componentes do control plane costumam ser responsabilidade sua, além dos componentes do nó. Ao usar um serviço Kubernetes gerenciado, a responsabilidade da segurança é compartilhada entre o provedor de serviços e você, o cliente. Esse é outro desafio.

 

A conteinerização e o Kubernetes têm várias vantagens de segurança integradas que podem auxiliar as equipes a sanar os riscos associados a problemas de segurança de containers. Por exemplo: 

  • Containers que contêm problemas de segurança descobertos no runtime são corrigidos no estágio de compilação e reimplantados, em vez de atualizados ou corrigidos com patches durante a execução. Conhecida como imutabilidade, essa função permite melhor previsibilidade no comportamento do container e detecção de comportamento anômalo. 
  • As políticas de rede podem segmentar pods ou grupos de pods enquanto os controladores de admissão podem aplicar políticas para melhorar a governança. 
  • O controle de acesso baseado em função (RBAC) pode atribuir permissões específicas aos usuários e às contas de serviço.
  • Os segredos do Kubernetes podem proteger ainda mais dados confidenciais, como chaves de criptografia.

No entanto, o Kubernetes não é uma plataforma de segurança, portanto, as equipes devem operacionalizar a avaliação de riscos e identificar as vulnerabilidades em cada camada de seu ambiente e em todas as etapas dos ciclos de vida do container e da aplicação. Para gerenciar a segurança do Kubernetes eficientemente, você deve usar os controles de segurança do Kubernetes, quando disponíveis, enquanto implementa as práticas recomendadas durante as fases de compilação, implantação e runtime.

Como líder em tecnologias de container open source, a Red Hat pode ajudar você a adquirir mais conhecimento sobre as práticas recomendadas de segurança do Kubernetes para proteger ainda mais a sua implementação de containers. Para ajudar as equipes a identificar e sanar as preocupações com a segurança do K8s com mais eficiência, a Red Hat oferece soluções do Kubernetes que incorporam a segurança ao ciclo de vida do container e permitem que as equipes de DevOps criem e implantem aplicações prontas para produção.

O Kubelinter, criado pela StackRox e adquirido pela Red Hat em 2021, é uma ferramenta de análise estática open source que identifica configurações incorretas e erros de programação nas implantações Kubernetes. O KubeLinter realiza uma série de testes para analisar as configurações do Kubernetes, identificar erros e gerar avisos para tudo o que não esteja alinhado com as práticas recomendadas de segurança. 

O Red Hat Service Interconnect vem com segurança integrada que se pode ser escalada entre clusters e nuvens por padrão, além de oferecer links de comunicação confiáveis entre os serviços. O Service Interconnect também possibilita flexibilidade de desenvolvimento entre plataformas legadas, de containers ou Kubernetes, portanto, os desenvolvedores têm mais opções para criar, modernizar e implantar suas aplicações empresariais de última geração.

O Red Hat® Advanced Cluster Security (ACS) for Kubernetes prepara as organizações para criar, implantar e executar aplicações nativas em nuvem de forma mais segura. Oferecido como uma solução SaaS autogerenciada ou totalmente gerenciada, o ACS protege as cargas de trabalho em containers em todos os principais ambientes de nuvem e híbridos. Com ele, as equipes de DevOps e InfoSec operacionalizam a segurança, reduzem os custos operacionais e aumentam a produtividade do desenvolvedor.

Leitura recomendada

ARTIGO

Stateful x stateless

Para determinar se algo é stateful ou stateless, basta considerar o tempo em que seu estado de interação é registrado e como essas informações precisam ser armazenadas.

ARTIGO

O que é Quarkus?

Quarkus é um stack Java nativo em Kubernetes que foi desenvolvido para máquinas virtuais Java (JVMs) e compilação nativa, otimizando essa linguagem especificamente para containers.

ARTIGO

O que é serverless?

Serverless é um modelo de desenvolvimento nativo em nuvem para criação e execução de aplicações sem o gerenciamento de servidores.

Leia mais sobre aplicações nativas em nuvem

Soluções Red Hat

Uma plataforma de aplicações para empresas que oferece serviços testados para lançar aplicações na infraestrutura de sua escolha.

 

Conteúdo adicional

Caso de sucesso

Banco Galicia, da Argentina, integra novos clientes corporativos em minutos com sua plataforma de NLP inteligente.

VÍDEO - THE SOURCE TV

O futuro da nuvem: a evolução das soluções cloud

Aprenda mais sobre a evolução e o futuro das soluções em nuvem com os especialistas da Red Hat

E-book

O caminho para a adoção de aplicações nativas em nuvem

Caso de sucesso

KPMG

A KPMG melhora os resultados dos serviços estaduais ao cidadão por meio de uma moderna plataforma de integração de sistemas.

Treinamentos Red Hat

Treinamento gratuito

Developing Cloud-Native Applications with Microservices Architectures