Visão geral
A segurança de containers envolve definir e seguir práticas de criação, implantação e ambiente de execução que protegem um container Linux, das aplicações suportadas à infraestrutura da qual dependem.
Conforme as organizações migram para padrões de design de microsserviços e tecnologias de container, como Docker e Kubernetes, as equipes de segurança são desafiadas a desenvolver soluções de segurança de container que facilitem essas mudanças de infraestrutura. A segurança dos containers precisa ser integrada e contínua, além de oferecer suporte à estratégia geral de segurança da empresa. Em geral, a segurança contínua de containers na empresa está relacionada à:
- Proteção da aplicação e do pipeline de containers.
- Proteção da infraestrutura e dos ambientes de implantação de containers.
Incorpore segurança ao pipeline dos containers
Colete as imagens
Os containers são criados a partir de camadas de arquivos. A comunidade dessa tecnologia costuma chamar esses arquivos de imagens de container.
Uma ferramenta como o Buildah permite criar imagens compatíveis com OCI e Docker a partir do zero, com ou sem uma imagem de container inicial existente.
As imagens de container são o formato padrão de disponibilização de aplicações em ambientes nativos em nuvem, mas até mesmo as empresas nativas em nuvem misturam as cargas de trabalho entre provedores de nuvem. A solução de segurança de containers ideal deve oferecer suporte a todas as arquiteturas.
A imagem base, ou imagem dourada, é a mais importante para a segurança, porque ela é usada como ponto de partida para criar imagens derivadas. Encontrar fontes confiáveis de imagens base é o começo da implantação da segurança de containers. Confirme se a imagem vem de uma empresa conhecida ou grupo open source, está hospedada em um registro com boa reputação e se o código-fonte de todos os componentes na imagem está disponível.
No entanto, mesmo com o uso de imagens confiáveis, a adição de aplicações e as alterações na configuração apresentarão novas variáveis. Ao trazer conteúdo externo para criar suas aplicações, tenha em mente o gerenciamento proativo de vulnerabilidades:
- Integre ferramentas de segurança nativas usadas em toda a empresa para seguir ou aprimorar as políticas de segurança de rede existentes no ecossistema de containers.Estabeleça padrões fortes de segurança na nuvem e de segurança para aplicações.
- Identifique imagens de container modificadas que violam políticas ou práticas recomendadas documentadas, conhecidas como configurações incorretas de container, para reduzir a probabilidade e o impacto de possíveis comprometimentos.
Previsão e correção de vulnerabilidades
Os containers são uma tecnologia conhecida porque facilitam a criação, o empacotamento e a divulgação de uma aplicação ou serviço e de todas as suas respectivas dependências. Isso acontece durante todo o ciclo de vida dos containers e em destinos de implantação e fluxo de trabalho distintos. No entanto, há alguns desafios para incorporar a segurança nos containers. Os containers podem ajudar você a implementar uma segurança mais refinada no nível da carga de trabalho, mas também introduzem novos componentes de infraestrutura e superfícies de ataque desconhecidas. A solução de segurança de containers certa deve ajudar a proteger a infraestrutura do cluster e o orquestrador, bem como as aplicações em containers que eles executam.
Não é possível escalar os checklists e as políticas de segurança estáticas para os containers na empresa.
- A cadeia de suprimentos precisa de mais serviços relacionados à política de segurança.
- As equipes de segurança precisam equilibrar as necessidades de rede e governança de um ambiente em containers.
- As ferramentas usadas durante os estágios de criação, manutenção e serviço precisam ter políticas de permissão diferentes.
Um programa eficaz de segurança de containers busca corrigir vulnerabilidades em tempo real e reduzir a superfície de ataque antes que as imagens sejam implantadas. Ao incorporar a segurança no pipeline e proteger a infraestrutura, você assegura que os containers sejam confiáveis e escaláveis.
Ao coletar imagens de container, pergunte a si mesmo:
- Elas estão assinadas e foram feitas por fontes confiáveis?
- As camadas do sistema operacional e do ambiente de execução estão atualizadas?
- Com que frequência e rapidez o container será atualizado?
- Os riscos à segurança são identificados e como eles serão rastreados?
Proteja o ciclo de vida e o stack da aplicação em containers
Veja informações especializadas sobre as práticas recomendadas de segurança em relação a todo o ciclo de vida e stack de aplicação em containers com esta série de webinars.
Gerenciamento do acesso
Depois de obter as imagens, a próxima etapa é gerenciar a divulgação e o acesso de todas as imagens de container usadas pela equipe. Ou seja, proteger as imagens obtidas por download e as que você cria. Use um registro privado para controlar o acesso por meio de atribuições de funções, além de gerenciar o conteúdo designando metadados relevantes ao container. Esses metadados ajudarão você a identificar e rastrear vulnerabilidades conhecidas. Com o registro privado, você também automatiza e atribui políticas nas imagens de container armazenadas. Isso diminui os erros humanos que podem gerar vulnerabilidades no ambiente de containers.
Ao decidir como será o gerenciamento do acesso, pergunte a si mesmo:
- Que controles de acesso baseado em função você pode usar para gerenciar imagens de container?
- Há um recurso de aplicação de tags para classificar as imagens? É possível aplicar tags a imagens aprovadas para uma determinada etapa, como desenvolvimento, teste e produção?
- O registro oferece metadados visíveis para rastrear vulnerabilidades conhecidas?
- É possível usar o registro para atribuir e automatizar políticas (por exemplo, verificar assinaturas, códigos de aplicações etc.)?
Integração do teste de segurança e automação da implantação
A última etapa do pipeline é a implantação. Depois de concluir as compilações, é necessário gerenciá-las de acordo com os padrões do setor. O segredo é entender como automatizar políticas para sinalizar compilações que têm problemas de segurança, principalmente ao encontrar novas vulnerabilidades. Embora a verificação de vulnerabilidades continue sendo importante, ela é apenas parte de um conjunto maior de iniciativas de segurança usadas para proteger seus ambientes de containers.
Como aplicar patches aos containers não é uma solução tão boa quanto recriá-los, a integração do teste de segurança precisa levar em conta políticas que acionem recompilações automatizadas. Para isso, o primeiro passo é executar ferramentas de análise de componentes que rastreiem e sinalizem problemas. Depois, é necessário estabelecer ferramentas de implantação automatizada baseada em políticas.
Ao integrar o teste de segurança e automatizar a implantação, pergunte a si mesmo:
- Como posso evitar a aplicação de patches nos containers em execução? Em vez disso, como usar acionadores para recompilar e substituir containers com atualizações automatizadas?
Proteção da infraestrutura
Outra camada da segurança de containers é o isolamento proporcionado pelo sistema operacional host ou pelo nó do container. Você precisa de um sistema host que forneça isolamento máximo do container. Essa é uma parte importante para proteger o ambiente de implantações de containers. O sistema operacional host é ativado por meio de um ambiente de execução de container. É ideal que ele seja gerenciado por um sistema de orquestração. Para que a plataforma de aplicações em containers seja resiliente, use namespaces de rede para isolar aplicações e ambientes, além de anexar armazenamento por meio de ativações seguras. A solução de gerenciamento de APIs precisa incluir autenticação e autorização, integração LDAP, controles de acesso a endpoints e limitação por taxa.
Ao decidir como proteger a infraestrutura de containers, pergunte a si mesmo:
- Que containers precisam acessar outros? Como eles detectam os outros containers?
- Como controlar o acesso aos recursos compartilhados (por exemplo, rede e armazenamento) e fazer o gerenciamento deles?
- Como monitorar a integridade dos containers?
- Como escalar automaticamente a capacidade das aplicações para atender à demanda?
- Como gerenciar atualizações de host? Todos os containers precisarão ser atualizados ao mesmo tempo?
Podemos ajudar
O Red Hat® OpenShift® inclui o Red Hat Enterprise Linux®. Ele automatiza o ciclo de vida da aplicação do container, integra a segurança ao pipeline do container e permite a transição de uma estratégia DevOps para uma estratégia DevSecOps. Com o catálogo de containers , você tem acesso a um grande número de imagens certificadas, ambientes de execução em linguagens diferentes, bancos de dados e middlewares que são executados no mesmo ambiente do Red Hat Enterprise Linux. As imagens da Red Hat são sempre assinadas e verificadas para assegurar origem e integridade.
Monitoramos as imagens de container em busca de vulnerabilidades recém-descobertas, incluindo um índice de integridade atualizado constantemente e visível para o público. Também oferecemos atualizações de segurança e recompilações de containers que são enviadas ao registro público. O Red Hat Advanced Cluster Security for Kubernetes se integra ao DevOps e a ferramentas de segurança para reduzir as ameaças e reforçar as políticas de segurança que minimizam os riscos operacionais das suas aplicações.
Os parceiros de segurança da Red Hat podem ampliar e aprimorar os recursos de proteção de containers usando integrações certificadas. A segurança é integrada à plataforma do Red Hat OpenShift, o que complementa as soluções dos parceiros para proteger aplicações e containers durante o ciclo de vida do DevOps.
Além disso, também oferecemos estes recursos incríveis:
- Gerenciamento e orquestração de containers em escala web
- Console web avançado com funcionalidades para colaboração entre vários usuários
- Interfaces de IDE e CLI
- Integração com a CI
- Source-to-image e automação da compilação
- Automação da implantação
- Compatibilidade com volumes de armazenamento remoto
- Administração e instalação simplificadas
- Grande conjunto de serviços, frameworks e linguagens de programação compatíveis