O que é Container Security?

Segurança de contêineres é o processo de implementação de ferramentas e políticas de segurança para garantir que tudo em seu contêiner esteja funcionando como pretendido, incluindo proteção de infraestrutura, cadeia de suprimentos de software, tempo de execução e tudo mais.

Segurança de Contêineres

O processo de proteção de contêineres é contínuo. Ele deve ser integrado ao seu processo de desenvolvimento, automatizado para reduzir a intervenção humana e estendido à manutenção e operação da infraestrutura subjacente. Isso significa proteger as imagens do contêiner do pipeline de construção e as camadas de host, plataforma e aplicação do tempo de execução. A implementação da segurança como parte do ciclo de vida de entrega contínua significa que sua empresa reduzirá os riscos e as vulnerabilidades em uma superfície de ataque cada vez maior.

Ao proteger contêineres, os principais focos devem ser:

  • A segurança do host do contêiner
  • Tráfego de rede do contêiner
  • A segurança da aplicação dentro do contêiner
  • Comportamento malicioso dentro da sua aplicação
  • Proteger sua stack de gestão do contêiner
  • As camadas fundamentais de sua aplicação
  • A integridade de seu pipeline de desenvolvimento

O objetivo da cibersegurança é garantir que tudo o que você criar funcione continuamente como planejado e somente como planejado.

Nomes relacionados

Conheça alguns dos nomes que as empresas estão usando para as necessidades de contêiner: Docker®, Kubernetes®, Amazon Web Services™ (AWS), e Microsoft®.

Protegendo o Docker

Antes de começar a proteger seus contêineres, você precisa conhecer os principais participantes do setor. O Docker, líder no mercado de contêineres, fornece uma plataforma para criar, gerenciar e proteger aplicações. O Docker permite que os clientes implantem aplicações tradicionais e os microsserviços mais recentes em qualquer lugar. Assim como em qualquer outra plataforma de contêineres, é necessário garantir que você tenha uma proteção adequada.  Saiba mais sobre  segurança de contêineres Docker.

Protegendo Kubernetes

O Kubernetes é o próximo grande nome que se deve conhecer. O Kubernetes fornece uma plataforma portátil, extensível e de código aberto para lidar com workloads e serviços em contêiner. Embora o Kubernetes ofereça recursos de segurança, você precisa de uma solução de segurança dedicada que o mantenha seguro; houve um aumento nos ataques a clusters Kubernetes.  Saiba mais sobre como garantir a  segurança do Kubernetes.

Amazon Web Services e segurança de contêiner

Em seguida, temos Amazon Web Services (AWS). A AWS entende a necessidade de contêineres para capacitar os desenvolvedores a entregar aplicações de forma mais rápida e consistente. É por isso que eles oferecem o Amazon Elastic Container Service (Amazon ECS), um serviço de orquestração de contêiner escalável e de alto desempenho que oferece suporte a contêineres Docker. Ele remove as dependências do gerenciamento de suas próprias máquinas virtuais e ambiente de contêiner e permite que você execute e dimensione aplicações AWS em contêineres com facilidade. No entanto, como o restante dos principais participantes acima, você precisa de segurança para obter todos os benefícios deste serviço. Saiba mais sobre a  AWS container security.

Protegendo o Microsoft Azure Container Instances

Por último, mas não menos importante, temos o Microsoft® Azure™ Container Instances (ACI). Esta solução permite que os desenvolvedores implantem contêineres na nuvem pública do Microsoft® Azure™ sem a necessidade de executar ou gerenciar uma infraestrutura subjacente. Você pode simplesmente criar um novo contêiner usando o portal Microsoft® Azure™, onde a Microsoft provisiona e dimensiona automaticamente os recursos de computador subjacentes. O Azure Container Instances permite grande velocidade e agilidade, mas precisa ser protegido para se colher adequadamente todos os benefícios. 

Agora que você conhece os principais players, vamos falar sobre como protegê-los ou acesse os links acima para mais detalhes de cada solução. Saiba mais sobre  Securing Microsoft Azure Container Instances.

Proteção de Host

A proteção do host começa com a seleção de seu sistema operacional. Sempre que possível, você deve usar um sistema operacional distribuído que seja otimizado para executar contêineres. Se você estiver usando distribuições padrão do Linux® ou Microsoft® Windows®, desabilite ou remova serviços desnecessários e proteja o sistema operacional em geral. Em seguida, adicione uma camada de ferramentas de segurança e monitoramento para garantir que seu host esteja rodando conforme o esperado. Ferramentas como controle de aplicações ou um sistema de prevenção de intrusões (IPS) são muito úteis nessa situação.

Depois que o contêiner estiver em execução na produção, ele precisará interagir com outros contêineres e recursos. Esse tráfego interno deve ser monitorado e protegido garantindo que todo o tráfego de rede de seus contêineres passe por um IPS. Isso muda como você implanta o controle de segurança. Este tráfego interno deve ser monitorado e protegido, garantindo que todo o tráfego de rede de seus contêineres passe por um IPS – isso altera a maneira como você implanta o controle de segurança.

Protegendo a aplicação no contêiner

