A segurança de contêineres é a prática de proteger todos os componentes de cargas de trabalho em contêineres, incluindo imagens de contêineres e repositórios de imagens, o conteúdo de contêineres em execução e a infraestrutura subjacente de contêineres.
Como hoje existe uma grande variedade de ferramentas e plataformas para implantação de contêineres, os processos específicos que influenciam a segurança dos contêineres variam de um ambiente para outro. No entanto, os componentes fundamentais da segurança dos contentores são os mesmos, independentemente das tecnologias específicas envolvidas.
demode segurança de contêiner Guia de segurança de contêineres
Como os contêineres oferecem uma maneira flexível e portátil de executar aplicativos, eles se tornaram uma solução popular para implantação de software. No entanto, os contêineres também introduzem novas camadas nos pipelines de entrega de software e nas pilhas de hospedagem, como:
Esses componentes adicionam complexidade aos ambientes de software e aumentam sua superfície de ataque. A segurança de contêineres é importante para garantir que as organizações tenham defesas para proteger esses componentes contra riscos e ameaças, ao mesmo tempo que defendem outros recursos – como os sistemas operacionais executados em servidores que hospedam contêineres – que existem tanto em ambientes de hospedagem em contêineres quanto em ambientes não-contêinerizados. .
Além do fato de que a segurança dos contêineres exige o gerenciamento de uma superfície de ataque maior, a segurança dos contêineres é um desafio porque os contêineres restringem a visibilidade direta que os desenvolvedores, engenheiros de TI e analistas de segurança têm das cargas de trabalho. Como resultado, detectar e reagir a ameaças pode ser mais desafiador.
Por exemplo, se os analistas realizarem monitoramento de segurança com base apenas nas métricas e logs disponíveis no sistema operacional que hospeda os contêineres, eles poderão não detectar atividades anômalas dentro de um contêiner porque as métricas e os logs produzidos pelos próprios contêineres normalmente não são gerenciados pelo operacional. sistema. Para obter visibilidade do que está acontecendo dentro de cada contêiner, os engenheiros precisam de ferramentas de segurança que sejam capazes de romper a camada de abstração que separa os contêineres de seus servidores host.
Nem todos os ambientes conteinerizados incluem os mesmos tipos de ferramentas. Por exemplo, é possível executar contêineres sem usar um orquestrador. Isso significa que os componentes da segurança de contêineres podem variar dependendo de quais ferramentas e plataformas específicas uma equipe usa para gerenciar seus contêineres.
Dito isto, na maioria dos casos, a segurança dos contentores inclui os seguintes componentes principais:
Se os invasores violarem o registro que hospeda imagens de contêiner, eles poderão inserir código malicioso nelas, o que, por sua vez, espalhará malware para qualquer ambiente que execute contêineres com base em imagens contaminadas.
Para se protegerem contra este risco, os engenheiros devem implementar controlos de acesso rigorosos que impeçam o acesso não autorizado ao conteúdo dos registos de contentores. Eles também devem monitorar os registros em busca de padrões de acesso incomuns que possam ser um sinal de atividade maliciosa.
Os invasores podem explorar a vulnerabilidade nos tempos de execução dos contêineres para assumir o controle dos contêineres e possivelmente até dos servidores que os hospedam. As organizações podem gerenciar esse risco garantindo o gerenciamento da segurança do contêiner Docker (ou a segurança de qualquer tempo de execução que usem), mantendo o software de tempo de execução do contêiner corrigido e atualizado.
A configuração do ambiente que os administradores aplicam quando executam contêineres pode ter implicações de segurança. Por exemplo, executar contêineres como root geralmente não é uma prática recomendada porque lhes dá permissões elevadas que aumentam o dano potencial causado por uma violação. Proteger as configurações que se aplicam aos ambientes que hospedam contêineres é um componente essencial da segurança dos contêineres.
Para cargas de trabalho conteinerizadas que usam orquestradores, como o Kubernetes, é crucial manter a plataforma de orquestração livre de vulnerabilidades conhecidas. Além disso, os administradores devem seguir as práticas recomendadas ao configurar e gerenciar o orquestrador para se defender contra ameaças. Na segurança de contêineres do Kubernetes, por exemplo, os administradores devem usar a estrutura integrada de controle de acesso baseado em função (RBAC) para restringir o acesso aos recursos.
Aplicativos conteinerizados com estado dependem de recursos de armazenamento. Proteger os dados hospedados nesse armazenamento é outro componente importante da segurança do contêiner.
Os contêineres dependem da rede para se comunicarem entre si e para aceitar e receber solicitações externas. Os engenheiros devem, portanto, proteger a rede interna e externa, garantindo que estejam configuradas corretamente, bem como monitorando-as em busca de atividades incomuns.
Dependendo de onde os contêineres estão hospedados, determinadas soluções ou práticas adicionais de segurança de contêineres podem estar disponíveis.
Por exemplo, as equipes que usam o Docker podem gerenciar alguns aspectos da segurança do contêiner Docker por meio do scanner de segurança integrado da plataforma para detectar dependências maliciosas dentro das imagens do contêiner. No Kubernetes, a estrutura nativa do RBAC pode ajudar a proteger cargas de trabalho em contêineres.
Da mesma forma, ao executar contêineres por meio de um serviço gerenciado como Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE) ou Elastic Kubernetes Service (EKS), as organizações podem optar por aproveitar as vantagens das ferramentas de segurança integradas nas plataformas de cada um. provedor de nuvem do serviço para ajudar a monitorar e proteger suas cargas de trabalho.
As soluções de segurança de contêineres que uma equipe usa para proteger contêineres devem fornecer os seguintes recursos principais:
Para a maioria das cargas de trabalho em contêineres, as práticas recomendadas a seguir podem ajudar a minimizar o risco de ataque e maximizar a capacidade de uma equipe de detectá-lo:
Os administradores devem seguir o princípio do menor privilégio ao configurar os componentes em uma pilha de hospedagem em contêiner. Privilégio mínimo significa restringir as permissões ao nível mais baixo necessário.
Evite baixar imagens de contêiner de registros não confiáveis, que têm maior probabilidade de conter malware. Sempre que possível, escolha registros mantidos por organizações confiáveis e bem estabelecidas.
Quando se trata de segurança de contêineres, verificar e monitorar apenas algumas camadas de um ambiente não é suficiente. As organizações devem monitorar continuamente todos os componentes – desde registros e imagens de contêineres até ambientes de tempo de execução, até a infraestrutura subjacente e tudo mais. O monitoramento abrangente maximiza a capacidade dos administradores de detectar riscos.
Embora a superfície de ataque para contêineres seja inerentemente maior do que para um aplicativo não conteinerizado, as equipes podem reduzir sua superfície de ataque evitando a execução de componentes ou camadas desnecessárias. Por exemplo, os contêineres que os desenvolvedores lançam para fins de teste devem ser encerrados assim que o teste for concluído.
Quanto menos conteúdo existir dentro de uma imagem de contêiner, menor será o risco de vulnerabilidade. Por isso, prefira imagens minimalistas, ou seja, aquelas que incluem apenas as bibliotecas, pacotes de software e outros componentes necessários para rodar um aplicativo.
A chave para a segurança eficaz dos contêineres é integrar a segurança em todos os processos e recursos dos quais os contêineres dependem. O CloudGuard for Workload Protection facilita isso, fornecendo uma solução abrangente de segurança de contêineres que oferece:
Saiba mais lendo o guia Container Security ou solicitando uma demogratuita.