Compartilhar via


Visão geral do estágio de compilação

A construção de imagens de contêineres é o terceiro estágio da estrutura CSSC (Containers Secure Supply Chain). Enquanto algumas empresas extraem as imagens base de fontes externas diretamente, outras podem extrair as imagens base do catálogo interno sem verificar as imagens em relação às suas assinaturas e atestados. É crucial garantir que as imagens base sejam sempre retiradas do catálogo interno e verificadas antes do uso. Depois de construir as imagens, algumas empresas as publicam sem verificação de vulnerabilidades e malwares, e não conseguem gerar atestados como o SBOM, que não podem ser verificados em etapas subsequentes da cadeia de suprimentos. É essencial garantir que as imagens de contêiner produzidas sejam confiáveis e estejam em conformidade com as políticas corporativas.

A estrutura CSSC (Containers Secure Supply Chain) da Microsoft identifica a necessidade de criar imagens de contêiner e fornece um conjunto de práticas recomendadas e ferramentas para ajudá-lo a criar imagens confiáveis e compatíveis com segurança. Neste artigo, você aprenderá sobre os objetivos, as práticas recomendadas e as ferramentas que podem ser usadas no estágio Build da estrutura CSSC.

Tela de fundo

Atualmente, as empresas usam várias abordagens para criar imagens de contêiner compatíveis com segurança. Antes de construir imagens de contêiner, as equipes internas são obrigadas a extrair imagens de base de registros dourados internos. No entanto, essas imagens não são verificadas antes do uso, o que não é recomendado, pois os registros dourados podem ser comprometidos e as imagens podem se tornar maliciosas. As empresas também controlam a origem das bibliotecas e pacotes que são adicionados às imagens de contêiner para garantir a qualidade.

Depois de criar imagens de contêiner, as empresas geram metadados adicionais para garantir que as imagens de contêiner estejam em conformidade. Algumas empresas utilizam um documento de procedência SLSA para saber qual git commit é responsável por produzir a imagem do contêiner e se ela é reproduzível. Outros usam rótulos do Docker para fornecer proveniência sobre o proprietário da imagem do contêiner e quem é responsável pela confirmação da imagem. Algumas empresas verificam a imagem em busca de vulnerabilidades e malware e geram relatórios de acordo.

O estágio de compilação da estrutura CSSC recomenda um conjunto de etapas e controles de segurança que devem ser implementados para produzir imagens de contêiner confiáveis e compatíveis antes de serem publicadas.

A Microsoft recomenda as seguintes práticas para criar imagens de contêiner compatíveis com segurança.

  • Extraia imagens base apenas do catálogo interno para reduzir a superfície de ataque e melhorar a segurança.
  • Quando disponíveis, verifique assinaturas e atestados de imagens base antes de usá-las para garantir que sejam confiáveis e compatíveis.
  • As imagens sem distribuição contêm apenas o aplicativo e suas dependências de tempo de execução, sem nenhum software adicional ou componentes do sistema operacional. Use imagens sem distração como imagens base para reduzir a superfície de ataque e melhorar a segurança.
  • Aplique acesso com privilégios mínimos à plataforma ou serviço de compilação para garantir que apenas usuários autorizados possam fazer alterações ou modificações, reduzindo assim o risco de acesso não autorizado, violações de dados e outros incidentes de segurança.
  • Analise imagens de contêiner em busca de vulnerabilidades e malware pós-compilação para mitigar o risco de introdução de vulnerabilidades de segurança.
  • Enriqueça imagens de contêiner após a compilação com metadados adicionais, como SBOM e metadados de proveniência.
  • Assine imagens de contêiner e metadados relevantes após a compilação com chaves corporativas para garantir a integridade e fornecer selo confiável de aprovação para uso interno.
  • Corrija imagens de contêiner em tempo hábil para resolver vulnerabilidades conhecidas.
  • Mantenha as dependências razoavelmente atualizadas para acompanhar as vulnerabilidades e correções de segurança.

Fluxo de trabalho para criar imagens de contêiner compatíveis

O estágio de compilação tem um fluxo de trabalho para criar uma imagem de contêiner compatível com organizações e políticas de segurança. É crucial aplicar o controle de acesso de nível de privilégio à plataforma de compilação ou ao serviço apenas para usuários autorizados. Quando as imagens base estão disponíveis no Catálogo, o fluxo de trabalho Criar faz o seguinte:

  1. Extraia imagens base somente do catálogo interno.
  2. Verifique as imagens base antes de usá-las para garantir que sejam confiáveis e compatíveis.
  3. Adicione estruturas adicionais, código de aplicativo e/ou configurações da fonte confiável sobre as imagens base para compilação.
  4. Gere SBOM durante o processo de compilação.
  5. Examine a imagem de contêiner resultante em busca de vulnerabilidades conhecidas e malware após a compilação para evitar a introdução de falhas de segurança.
  6. Corrija a imagem de contêiner resultante para resolver vulnerabilidades conhecidas e malware
  7. Anexe os relatórios de vulnerabilidade e malware como atestados de imagem para uso nos estágios subsequentes da cadeia de suprimentos.
  8. Anexe SBOM como atestados de imagem para uso em etapas subsequentes da cadeia de suprimentos.
  9. Enriqueça a imagem resultante com metadados adicionais, como metadados de proveniência, para usar em estágios subsequentes da cadeia de suprimentos.
  10. Assine a imagem resultante e os metadados relevantes com chaves corporativas para garantir a integridade e fornecer um carimbo de aprovação confiável para o estágio de implantação

Metas de segurança no estágio de compilação

