...
🧠 O blog é dedicado ao tema VPN e segurança, privacidade de dados na Internet. Falamos sobre tendências atuais e notícias relacionadas à proteção.

Os contêineres estão em toda parte: como você os protege?

12

Os contêineres estão aumentando em número a cada dia e parecem estar em todos os lugares, pois as organizações estão ansiosas para colher os muitos benefícios oferecidos por eles, como desenvolvimento e implantação de aplicativos ágeis em todas as plataformas.

Muitos também acreditam que o uso de contêineres pode ajudá-los a minimizar as restrições de segurança devido à sua natureza de vida curta. Isso é verdade ou apenas mais um equívoco?

Embora os contêineres não tenham inseguranças inerentes, eles geralmente são implantados de maneira não segura, resultando em vários desafios de segurança.

Desafios de segurança ao implantar contêineres

O grande número, versatilidade e estado efêmero dos contêineres implantados, além do fato de que os contêineres devem se comunicar com outras entidades, fazem com que as organizações não tenham a capacidade de possuir visibilidade adequada do tráfego entre contêineres.

Graças a essa falta de visibilidade, os contêineres são muitas vezes esquecidos e as medidas de prevenção de intrusão e os controles de segurança tornam-se ineficazes, aumentando a superfície de ataque e, portanto, o risco geral do negócio. Além disso, a falta de visibilidade pode resultar em uma escassez de responsabilidade, pois os contêineres atravessam diferentes ambientes, desde o desenvolvimento até a produção.

Outro desafio de segurança relacionado aos contêineres é o mau gerenciamento de vulnerabilidades. Por exemplo, ao clonar imagens existentes para criar novos contêineres, suas vulnerabilidades também serão replicadas.

Isso destaca a necessidade de que a segurança seja parte integrante da estratégia de contêiner organizacional. Caso contrário, erros de configuração e patches ausentes podem ser o motivo da implantação e execução de imagens não autorizadas em ambientes de produção, levando a uma maior superfície de ataque e ataques mais bem-sucedidos.

Finalmente, como os contêineres usam um kernel do sistema operacional compartilhado, um comprometimento do kernel do sistema operacional do host por um contêiner não autorizado pode levar à perda de acesso a todos ou quaisquer contêineres em execução no host, da mesma forma que potencialmente outros hosts na rede.

Como proteger seus contêineres

Talvez a melhor prática para proteger seu ambiente em contêiner seja reconhecer a necessidade de fazê-lo. Exceto por esse conceito fundamental, há alguns bons conselhos a serem seguidos para proteger efetivamente seus contêineres.

Tenha visibilidade em seus contêineres

Antes de implantar um contêiner, certifique-se de entender suas dependências e o que está incluído nele. Para garantir que suas imagens de contêiner sejam imaculadas, você deve obter visibilidade em todas as etapas, desde o desenvolvimento até a produção.

Não confiar no software de um container é um ótimo ponto de partida. Você deve verificá-lo completamente para entender “de onde eles vêm, como foram produzidos e suas fontes correspondentes", como Dirk Hohndel, vice-presidente da VMware, apontou no Open Source Leadership Summit 2019.

Em poucas palavras, verifique novamente o conteúdo de seus contêineres antes de implantá-los e nunca execute um contêiner com software desconhecido ou obsoleto. Só porque uma imagem de contêiner afirma conter os melhores e mais recentes programas e bibliotecas, isso não significa que ela realmente contém.

Uma maneira de mitigar esse problema é usar aplicativos que podem ajudá-lo a limpar seus contêineres. Embora eu não goste de reinventar a roda, talvez a melhor abordagem seja parar de usar imagens de contêiner de outras pessoas.

Se você, assim como o Hercules, seguir o caminho mais difícil do Virtue e começar a construir suas próprias imagens de contêiner, terá uma compreensão muito melhor do que está acontecendo dentro dos contêineres, o que traz benefícios além da segurança.

Controle o acesso root

A maioria dos contêineres é construída com acesso root por padrão. No entanto, esta é uma prática questionável. Embora seja mais fácil para os desenvolvedores executarem contêineres como root, existem enormes riscos com o acesso root.

