A 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 conforme o esperado, incluindo a proteção da infraestrutura, da cadeia de fornecimento de software, do tempo de execução e de tudo o que está entre eles.
Índice
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. Implementar segurança como parte do ciclo de vida de entrega contínua significa que sua empresa mitigará riscos e reduzirá vulnerabilidades em uma Superfície de Ataque. em constante crescimento.
Ao proteger contêineres, os principais focos devem ser:
O objetivo da cibersegurança é garantir que tudo o que você criar funcione continuamente como planejado e somente como planejado.
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®.
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.
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.
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.
Por último, mas não menos importante, temos o Microsoft Azure Container Instances (ACI). Esta solução capacita os desenvolvedores a implantar contêineres na Nuvem Pública Microsoft® Azure™ sem a necessidade de executar ou gerenciar uma infraestrutura subjacente. Você pode simplesmente iniciar um novo contêiner usando o portal Microsoft® Azure™, onde a Microsoft provisiona e dimensiona automaticamente os recursos de computação subjacentes. O Azure Container Instances oferece grande velocidade e agilidade, mas precisa ser protegido para aproveitar corretamente todos os benefícios. Saiba mais sobre como proteger o Microsoft Azure Container Instances.
Agora que você conhece os principais players, vamos ver como protegê-los.
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®, será necessário garantir que desative ou remova serviços desnecessários e reforce 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.
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.
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 dentro do código do seu aplicativo e frequentemente interceptam ou conectam chamadas-chave dentro do 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: a identificação da 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.
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, uma vez que o Kubernetes está em execução e implantado dentro do seu ambiente, ele oferece um número significativo de vantagens que ajudam a garantir que suas equipes aproveitem ao máximo o seu ambiente. O Kubernetes também fornece a capacidade de implementar vários controles operacionais e de segurança, como pods (recursos em nível de cluster) e políticas de segurança de rede, permitindo que você aplique várias opções para atender à sua tolerância ao risco.
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.
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.
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. Trend Vision One™ – Container Security permite que você configure políticas de segurança e conjuntos de regras de varredura em tempo de execução, monitore detecções de vulnerabilidades e eventos de segurança, e use o scanner de artefatos para varredura pré-runtime de seus clusters Kubernetes. 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.
Fernando Cardoso é o Vice-Presidente de Gerenciamento de Produto na Trend Micro, com foco no mundo em constante evolução de IA e cloud. Sua carreira começou como Network and Sales Engineer, onde aprimorou suas habilidades em datacenters, cloud, DevOps e Cibersegurança — áreas que continuam sendo sua paixão.
Containers são uma tecnologia de virtualização que empacota uma aplicação e suas dependências (código, runtime, ferramentas de sistema, bibliotecas e configurações) em uma única unidade portátil.
Os acrônimos mais comuns usados em segurança de containers são exposições e vulnerabilidades comuns (CVEs) e integração/entrega contínua (CI/CD).
As melhores maneiras de proteger um container são: a) proteger o que está dentro do container; b) adotar uma abordagem de segurança Zero Trust; e c) monitorar continuamente o ambiente.
A segurança de containers utiliza uma variedade de ferramentas e tecnologias para proteger aplicações containerizadas em todas as etapas de seu ciclo de vida — do desenvolvimento à execução.
As três etapas básicas para proteger um container são: proteger o ambiente de desenvolvimento; proteger os hosts subjacentes; e proteger a aplicação dentro do container.
Os quatro Cs da segurança de containers Kubernetes são cloud, containers, clusters e código. Juntos, esses fornecem uma abordagem em quatro etapas para proteger um ambiente de containers Kubernetes.
As melhores práticas para segurança de containers incluem proteger o host do container, proteger a aplicação dentro do container e monitorar o ambiente de runtime.
A segurança de containers envolve várias ferramentas diferentes, incluindo scanners de imagem, ferramentas de avaliação de vulnerabilidades, ferramentas de configuração e Compliance, ferramentas de rede e ferramentas de runtime.
A melhor maneira de evitar desvios na segurança de containers é monitorar continuamente a aplicação que usa o container depois que ele estiver ativo e em execução.
Os blocos básicos da segurança de containers são proteger o desenvolvimento, proteger os hosts, proteger as imagens e aplicações, e monitoramento de runtime.