Vista geral da gestão de metadados

Esta página apresenta os principais conceitos da gestão de metadados e a respetiva importância numa cadeia de fornecimento de software segura.

Um dos aspetos de uma cadeia de abastecimento segura é monitorizar o ciclo de vida de um artefacto de software. Para fins de conformidade, estas informações de acompanhamento podem ter de estar disponíveis mesmo muito depois de o artefacto ser descontinuado. Isto pode ser conseguido através da geração e do armazenamento de metadados que descrevem eventos importantes sobre um artefacto ou um recurso de software: uma imagem de contentor, uma máquina virtual ou um pacote de software.

A análise de artefactos permite-lhe armazenar informações de metadados associadas a um recurso. Estes metadados podem ser obtidos posteriormente para auditar a sua cadeia de fornecimento de software.

Como a Artifact Analysis armazena metadados

A análise de artefactos é criada com base no Grafeas, uma API de metadados de componentes de código aberto que pode funcionar como uma fonte centralizada de verdade para monitorizar e aplicar políticas. As ferramentas de compilação, auditoria e conformidade podem usar o Grafeas para armazenar, consultar e obter metadados abrangentes sobre componentes de software.

Uma vez que o Grafeas é de código aberto, não está limitado a um fornecedor específico. O Grafeas associa metadados através de um identificador de software exclusivo. Desvincula o armazenamento de artefactos, para que possa armazenar metadados sobre componentes de muitos repositórios diferentes. Os mesmos princípios aplicam-se à análise de artefactos. Pode usá-la como um repositório de metadados universal centralizado para componentes de software no Artifact Registry ou em qualquer outra localização.

O modelo Grafeas envolve duas entidades:

  • Um fornecedor que cria metadados armazenados em notas.
  • Um cliente que identifica se os metadados armazenados numa nota se aplicam aos respetivos artefactos. Se for esse o caso, os metadados são representados como uma ocorrência de uma nota.

Nota

Uma nota descreve um elemento de metadados de nível superior. Por exemplo, pode criar uma nota sobre uma vulnerabilidade específica para um pacote Linux. Também pode usar uma nota para armazenar informações sobre o criador de um processo de compilação. Normalmente, os fornecedores que realizam a análise são proprietários e criam notas. Os clientes que pretendam usar os metadados podem, em seguida, identificar ocorrências de notas nos respetivos projetos.

Recomendamos que armazene notas e ocorrências em projetos separados, o que permite um controlo de acesso mais detalhado.

As notas só podem ser editadas pelo proprietário da nota e são só de leitura para os clientes que têm acesso a ocorrências que as referenciam.

Ocorrência

Uma ocorrência representa o momento em que foi encontrada uma nota num artefacto de software. Pode ser considerada uma instanciação de uma nota. Por exemplo, uma ocorrência de uma nota sobre uma vulnerabilidade descreveria o pacote no qual a vulnerabilidade foi encontrada e os passos de remediação específicos. Em alternativa, uma ocorrência de uma nota sobre detalhes de compilação descreveria as imagens de contentores resultantes de uma compilação.

Normalmente, as ocorrências são armazenadas em projetos separados daqueles em que as notas são criadas. O acesso de escrita às ocorrências só deve ser concedido aos utilizadores que tenham acesso para associar uma nota à ocorrência. Qualquer utilizador pode ter acesso de leitura a ocorrências.

Tipos de metadados suportados

A tabela seguinte apresenta os tipos de metadados suportados pela análise de artefactos. Os fornecedores de metadados de terceiros podem armazenar e obter todos os seguintes tipos de metadados para as imagens dos respetivos clientes.

Tipo de metadados Utilização nos Google Cloud serviços
Vulnerabilidade fornece informações sobre vulnerabilidades para ficheiros auditados. A análise de artefactos gera ocorrências de vulnerabilidades com base em bases de dados externas de problemas de segurança divulgados publicamente.
Compilação fornece informações sobre a proveniência da compilação. O Cloud Build gera estes metadados e a análise de artefactos armazena as informações se usar o Cloud Build para criar a imagem.
Pacote contém informações sobre os pacotes instalados na sua imagem.
Discovery contém informações sobre a análise inicial das imagens. A análise de artefactos fornece estas informações apenas para análises de vulnerabilidades.
A atestação contém informações de certificação de imagens. Sim. A autorização binária lê estas informações e pode usá-las para restringir implementações.
A avaliação de vulnerabilidades armazena uma declaração VEX carregada no formato nota de avaliação de vulnerabilidades do Grafeas.
A referência da SBOM fornece metadados adicionais para ajudar a localizar e validar as SBOMs.

O que se segue?