Partilhar via


Garantindo a integridade e autenticidade de imagens de contêiner e artefatos OCI

Por que a integridade e a autenticidade são importantes

Imagens de contêiner e outros artefatos OCI (como SBOMs, gráficos Helm, pacotes de configuração ou modelos de IA) são componentes-chave dos aplicativos modernos nativos da nuvem. Esses artefatos fluem através da cadeia de suprimentos de software, desde a criação até a implantação: construídos por editores, armazenados em registros e consumidos em pipelines de CI/CD ou ambientes de produção.

Sem salvaguardas, os atacantes poderiam:

  • Altere artefatos enquanto eles são armazenados ou transferidos.
  • Troque imagens ou gráficos confiáveis por imagens maliciosas.
  • Insira imagens de base não verificadas ou dependências em compilações.

A integridade garante que o artefato usado seja exatamente o mesmo que foi publicado.
A autenticidade garante que o artefato realmente veio do editor esperado.

Juntos, eles são essenciais para proteger a cadeia de suprimentos e prevenir ataques.

Como a assinatura e a verificação ajudam

Para fornecer integridade e autenticidade, os artefatos OCI (incluindo imagens de contêiner) podem ser assinados depois de criados, e essas assinaturas podem ser verificadas antes que os artefatos sejam consumidos.

  • A assinatura produz assinaturas criptográficas que vinculam a identidade de um editor a um descritor de artefato, incluindo o resumo.
  • A verificação verifica se a assinatura é válida, se a identidade do editor é confiável e se o artefato não foi alterado.

Se a verificação falhar, os consumidores podem impedir que o artefato seja transferido, utilizado em compilações ou implementado.

Projeto Notarial e Notação

Notary Project é um projeto de código aberto que fornece assinatura e verificação para artefatos OCI, incluindo imagens de contêiner, SBOMs, gráficos Helm, modelos de IA e muito mais.

Notação é a ferramenta do Projeto Notarial para assinar e verificar artefatos OCI. A notação integra-se com vários fornecedores chave, incluindo:

  • Azure Key Vault (AKV): Os usuários gerenciam seu próprio ciclo de vida do certificado, incluindo emissão, rotação e expiração. Isso proporciona forte controle e flexibilidade para organizações que desejam manter o gerenciamento direto de seus certificados.
  • Assinatura confiável: Fornece gerenciamento de certificados sem toque e emite certificados de curta duração automaticamente. Isso simplifica a experiência de assinatura, mantendo fortes garantias de segurança.

As organizações podem escolher AKV para controle total ou adotar a Assinatura Confiável para uma experiência simplificada.

Cenários para assinatura e verificação

1. O publicador de imagens assina imagens em pipelines de CI/CD, como GitHub Actions

Um publicador de imagens de contêiner cria uma imagem e a assina como parte do seu fluxo de trabalho do GitHub Actions antes de carregá-la para o Registro de Contêiner do Azure.

  • Garante que os consumidores a jusante possam verificar a origem da imagem.
  • Adiciona metadados de confiança à cadeia de suprimentos no momento da compilação.

2. Imagem que o consumidor verifica durante a implantação no AKS

Ao implantar cargas de trabalho no Serviço Kubernetes do Azure (AKS), uma política de cluster pode impor que apenas imagens assinadas e verificadas tenham permissão para serem executadas.

  • Impede a implantação de imagens não autorizadas ou adulteradas.
  • Garante que as cargas de trabalho em tempo de execução tenham origem em editores confiáveis.

3. O consumidor de imagem verifica as imagens de base em pipelines de CI/CD

Antes de criar uma imagem de aplicativo, os desenvolvedores podem configurar pipelines (por exemplo, Ações do GitHub) para verificar as assinaturas das imagens base.

  • Protege as compilações contra a herança de vulnerabilidades ou códigos maliciosos.
  • Impõe o uso apenas de componentes upstream confiáveis em compilações de aplicativos.

4. Verificação de outros artefatos OCI

Além das imagens de contêiner, o mesmo processo se aplica a outros artefatos armazenados em um registro OCI:

  • SBOMs: verifique a SBOM assinada de uma imagem antes de usá-la para análise de segurança.
  • Helm charts: Verifique os charts antes de instalá-los em clusters do Kubernetes.
  • Pacotes de configuração ou modelos de IA: verifique se eles se originam do editor pretendido antes de integrar aos sistemas.

Próximos passos

Esta visão geral apresenta a importância de assinar e verificar imagens de contêiner e outros artefatos OCI. Cada um dos seguintes cenários tem a sua própria orientação dedicada:

Assinar com AKV

Assinar com a Notation CLI:

Iniciando sessão no fluxo de trabalho do GitHub:

Assinando com assinatura confiável

Assinar com a Notation CLI:

Iniciando sessão no fluxo de trabalho do GitHub:

Verification

Verificação no fluxo de trabalho do GitHub:

Verificação no AKS: