#1 Líder Global em Resiliência de Dados
Orientações da Veeam para os clientes afetados pela atualização de conteúdo da CrowdStrike

O que é segurança de contêiner?

A segurança de contêineres refere-se ao conjunto de ferramentas e processos de segurança usados para proteger cargas de trabalho de contêineres. Isso inclui a proteção de imagens usadas em contêineres, o próprio contêiner e plataformas de orquestração de contêineres, como Kubernetes, AWS ECS e Red Hat OpenShift Container Platform. Embora os contêineres incorporem certos recursos de proteção, eles permanecem vulneráveis a ataques. Outros aspectos da Segurança de Contêiner a serem considerados incluem a criação de contêineres seguros e o estabelecimento de um ambiente de tempo de execução protegido. Além de proteger ativamente os contêineres, é importante adotar processos robustos de backup e recuperação para o Kubernetes e outros serviços de contêineres.

Contêineres

Um contêiner é uma unidade padrão de software que empacota o código e todas as suas dependências, para que a aplicação seja executada de forma rápida e confiável de um ambiente de computação para outro. Os contêineres compartilham o kernel do sistema operacional da máquina e, portanto, não exigem um sistema operacional por aplicação, aumentando a eficiência do servidor e reduzindo os custos de servidor e licenciamento. Os desenvolvedores usam essa capacidade para executar microsserviços e outras aplicações dentro das paredes de um contêiner virtual, isoladas de outras aplicações em um servidor ou computador. Ao contrário das máquinas virtuais (VM), os contêineres são portáteis e podem ser executados em qualquer ambiente que tenha um serviço de daemon que ofereça suporte ao tipo de contêiner. Embora o Docker seja a tecnologia de contêiner mais popular, existem vários outros tipos, incluindo o original contêiner LXC Linux.

Plataformas de orquestração

Embora os contêineres possam ser executados de forma independente, é mais comum usar plataformas de software específicas para gerenciar e configurar contêineres, especialmente se estiver trabalhando com vários contêineres. Exemplos comuns dessas plataformas incluem Kubernetes, AWS Elastic Container Service e Docker Swarm.

Por que a segurança do contêiner é importante?

Embora os contêineres isolem aplicações e incorporem um grau de segurança, eles ainda são vulneráveis a ataques de segurança cibernética. Os pontos de entrada incluem imagens comprometidas, controle de acesso fraco e isolamento deficiente entre contêineres e software host. Outra maneira comum de hackers acessarem contêineres é por meio de imagens corrompidas de terceiros usadas como blocos de construção de contêineres. Uma imagem de contêiner é um arquivo executável estático que contém bibliotecas, ferramentas e software necessários para criar um contêiner e geralmente é composto de várias camadas sobre uma imagem base. Uma imagem hackeada usada em vários contêineres pode causar sérios danos.

Outro fator é onde e como o contêiner armazena seus dados. Inicialmente, os contêineres eram stateless – executados sem armazenar dados de estado e sem deixar rastros quando fechados. O sistema operacional host armazenava dados persistentes. Mas como os desenvolvedores usam contêineres para compartimentalizar aplicações legadas e outras aplicações não desenvolvidas para conteinerização, há uma necessidade de armazenar dados de estado (statefulness). Embora o Docker, Kubernetes e outras empresas ofereçam maneiras de gerenciar contêineres stateful, é essencial fornecer maneiras de recuperar contêineres stateful após uma falha no sistema por meio de backups contínuos.

Componentes de segurança de contêiner

A segurança do contêiner pode ser dividida em vários componentes, incluindo desenvolvimento, ambiente de compilação, ambiente de tempo de execução e orquestração.

Desenvolvimento de Containers

Você deve tomar muito cuidado para verificar se o software e as imagens usadas no desenvolvimento de contêineres estão bem escritos e não contêm vulnerabilidades, defeitos de configuração ou malware. Os registros de imagem devem ser seguros e conter apenas imagens confiáveis. Sempre use ferramentas de varredura de contêiner para verificar vulnerabilidades e evitar o armazenamento de imagens obsoletas ou desatualizadas.

Ambiente de compilação de contêineres

O ambiente de compilação deve ser totalmente seguro. Os desenvolvedores devem usar ferramentas automatizadas para verificar os componentes usados e, de preferência, adotar pipelines de CI/CD automatizados que minimizem o risco e aumentem a visibilidade.