Depois que o contêiner está em execução na produção, ele está constantemente processando dados para a sua aplicação, gerando arquivos de log, cache etc. Os controles de segurança podem ajudar a garantir que estas sejam atividades comuns e não maliciosas. Os controles antimalware em tempo real executados no conteúdo do contêiner são essenciais para o sucesso.

Um IPS desempenha um papel aqui também, em um padrão de uso chamado virtual patching. Se uma vulnerabilidade for exposta remotamente, o mecanismo IPS pode detectar tentativas de explorá-la e descartar pacotes para proteger sua aplicação. Isso economiza o tempo necessário para solucionar a causa raiz na próxima versão desse contêiner, em vez de executar uma correção de emergência.

Monitorando sua aplicação

Ao implementar sua aplicação em um contêiner, um controle de segurança de autoproteção de aplicação em tempo de execução (RASP) pode ajudar. Esses controles de segurança são executados no código da aplicação e geralmente interceptam ou conectam chamadas-chave no seu código. Além de recursos de segurança como monitoramento de Linguagem de Consulta Estruturada (SQL), verificação e correção de dependências, verificação de URL e outros controles, o RASP também pode resolver um dos maiores desafios em segurança: identificação de causa raiz.

Ao serem posicionados no código da aplicação, esses controles de segurança podem ajudar a ligar os pontos entre um problema de segurança e a linha de código que o criou. É difícil competir com esse nível de consciência, o que dá uma grande força para sua postura de segurança.

Protegendo seu stack de gestão de contêineres

Do ponto de vista da segurança, o stack de gerenciamento que ajuda a coordenar seus contêineres geralmente é ignorado. Qualquer organização que leva a sério a implantação de contêineres inevitavelmente acabará com duas peças críticas de infraestrutura para ajudar a gerenciar o processo: um registro de contêiner de privacidade como Amazon ECS e Kubernetes para ajudar a orquestrar a implantação de contêiner.

A combinação de um registro de contêiner e Kubernetes permite que você aplique automaticamente um conjunto de padrões de qualidade e segurança para seus contêineres antes – e durante – a reimplantação em seu ambiente.

Os registros simplificam o compartilhamento de contêineres e ajudam as equipes a desenvolver o trabalho umas das outras. No entanto, para garantir que cada contêiner atenda a seus padrões de desenvolvimento e segurança, você precisa de uma verificação automatizada. A varredura de cada contêiner em busca de vulnerabilidades conhecidas, malware e segredos expostos antes que ele seja disponibilizado no registro ajuda a reduzir problemas posteriores.

Além disso, você vai querer ter certeza de que o registro está bem protegido. Ele deve ser executado em um sistema robusto ou em um serviço de nuvem de renome. Mesmo no cenário de serviço, você precisa entender o modelo de responsabilidade compartilhada e implementar uma forte abordagem hierarquizada para acessar o registro.

No lado da orquestração, depois que o Kubernetes está em execução e implantado em seu ambiente, ele oferece um número significativo de vantagens que ajudam a garantir que suas equipes obtenham o máximo de seu ambiente. O Kubernetes também oferece a capacidade de implementar vários controles operacionais e de segurança, como políticas de segurança de rede e de Pods (recursos em nível de cluster), permitindo impor várias opções para atender a seu perfil de riscos.

Criando sua aplicação em uma base segura: varredura de contêineres

Você precisa de um workflow de verificação de imagens de contêineres para garantir que os contêineres usados como blocos de desenvolvimento sejam confiáveis e seguros contra ameaças comuns. Esta classe de ferramentas fará a varredura do conteúdo de um contêiner, procurando por problemas antes que eles sejam usados como um bloco de construção para sua aplicação. Ele também executará um conjunto final de verificações antes de um contêiner ser implantado na produção.

Quando implementada corretamente, a varredura se torna uma parte natural do seu processo de codificação. É um processo totalmente automatizado que pode identificar rápida e facilmente quaisquer problemas causados ao desenvolver sua aplicação e seus contêineres. 

Garantindo a integridade de seu pipeline de desenvolvimento

Os invasores começaram a mudar seus ataques para estágios anteriores do seu pipeline de integração e entrega contínuas (CI/CD). Se um invasor comprometer com sucesso seu servidor de compilação, repositório de código ou estações de trabalho de desenvolvedor, eles podem residir em seu ambiente por muito mais tempo. Você precisa de um conjunto sólido de controles de segurança atualizados.

Implemente uma estratégia de controle de acesso forte em todo o pipeline, começando em seu repositório de código e estratégia de ramificação, estendendo-se até o repositório de contêiner. Você precisa garantir a implementação do princípio do menor privilégio – fornecer apenas o acesso necessário para realizar as tarefas exigidas – e auditar esse acesso regularmente.

Amarrando tudo

Proteger seus contêineres requer uma abordagem abrangente de segurança. Você deve garantir que está atendendo às necessidades de todas as equipes de sua organização. Certifique-se de que sua abordagem possa ser automatizada para se adequar a seus processos de DevOps e que você possa cumprir prazos e entregar aplicações rapidamente, protegendo cada grupo. A segurança não pode mais ser deixada de fora ou aparecer no último minuto com demandas para mudar seu workflow. Construir controles de segurança confiáveis e processos automatizados desde o início aborda questões de segurança e torna mais fácil preencher a lacuna entre as equipes. 

Pesquisa relacionada

Artigos Relacionados