Zero-Trust Security em ambientes Kubernetes

zero-trust-security-em-ambientes-kubernetes

Caso não tenha prestado atenção na evolução da infraestrutura de TI corporativa, pode ter perdido a repentina ascensão do Kubernetes (Orquestrador de contêineres) a uma posição de domínio absoluto no mercado de soluções em TI.

Podemos atribuir a rápida ascensão do kubernetes, a uma confluência de tendências. A primeira e mais previsível delas é sem dúvida o amadurecimento da nuvem pública, com ampla aceitação pelas organizações.

A segunda tendência que contribuiu para essa ascensão do Kubernetes foi a cultura DevOps. Que trouxe para as equipes técnicas melhores maneiras de entregar e executar software, de forma ágil, contando com um amplo conjunto de ferramentas que automatiza diversas tarefas das equipes de operações, segurança e desenvolvimento de software.

Com a adoção do modelo de “DevOps” passamos a envolver a segurança das informações mais cedo nos projetos, já na fase de design de um aplicativo, assim podemos resolver e propor melhorias na segurança em todo ciclo do projeto de software.

Um dos conceitos de segurança da informação que está em alta nos modelos ágeis, devido a era de aplicativos em nuvem é o Zero-Trust “confiança zero”, mas o que exatamente significa esse termo tão em moda.

Definindo Zero-Trust

Gustavo Sales, Gerente de Operações Estruturadas

“Confiança zero” é um termo apresentado pela primeira vez por John Kindervag em 2010 para descrever a necessidade de afastar os líderes de segurança de uma abordagem centrada no perímetro e orientá-los para um modelo que depende da verificação contínua de confiança em cada dispositivo, usuário e aplicação.

Ele criou uma abordagem de verificação de segurança, alterando a forma “confiar e verificar” para “nunca confiar e verificar”. Na prática, esse modelo considera todos os recursos como externos e verifica continuamente a confiança antes de conceder o acesso necessário.

Em resumo Zero-trust é bem mais amplo que o modelo tradicional de segurança deixando de ter uma política voltada apenas para controles de IPs e portas em firewall tradicionais de perímetro de borda. E passando a focar na aplicação aproveitando as micro segmentação e os perímetros granulares em ambiente de nuvem e implementação DevOps.

Pilares do Zero-Trust

Para uma abordagem mais segmentada do modelo de Zero-Trust security, podemos dividi-lo em cinco pilares.

Device Trust:  É preciso conhecer seus dispositivos antes de confiar neles. Ter um inventário especificando os principais dispositivos que são controlados por sua empresa é fundamental para aplicação de monitoramento e controle.

Através do monitoramento consolidado podemos determinar através de políticas de segurança pré-definidas e por meio de um gerenciamento unificado de endpoint, quais os dispositivos são confiáveis.

Com o monitoramento integrado a tecnologia de detecção e repostas nos endpoint, podemos melhorar ainda mais a segurança de acesso dos dispositivos, permitindo a detecção de possíveis atividades mal-intencionadas.

User Trust: A autenticação baseada em senha tem se mostrado muitas vezes ineficiente. Faz parte do Zero-trust, métodos de autenticação mais seguros, constituídos de mecanismos de acesso condicional forte, que incluem autenticação sem senha, por exemplo: biometria, certificados, autenticação multifator (MFA).

Session Trust: Outro fator chave de Zero-trust é o conceito de acesso com privilégios mínimos. A ideia é que um usuário ou sistema deva ter acesso apenas aos recursos que são especificamente necessários para realizar a tarefa em questão. Entre as soluções tecnológicas que apoiam a implementação de acesso com privilégio mínimos, incluem: microssegmentação, criptografia de transporte e proteção de sessão. Um exemplo é a aplicação de criptografia nas redes internas de um cluster, onde são executados os micro serviços de uma aplicação.

Application Trust:  Com a modernização da autenticação por meio de logon único para aplicativos (SSO) podemos permitir que os colaboradores acessem com segurança e sem interrupções qualquer aplicativo ou serviço a partir de qualquer dispositivo. Dessa forma é possível criar um espaço de trabalho digital seguro aplicando os conceitos de Zero-Trust.

Para aplicativos tradicionais que não permite uma forma de logon centralizado podemos adotar proteção na forma de isolamento. Para isso é possível executar os aplicativos tradicionais em um ambiente virtual, geralmente executados em uma estrutura VDI (Virtual Desktop Infrastructure). Dessa forma criamos uma ponte entre a arquitetura tradicional com arquitetura baseada em confiança zero, mantendo o controle centralizado em conformidade com as políticas de segurança.