Ambiente de tempo de execução

O ambiente de tempo de execução deve ser protegido adequadamente com protocolos rigorosos de controle de acesso. O uso de políticas de segurança automatizadas para verificar violações e vulnerabilidades pode ajudar a minimizar os riscos de segurança. Os próprios contêineres devem ser executados com o número mínimo de permissões necessárias, reduzindo a oportunidade de um invasor aproveitar um contêiner com privilégios elevados para obter o controle do host.

Orquestração e Infraestrutura

Orquestrar contêineres em escala usando plataformas como o Kubernetes é um desafio. É indispensável garantir que o sistema operacional host esteja seguro e sempre seguir as melhores práticas usando ferramentas fornecidas pela plataforma de orquestração. Da mesma forma, certifique-se de que o servidor e a infraestrutura de rede estejam seguros.

Benefícios da segurança de contêineres

Os benefícios de uma boa segurança de contêiner se estendem por todos os aspectos do desenvolvimento e implantação de contêineres. Uma segurança eficaz de contêineres reduz o risco minimizando as superfícies de ataque. Ela melhora a transparência, aumenta a integridade do pipeline e melhora a segurança e a administração do sistema.

Reduz a superfície de ataque

Boas políticas de segurança de contêiner reduzem a superfície de ataque. Essas políticas limitam os pontos de acesso em potencial, mantendo as interfaces simples e pequenas. As políticas de privilégios mínimos que restringem o acesso limitam o potencial de violações de segurança, e cada contêiner tem seu limite de segurança exclusivo.

Aumenta a transparência

A relativa simplicidade dos contêineres permite que os usuários analisem e verifiquem os conteúdos dos contêineres, especialmente em comparação com as máquinas virtuais. A digitalização de imagens e o uso de imagens confiáveis ajudam a garantir que as imagens estejam limpas.

Desenvolve integridade de pipeline

Fortes controles de pipeline de CI/CD impedem que hackers acessem registros, estações de trabalho e servidores de compilação. Esses devem ser complementados por auditorias regulares e verificação automatizada de vulnerabilidades. Os administradores devem limitar o acesso ao que é suficiente para permitir que os usuários concluam suas tarefas.

Melhora a segurança geral

A ênfase na proteção de contêineres e sua infraestrutura de suporte atua como um catalisador para melhorias gerais de segurança de TI. Os exemplos incluem ferramentas de tempo de execução e detecção de vulnerabilidades configuradas especificamente para contêineres. Esses, juntamente com o software padrão de detecção de intrusões e outras ferramentas, levam a uma melhoria geral na segurança.

Simplifica a administração

Segurança eficaz de contêineres significa que é mais fácil gerenciar contêineres. Os desenvolvedores têm menos preocupações ao dimensionar aplicações de contêiner. Outro benefício de uma boa segurança de contêineres é a redução do tempo e do esforço necessários para gerenciar ambientes com contêineres.

Como proteger um contêiner

A proteção de contêineres é um processo em várias etapas que inclui a proteção da imagem do contêiner, a proteção do ambiente de rede e a proteção do pipeline de compilação. Outros aspectos a considerar incluem a proteção de bancos de dados baseados na nuvem e a adoção de estratégias de backup em contêineres.

Verificar imagens de contêiner

Selecione cuidadosamente imagens de contêiner, particularmente imagens base, de fontes e registros de contêineres respeitáveis. Certifique-se de que você possa acessar o código-fonte do componente. Mesmo assim, é melhor testar minuciosamente essas imagens para encontrar vulnerabilidades. O mesmo conceito se aplica ao adicionar aplicações ou alterar configurações.

Proteja a infraestrutura do host de contêiner

Sempre use um sistema operacional host de contêiner que ofereça um alto grau de isolamento de contêiner. Revise as configurações padrão para eliminar pontos de ataque, como ativar os recursos de controle de acesso do Kubernetes. Use ferramentas de monitoramento de segurança de terceiros para monitorar o ambiente do host.

Proteja o ambiente de rede de contêiner

