Ir para o conteúdo principal

O que é segurança de contêineres e por que ela é importante?

Segurança de contêineres é a prática de proteger aplicativos conteinerizados e a infraestrutura de contêineres (Kubernetes e outros orquestradores, imagens de registros etc.) em todo o pipeline de CI/CD.

Por que as organizações precisam de segurança de contêineres?

Os contêineres ajudam as equipes a acelerar o lançamento no mercado e aumentar a agilidade, a escalabilidade e a tolerância a falhas. No entanto, essa velocidade e portabilidade também concentram riscos no ciclo de vida da entrega de software. Uma vulnerabilidade em uma imagem base, um segredo exposto, um manifesto do Kubernetes configurado incorretamente ou permissões excessivas no cluster podem gerar riscos em diferentes etapas do pipeline, especialmente quando os controles são deficientes.

Para as equipes corporativas, isso é importante porque a segurança de contêineres não é apenas uma questão de tempo de execução. Ela afeta a integridade do software, a resiliência operacional, a conformidade e a resposta a incidentes.

Na prática, uma estratégia madura de segurança de contêineres abrange o armazenamento de imagens, o desenvolvimento, a implementação, a detecção em tempo de execução, a remediação e a resposta a incidentes, em vez de funcionar apenas como um controle limitado ao tempo de execução. Uma estratégia madura de segurança de contêineres abrange o armazenamento de imagens, o desenvolvimento, a implementação, a orquestração, a detecção em tempo de execução, a remediação e a resposta a incidentes, em vez de funcionar apenas como um controle limitado ao tempo de execução.

O que a segurança de contêineres abrange?

A segurança de contêineres geralmente abrange cinco camadas.

  1. Imagens e dependências: as equipes precisam saber o que há em uma imagem de contêiner e se ela inclui vulnerabilidades conhecidas, segredos incorporados, pacotes desatualizados ou componentes desnecessários. A verificação de imagens é uma primeira linha de defesa importante, mas representa apenas parte da solução. As equipes também precisam gerenciar a proveniência das imagens, a aplicação de patches e o uso de imagens base aprovadas.
  2. Registros e repositórios de artefatos: uma imagem segura não é suficiente se o próprio registro tiver controles deficientes. O controle de acesso, a verificação e a proveniência são importantes porque os registros são pontos de distribuição do software que será colocado em produção. Um processo deficiente de controle de entrada pode comprometer práticas de build que, de outra forma, seriam adequadas.
  3. Orquestração e configuração: em ambientes Kubernetes, a segurança depende em grande parte das definições de cargas de trabalho, do controle de acesso baseado em função (RBAC), do controle de admissão, da aplicação de políticas e da segmentação de rede. O risco geralmente decorre do que pode ser executado e do nível de acesso concedido, não apenas do conteúdo da imagem.
  4. Comportamento em tempo de execução: o monitoramento em tempo de execução também é importante, pois atividades suspeitas dentro de contêineres e vulnerabilidades em aplicativos em execução podem não ser visíveis durante a fase de build. Um contêiner que parecia seguro durante o build ainda pode apresentar um comportamento inesperado em produção.
  5. Hosts, nós e infraestrutura adjacente: os contêineres compartilham o kernel de um host, portanto, a proteção dos nós e o isolamento em tempo de execução continuam sendo importantes. Os sistemas operacionais dos hosts, os componentes de tempo de execução e a infraestrutura do cluster continuam fazendo parte da superfície de ataque em ambientes conteinerizados.

Onde os riscos relacionados a contêineres costumam surgir em ambientes reais?

Na prática, o risco relacionado a contêineres raramente começa com uma única falha grave. Na maioria das vezes, ele surge como uma sequência de pequenas fragilidades. Uma equipe pode usar uma imagem base sobrecarregada, deixar passar um segredo em um artefato de build, conceder permissões excessivamente amplas em um manifesto de implementação e, em seguida, implantar a carga de trabalho em um cluster com aplicação deficiente de políticas. Nenhuma dessas etapas parece catastrófica por si só, mas, juntas, elas facilitam muito o comprometimento ou o uso indevido.