Existem várias abordagens para lidar com esse problema. Uma maneira é verificar uma política corporativa de que nenhum contêiner pode ser executado como root. Uma maneira alternativa é exercer o princípio do privilégio mínimo. Você pode especificar um usuário não raiz no Dockerfile, ao criar uma imagem de contêiner, para executar o contêiner como esse usuário específico com o acesso mínimo ao sistema necessário.

Por fim, você também pode usar o namespace do usuário ao executar processos de contêiner privilegiados para auxiliar os contêineres seguros. Com esse método, o UID para executar esses processos dentro do contêiner é zero (que é a raiz), mas fora do contêiner o UID é o 1000 sem privilégios.

Verifique o tempo de execução do contêiner

O SP 800-190 do National Institute of Standards and Technology (NIST) SP 800-190 ” Guia de Segurança de Contêiner de Aplicativos ” aponta que os tempos de execução de contêiner também são vulneráveis ​​a ataques. Embora essa não seja uma lacuna de segurança comum, o NIST aponta que as vulnerabilidades de segurança de tempo de execução do contêiner podem ser ” particularmente perigosas ” se permitirem cenários em que softwares mal-intencionados possam atacar recursos em outros contêineres e no próprio sistema operacional host.

Um invasor também pode explorar vulnerabilidades para comprometer o próprio software de tempo de execução e, em seguida, alterar esse software para permitir que o invasor acesse outros contêineres, monitore as comunicações entre contêineres etc.

Problemas de segurança são muito mais comuns com configurações de tempo de execução. Os tempos de execução de contêiner geralmente expõem muitas opções configuráveis. Configurá-los incorretamente pode diminuir a segurança relativa do sistema.

Por exemplo, em hosts de contêiner do Linux, o conjunto de chamadas de sistema permitidas geralmente é limitado por padrão apenas às necessárias para a operação segura de contêineres. Se essa lista for ampliada, ela poderá expor os contêineres e o sistema operacional host a um risco maior de um contêiner comprometido.

Da mesma forma, se um contêiner for executado em modo privilegiado, ele terá acesso a todos os dispositivos no host, permitindo que ele aja essencialmente como parte do sistema operacional do host e impacte todos os outros contêineres executados nele.

Outro exemplo de uma configuração de tempo de execução insegura é permitir que os contêineres montem diretórios confidenciais no host. Se um contêiner comprometido puder fazer alterações nesses caminhos, ele poderá ser usado para elevar privilégios e atacar o próprio host, bem como outros contêineres em execução no host.

Endureça o sistema operacional

O NIST também recomenda a execução de um sistema operacional específico de contêiner porque as ameaças geralmente são mínimas, pois os SOs são projetados especificamente para hospedar contêineres e têm outros serviços e funcionalidades desabilitados.

Além disso, como esses sistemas operacionais otimizados são projetados especificamente para hospedar contêineres, eles normalmente apresentam sistemas de arquivos somente leitura e empregam outras práticas de proteção por padrão. Sempre que possível, as organizações devem usar esses SOs minimalistas para reduzir suas superfícies de ataque e mitigar os riscos típicos e as atividades de proteção associadas aos SOs de uso geral.

As organizações que não podem usar um sistema operacional específico de contêiner devem seguir as orientações do NIST SP 800-123, Guide to General Server Security para reduzir ao máximo a superfície de ataque de seus hosts.

Por exemplo, os hosts que executam contêineres devem executar apenas contêineres e não outros aplicativos, como um servidor Web ou banco de dados, fora dos contêineres. O sistema operacional host não deve executar serviços de sistema desnecessários, como um spooler de impressão, que aumenta sua superfície de ataque.

Por fim, os hosts devem ser continuamente verificados quanto a vulnerabilidades e atualizações aplicadas rapidamente, não apenas ao tempo de execução do contêiner, mas também a componentes de nível inferior, como o kernel do qual os contêineres dependem para uma operação segura e compartimentada.

A segurança do contêiner é uma prioridade

Com cada vez mais empresas adotando e implantando contêineres, sua segurança está se tornando uma das principais prioridades dos negócios. De acordo com uma pesquisa recente, 94% dos entrevistados sofreram um incidente de segurança em seus ambientes de contêiner. Isso apenas destaca a importância de obter direitos de segurança de contêiner para proteger sua empresa e seus clientes.

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação