Automatizar a varredura de contêineres, incluindo imagens de contêiner

Concluído

Os termos verificação de contêiner e verificação de imagem de contêiner geralmente são usados de forma intercambiável, embora se refiram a aspectos ligeiramente diferentes da análise de composição de software em ambientes em contêineres. A verificação de contêiner geralmente se refere ao processo de detecção de vulnerabilidades, configurações incorretas ou problemas de segurança em aplicativos conteinerizados. Ele tem como destino o ambiente de runtime, as dependências, as bibliotecas e as configurações dentro de contêineres. A verificação da imagem de contêiner concentra-se nas imagens de contêiner. Ela envolve inspecionar as camadas, pacotes, bibliotecas e configurações dentro da imagem de contêiner para identificar problemas como vulnerabilidades de segurança e dependências desatualizadas. A verificação de imagem normalmente tem como destino imagens de contêiner que residem em registros de contêiner.

Há várias ferramentas e técnicas de verificação de contêineres que dão suporte ao Azure DevOps e às plataformas GitHub. Em geral, você pode aproveitar serviços independentes de plataforma, como o Microsoft Defender para Nuvem ou incorporar ferramentas de verificação diretamente no Azure Pipelines ou no GitHub Actions.

Microsoft Defender para Nuvem

O Microsoft Defender para Nuvem é uma plataforma de proteção de aplicativo nativa de nuvem que implementa medidas e práticas de segurança projetadas para proteger cargas de trabalho baseadas em nuvem de uma ampla gama de ameaças cibernéticas. Ele inclui suporte para verificação de imagem e contêiner aproveitando os recursos do Microsoft Defender para contêineres e do Gerenciamento de Vulnerabilidades do Microsoft Defender.

Microsoft Defender para Contêineres

O Microsoft Defender para contêineres é uma solução nativa de nuvem que tem como objetivo aprimorar a segurança de ambientes em contêineres, incluindo clusters do Kubernetes, registros de contêiner e imagens de contêiner, em ambientes locais e multinuvem. Sua funcionalidade pode ser agrupada em quatro categorias principais:

  • O gerenciamento da postura de segurança executa o monitoramento contínuo de cargas de trabalho do Kubernetes para descobrir recursos de nuvem, inventariá-los, detectar suas configurações incorretas, fornecer diretrizes de correção, avaliar os riscos correspondentes e ajudar na busca de riscos usando o gerenciador de segurança do Defender para Nuvem.
  • A proteção contra ameaças em tempo de execução oferece detecção de ameaças para clusters Kubernetes, alinhados de perto com a estrutura MITRE ATT&CK e com integração a uma ampla gama de informações de segurança e gerenciamento de eventos (SIEM) e produtos XDR (detecção e resposta estendida).
  • Implantação e monitoramento facilita a implementação de clusters do Kubernetes e o acompanhamento de seu status.
  • A avaliação de vulnerabilidades fornece avaliação de vulnerabilidade sem agente para recursos multinuvem, incluindo diretrizes de correção e verificação automatizada.

A avaliação de vulnerabilidade depende do Gerenciamento de Vulnerabilidades do Microsoft Defender.

Gerenciamento de Vulnerabilidades do Microsoft Defender

O Gerenciamento de Vulnerabilidades do Microsoft Defender oferece uma funcionalidade de verificação de imagem baseada em gatilho direcionada a imagens em registros do Registro de Contêiner do Azure (ACR). Ele gera automaticamente relatórios documentando vulnerabilidades e as correções correspondentes para cada imagem. Ele também fornece a verificação de contêineres implantados em clusters do AKS (Serviço de Kubernetes do Azure) com base em imagens extraídas de qualquer registro com suporte do Defender para Nuvem, incluindo, além do ACR, aqueles nativos do AWS (Amazon Web Services) e do GCP (Google Cloud Platform), como ECR (Registro de Contêiner Elástico), GCR (Registro de Contêiner do Google) e GAR (Registro de Artefatos do Google).

Todas as imagens armazenadas no ACR que atendem aos critérios de gatilhos de verificação são verificadas automaticamente em busca de vulnerabilidades sem configurações adicionais. Esses critérios podem ser agrupados em duas categorias principais:

  • Disparado por operações de push, importação e pull. Em caso de push ou importação, uma verificação normalmente é concluída em poucos minutos, mas pode levar até uma hora. Após pulls individuais, as imagens são verificadas dentro de 24 horas.
  • Executando continuamente para imagens que foram verificadas anteriormente em busca de vulnerabilidades para atualizar seus relatórios de vulnerabilidade para levar em consideração as vulnerabilidades publicadas recentemente. Essas verificações são realizadas uma vez por dia para imagens enviadas por push nos últimos 90 dias, imagens extraídas nos últimos 30 dias e imagens em execução nos clusters do Kubernetes monitorados pelo Defender para Nuvem.

Recomendações com relatórios de vulnerabilidade são fornecidas para todas as imagens no ACR, bem como imagens que estão sendo executadas atualmente em clusters do AKS (Serviço de Kubernetes do Azure). Depois de executar as etapas recomendadas para corrigir o problema de segurança e substituir a imagem no registro, o Microsoft Defender para Nuvem reposiciona automaticamente a imagem para confirmar se as vulnerabilidades não existem mais.

Incorporando ferramentas de verificação diretamente no Azure Pipelines ou no GitHub Actions.

Você pode incorporar a verificação de contêineres e imagens diretamente em seus pipelines de CI/CD para identificar automaticamente vulnerabilidades e garantir a conformidade. O processo começa selecionando uma ferramenta de verificação adequada compatível com a respectiva plataforma, como o Aqua disponível como uma extensão de segurança de DevOps ou o Trivy GitHub Action. Em seguida, você pode integrar a ferramenta de verificação escolhida ao processo de build para analisar imagens de contêiner em busca de vulnerabilidades e problemas de conformidade. A verificação de contêiner deve ser aplicada durante o estágio de CD para avaliar o resultado da implantação.

Como parte da integração de CI/CD, considere impedir a implantação da imagem no caso de sua verificação relatar não conformidade. Ao implementar fluxos de trabalho no GitHub, aproveite seus recursos Dependabot para detectar e criar solicitações de pull para atualizar dependências em imagens de contêiner, incluindo Dockerfiles, manifestos de pacote e outros arquivos de configuração. Automatize ações de correção, como corrigir vulnerabilidades ou recriar uma imagem, com base nos resultados da verificação. Implemente o monitoramento contínuo e as revisões dos resultados da verificação, aproveitando dashboards, relatórios e notificações específicos da plataforma.