Use sistemas de filtragem e prevenção de intrusões da Web para identificar e impedir ataques maliciosos e conteúdo da Internet. Abra apenas as portas exigidas pela aplicação e use Transport Layer Security (TLS) para criptografar dados. Monitore internamente o tráfego de rede entre contêineres para detectar atividades incomuns que podem significar que um invasor ganhou uma posição. Só permita a conectividade entre contêineres quando for absolutamente necessário.

Bloqueie a pilha de gerenciamento

Controle cuidadosamente as permissões em sua plataforma de hospedagem de contêineres. Ative os recursos da plataforma que aprimoram a segurança da rede, como restringir o tráfego entre os Pods do Kubernetes. Use um repositório separado e fortalecido para melhorar a segurança do repositório e protegê-lo contra ataques.

Automatize e proteja a implantação de pipeline de CI/CD

Proteja seu servidor de compilação, estações de trabalho e repositório de código para evitar que invasores ganhem uma posição no pipeline de entrega. Use políticas de controle de acesso de privilégios mínimos e faça auditoria regularmente. Automatize a implantação do pipeline e use a verificação de vulnerabilidades para sinalizar problemas de segurança.

Adote estratégias robustas de backup em contêineres

Faça backup contínuo dos seus contêineres e dados e teste regularmente sua capacidade de restaurar cargas de trabalho. Esteja ciente de que poucos contêineres são genuinamente stateless, então garanta que suas políticas de backup incluam backups de contêineres e componentes de banco de dados. Esclareça quem é o responsável pelas estratégias de backup de contêineres.

Melhores práticas para segurança de contêineres

O enorme crescimento na adoção de contêineres, particularmente na nuvem, significa que há um aumento significativo no risco de segurança cibernética. Para minimizar esse risco, é essencial implementar as melhores práticas para segurança de contêineres, incluindo:

  • Use imagens confiáveis. Verifique todas as imagens em busca de vulnerabilidades; obtenha imagens apenas de fontes confiáveis e sempre verifique a procedência da imagem.
  • Use contêineres leves e de curta duração. Aprimore a segurança do contêiner mantendo o número mínimo de arquivos, restringindo sua vida útil ao menor período possível e substituindo os contêineres regularmente.
  • Crie um ambiente de execução seguro. Mantenha um ambiente seguro executando contêineres em uma plataforma segura, ativando recursos e protocolos de segurança da plataforma e operando um registro seguro.
  • Adote um controle de acesso robusto. Limite o acesso de contêineres aos recursos de computação ao que for necessário, use o controle de acesso de usuário baseado em função e restrinja o acesso de administrador apenas à criação de infraestrutura.
  • Não misture aplicações de contêineres. Mantenha as aplicações de missão crítica separadas dos hosts de contêineres e agrupe contêineres de acordo com sua função e propósito em hosts separados para minimizar os danos colaterais em caso de violação de segurança.
  • Adote o monitoramento contínuo. Use aplicações de monitoramento contínuo, como um controle de autoproteção de aplicação de tempo de execução (RASP) e ferramentas de tempo de execução e vulnerabilidade de contêineres.

Como começar com a Veeam

O rápido crescimento de aplicações de contêineres aumenta consideravelmente as possíveis vulnerabilidades a ataques virtuais. Tenha em mente que os contêineres representam uma grande mudança de infraestrutura e que as soluções convencionais de segurança podem não fornecer proteção adequada. Por isso, é crucial investir em soluções de segurança e melhores práticas que visem aumentar a segurança dos contêineres. Além disso, você deve sempre usar um software de backup voltado especificamente para a infraestrutura de contêineres. A Veeam oferece diversas plataformas de gerenciamento de dados criadas especificamente e fáceis de usar, que incluem recursos como:

  • Recursos flexíveis de reversão e restauração
  • Recursos de recuperação de desastres
  • Fácil escalabilidade
  • Recursos na nuvem e no local

Eles incluem o Veeam Kasten for Kubernetes, que é uma solução nativa do Kubernetes para backup, recuperação de desastres e a mobilidade de aplicações em diferentes clusters, infraestruturas e distribuições do Kubernetes.

Vamos começar

Cinco razões

Assista a uma demonstração

Saiba como você pode obter resiliência de dados contra qualquer ameaça com a Veeam

Cinco razões

Entre em contato

Obtenha ajuda para selecionar a solução certa para a sua empresa

Cinco razões

Fóruns de P&D da Veeam

Obtenha ajuda para seus produtos e softwares da Veeam