Ter um fluxo de trabalho bem definido para criar imagens de contêineres confiáveis e compatíveis ajuda as empresas a aumentar sua segurança e reduzir a superfície de ataque em sua cadeia de suprimentos para contêineres. O estágio de compilação da estrutura CSSC destina-se a satisfazer as seguintes metas de segurança.

Reduzir a superfície de ataque devido ao controle de acesso inadequado

Os usuários internos podem fazer alterações inesperadas ou configurações incorretas na infraestrutura de compilação. O estágio Build na estrutura CSSC aborda esse risco impondo controle de acesso de privilégios mínimos por padrão, para que os proprietários de recursos possam garantir que a pessoa certa tenha as permissões certas para fazer alterações e configurações, reduzindo assim a superfície de ataque.

Reduza a superfície de ataque de usuários internos mal-intencionados

O roubo de identidade pode ser usado para acessar a plataforma de compilação, modificar binários e injetar alterações ilícitas que são invisíveis para o desenvolvedor e os usuários originais. Há também o risco de injeção de código vulnerável ou configuração incorreta por usuários internos. O estágio de compilação na estrutura CSSC aborda esse risco aplicando o controle de acesso baseado em função do Azure (RBAC do Azure) e impondo a revisão de código de vários proprietários de código.

Reduzir a superfície de ataque devido a dependências externas

Imagens de base de fontes externas podem ser maliciosas. Registros externos podem ser comprometidos. O estágio Build na estrutura CSSC aborda esse risco usando apenas imagens base do catálogo e verificando-as em relação a suas assinaturas, relatórios de vulnerabilidade e malware e outros metadados de imagem antes de usá-los.

Pacotes maliciosos de software de código aberto (OSS) com backdoors ocultos podem fazer com que os binários do pacote não correspondam ao código-fonte. A validade de dependências ou componentes de código aberto pode expirar, bloqueando as correções de segurança mais recentes do upstream. O estágio de compilação na estrutura CSSC aborda esse risco usando bibliotecas aprovadas, verificando vulnerabilidades e malware regularmente e mantendo as bibliotecas atualizadas.

Reduzir a superfície de ataque devido a compilações comprometidas

Os agentes de compilação vulneráveis podem injetar binários laterais ou código mal-intencionado que podem causar ataques como o ataque SolarWinds. O estágio Build na estrutura CSSC aborda esse risco corrigindo os agentes de compilação regularmente.

Garanta uma qualidade de imagem mínima

No estágio de compilação da estrutura CSSC, as empresas podem configurar as etapas necessárias para a verificação de vulnerabilidades e malware das imagens após a compilação e gerar relatórios. As empresas também podem enriquecer as imagens após a compilação com metadados adicionais, incluindo SBOMs, metadados de proveniência e outros metadados internos que atendam às suas políticas. Eles também podem assinar os artefatos com chaves corporativas para garantir a integridade e fornecer um selo confiável de aprovação para o estágio de implantação.

A Microsoft oferece um conjunto de ferramentas e serviços que podem ajudar as empresas a implementar as etapas recomendadas no fluxo de trabalho do estágio de compilação e atender às metas de segurança listadas acima.

Ferramentas para manter-se atualizado após a compilação

O Dependabot é uma ferramenta para automatizar atualizações de dependência por meio de solicitações pull. Para obter detalhes e as próximas etapas, consulte este guia.

Copa é um projeto de código aberto apoiado pela Microsoft, aborda vulnerabilidades de pacotes do sistema operacional Linux em imagens de contêiner com base em resultados de varredura de vulnerabilidade. Para obter detalhes e as próximas etapas, consulte este guia.

Ferramentas e serviços para varredura contínua de vulnerabilidades e aplicação de patches de imagens

O Microsoft Defender for Cloud é a solução nativa da nuvem para melhorar, monitorar e manter a segurança de suas cargas de trabalho em contêineres. O Microsoft Defender for Cloud oferece ferramentas de avaliação e gerenciamento de vulnerabilidades para imagens armazenadas no Registro de Contêiner do Azure.

Copa é um projeto de código aberto apoiado pela Microsoft, aborda vulnerabilidades de pacotes do sistema operacional Linux em imagens de contêiner com base em resultados de varredura de vulnerabilidade. Para obter detalhes e as próximas etapas, consulte este guia.

Ferramentas e serviços para enriquecer imagens externas com metadados corporativos

O ORAS é um projeto CNCF apoiado pela Microsoft que oferece uma CLI de código aberto e bibliotecas para interagir com registros OCI. O ORAS pode ser usado para adicionar anotações e anexar metadados a uma imagem de contêiner. O ORAS pode ser usado para adicionar SBOMs, metadados de proveniência e outros metadados para enriquecer as imagens para estágios subsequentes na cadeia de suprimentos.

A ferramenta SBOM da Microsoft é uma ferramenta de código aberto, altamente escalável e pronta para empresas para criar SBOMs compatíveis com SPDX 2.2 para qualquer variedade de artefatos. A ferramenta SBOM pode ser usada para gerar SBOMs detalhados para imagens de contêiner.

Notary Project é um projeto CNCF apoiado pela Microsoft que desenvolve especificações e ferramentas para assinar e verificar artefatos de software. A ferramenta do notation Notary Project pode ser usada para assinar imagens de contêiner e outros artefatos nativos da nuvem com chaves corporativas.

O Cofre de Chaves do Azure é um serviço baseado em nuvem que fornece um local seguro e centralizado para armazenar e gerenciar chaves criptográficas, segredos e certificados. O AKV pode ser usado para armazenar e gerenciar suas chaves corporativas de forma segura e confiável.

Próximas etapas

Consulte a visão geral do estágio Implantar para implantar imagens de contêiner com segurança.