Data Trust: Enfim, tudo são dados, sendo a principal razão pela qual as empresas investem em segurança forte.  Mesmo podendo contar com tecnologias de prevenção de perda de dados DLP(Data Loss Prevention), o fluxo de dados precisa de visibilidade constante no nível da aplicação. Observando o comportamento de todo o fluxo de dados devemos aprender: quais aplicativos, qual a frequência, origem de acesso e tipos de conexões fazem uso das informações. Por meio deste mapeamento, é possível propor maneiras mais efetivas de reforçar a política de segurança para garantir a integridade e o não vazamento dos dados.

Como é aplicado o conceito de Zero-Trust com uso de DevOps, Micro Serviços e Kubernetes.

Fernando Santos, Administrador de Redes da Logo IT

Antes de iniciar vamos relembrar o conceito de DevOPs. Que é uma cultura que incentiva a colaboração entre todas as partes interessadas, incluindo equipes de desenvolvimento, segurança e operações para melhoria dos processos por meio da automação levando a evolução da qualidade e a velocidade da entrega de software.

A palavra-chave aqui são “partes interessadas”, pois julgamos a segurança da informação um dos ativos mais importante nas soluções que implantamos, especialmente as da nuvem. O envolvimento da equipe de projetos ágeis desde o início em qualquer decisão de design de arquitetura e aplicativo, garante que não tenhamos obstáculos de última hora, já que o modelo de DevOps nos proporciona aspectos de “entrega contínua” das nossas soluções.

Outro ponto importante é o processo de automação. Quando implementamos as políticas de segurança também como código, ganhamos em agilidade no processo, bem como novas formas de análise do comportamento da aplicação antes de entregarmos nos ambientes de produção. Com isso conseguimos abranger as principais características do modelo de segurança Zero-Trust e incorporando controles de segurança inerentes não apenas a aplicação em si, mas também em todo o processo de integração contínua e entrega contínua (CI/CD).

Ao entregarmos uma aplicação, ao cluster Kubernetes, aumentamos a segurança do tráfego interno dos aplicativos com a utilização da servicemesh, uma maneira de controlar como diferentes componentes de uma aplicação compartilham dados entre si. Esse processo apresenta uma diferença referente aos outros sistemas de gerenciamento de comunicação, a servisse mesh, segue os princípios do modelo Zero-Trust criando uma camada de infraestrutura dedicada incorporada diretamente a uma aplicação.

Embora existam inúmeras formas disponíveis de aplicação de Zero-Trust para proteger uma rede corporativa, há centenas de outras conexões dentro de um ambiente de micro serviços que também precisam de proteção. Uma service mesh (malha de serviço em tradução literal) fornece recursos de segurança essenciais como capacidade de otimização de tempo médio de detecção (MTTD) e tempo médio para restaurar (MTTR), métricas muito importantes, usadas para descrever o tempo necessário entre descobrir um problema e restaurar um serviço, além de autenticação, autorização,  controle e monitoramento dos micro serviços em um cluster Kubernetes.

Uma malha de serviço (service mesh) cria uma camada de rede virtualizada adicionando controles no tráfego de entrada e saída do perímetro que facilitam o gerenciamento e descoberta de serviços em um cluster Kubernetes. Na proteção de comunicação cada pod (menor unidade em um cluster Kubernetes) que possui uma instância de proxy para si, onde é aplicado certificados TLS utilizados para garantir a identidade de conexões a outros serviços. A service mesh além de criptografar todas as transmissões garante a autenticidade das conexões oferecendo suporte a diferentes fontes de autorização podendo ser integrada a um serviço de single sign-on (SSO). Com todos esses controles é possível aplicar a filosofia Zero-Trust, de “não confie em ninguém” mantendo um ambiente seguro e escalável para as nossas aplicações.

Tentamos demonstrar de forma simplificada a aplicação do conceito de segurança baseado em padrões de arquitetura de confiança zero, no contexto do desenvolvimento de software passando pela etapa de entrega contínua e execução da aplicação em um ambiente de Kubernetes em nuvem. Esse vem sendo um padrão bastante utilizado pela equipe Logo IT, na maioria dos nossos projetos, com foco em nossos clientes buscamos constantemente soluções tecnológicas que possam trazer mais inovação, segurança, qualidade e agilidade agregando valor aos produtos e serviços que são oferecidos por nossa empresa, Logo IT nossa missão é ajudar sua empresa.

Por Gustavo Sales, Gerente de Operações Estruturadas e Fernando Santos, Administrador de Redes da Logo IT 

Acesse a versão completa
Sair da versão mobile