É por isso que a segurança de contêineres deve ser tratada como uma prática que abrange todo o ciclo de vida. As equipes de segurança não podem depender de um único ponto de controle para compensar processos deficientes em outras áreas. Uma imagem verificada não compensa permissões inseguras em tempo de execução. Um cluster protegido não resolve o problema de um segredo exposto no pipeline. Os controles devem funcionar em conjunto.

Por que a segurança de contêineres é importante agora?

A segurança de contêineres é importante porque eles deixaram de ser uma infraestrutura de nicho e se tornaram parte integrante da entrega de aplicativos modernos, especialmente em ambientes nativos da nuvem, nos quais os aplicativos são desenvolvidos, distribuídos e atualizados continuamente.

Isso também é importante porque os contêineres encurtam a distância entre o desenvolvimento e a produção. Um problema introduzido em um arquivo Docker, um chart do Helm ou um modelo de infraestrutura como código pode rapidamente se transformar em um problema de produção se o pipeline não tiver mecanismos de proteção. É por isso que programas maduros de segurança de contêineres transferem a segurança para as etapas iniciais, mas não param por aí. Eles combinam verificações durante o build, controles de implementação e visibilidade em tempo de execução. Na prática, isso significa adicionar gates de qualidade para imagens e código de infraestrutura e, depois, manter a visibilidade das atividades dos contêineres após a implementação.

Por que a segurança de contêineres é desafiadora?

O principal desafio não é a falta de ferramentas, mas a quantidade de equipes e processos envolvidos. As equipes de desenvolvimento, engenharia de plataforma, operações em nuvem, DevOps e segurança influenciam o resultado. Se as responsabilidades não estiverem claras, os controles forem inconsistentes ou as verificações de segurança ocorrerem tarde demais para serem viáveis, os riscos se acumularão rapidamente.

Os contêineres também mudam o ritmo do trabalho de segurança. Os ambientes são mais dinâmicos, as cargas de trabalho são mais efêmeras e a frequência de implementação costuma ser muito maior. Isso torna a visibilidade, a automação e a consistência das políticas mais importantes do que em ambientes mais lentos e centrados em servidores.

No que as organizações erram

O erro mais comum é tratar a segurança de contêineres apenas como verificação de imagens. A verificação de imagens é importante, mas não resolve problemas como configurações inseguras de cargas de trabalho, controle de acesso fraco, aplicação inadequada de políticas ou comportamentos suspeitos em tempo de execução.

Outro erro é presumir que os contêineres são seguros por padrão por serem efêmeros. A natureza efêmera pode limitar a persistência, mas também pode dificultar a visibilidade e a análise forense se o registro, o inventário e o monitoramento forem deficientes.

Um terceiro erro é tratar da segurança de contêineres tarde demais. Se a primeira discussão séria sobre segurança ocorrer pouco antes da implementação, a equipe já estará em uma posição difícil.

Uma boa segurança de contêineres funciona melhor quando começa mais cedo e permanece em vigor durante todo o ciclo de vida.

Principal ponto de aprendizado

A segurança de contêineres é a disciplina de proteger aplicativos conteinerizados e a infraestrutura de contêineres durante todo o ciclo de vida, e não apenas verificar imagens antes da implementação. As organizações que fazem isso bem combinam controles da cadeia de suprimentos de software, reforço da segurança das configurações, acesso com privilégio mínimo, aplicação de políticas e visibilidade em tempo de execução.


A segurança de contêineres precisa proteger mais do que apenas imagens. O Kaspersky Container Security ajuda a proteger todo o ciclo de vida dos aplicativos conteinerizados, do desenvolvimento à operação, oferecendo proteção para imagens de contêineres, contêineres em execução, orquestração, conformidade e recursos de cluster.

Explorar

Fontes e leituras complementares:

O que é segurança de contêineres e por que ela é importante?

Segurança de contêineres é a prática de proteger aplicativos conteinerizados e a infraestrutura de contêineres (Kubernetes e outros orquestradores, imagens de registros etc.) em todo o pipeline de CI/CD.
Kaspersky logo

Artigos relacionados