Questa pagina introduce i concetti chiave per la gestione dei metadati e la loro importanza in una catena di distribuzione del software sicura.
Uno degli aspetti di una catena di approvvigionamento sicura è tenere traccia del ciclo di vita di un elemento software. Ai fini della conformità, queste informazioni di monitoraggio potrebbero dover essere disponibili anche molto tempo dopo il ritiro dell'elemento. Questo può essere ottenuto generando e memorizzando metadati che descrivono eventi importanti relativi a un elemento o a una risorsa software: un'immagine contenitore, una macchina virtuale o un pacchetto software.
Artifact Analysis ti consente di archiviare le informazioni sui metadati associati a una risorsa. Questi metadati possono essere recuperati in un secondo momento per eseguire la revisione della catena di approvvigionamento del software.
Come Artifact Analysis memorizza i metadati
L'Artifact Analysis è basata su Grafeas, un'API di metadati dei componenti open source che può fungere da fonte attendibile centralizzata per il monitoraggio e l'applicazione delle norme. Gli strumenti di compilazione, controllo e conformità possono utilizzare Grafeas per memorizzare, eseguire query e recuperare metadati completi sui componenti software.
Poiché Grafeas è open source, non sei vincolato a un determinato fornitore. Grafeas associa i metadati utilizzando un identificatore software univoco. Scollega l'archiviazione degli elementi, in modo da poter archiviare i metadati dei componenti di molti diversi repository. Gli stessi principi si applicano ad Artifact Analysis, che puoi utilizzare come un archivio universale dei metadati centralizzato per i componenti software in Artifact Registry o in qualsiasi altra posizione.
Il modello Grafeas coinvolge due entità:
- Un fornitore che crea metadati archiviati nelle note.
- Un cliente che identifica se i metadati archiviati in una nota si applicano ai suoi artefatti. In questo caso, i metadati sono rappresentati come occorrenza di una nota.
Nota
Una nota descrive un insieme di metadati di alto livello. Ad esempio, puoi creare una nota su una vulnerabilità specifica per un pacchetto Linux. Puoi anche utilizzare una nota per memorizzare informazioni sul generatore di un processo di compilazione. I fornitori che eseguono l'analisi in genere possiedono e creano le note. I clienti che vogliono utilizzare i metadati possono quindi identificare le occorrenze delle note all'interno dei loro progetti.
Ti consigliamo di archiviare note e occorrenze in progetti distinti, in modo da avere controllo dell'accesso più granulare dell'accesso.
Le note devono essere modificabili solo dal proprietario e di sola lettura per i clienti che hanno accesso alle occorrenze a cui fanno riferimento.
Occorrenza
Un'occorrenza rappresenta il momento in cui una nota è stata trovata in un artefatto software; può essere considerata come un'istanza di una nota. Ad esempio, un'occorrenza di una nota su una vulnerabilità descrive il pacchetto in cui è stata trovata la vulnerabilità e passaggi specifici per la correzione. In alternativa, un'occorrenza di una nota sui dettagli della compilazione descrive le immagini dei contenitori risultanti da una compilazione.
In genere, le occorrenze vengono archiviate in progetti distinti da quelli in cui vengono create le note. L'accesso in scrittura alle occorrenze deve essere concesso solo agli utenti che hanno accesso per collegare una nota all'occorrenza. Qualsiasi utente può avere accesso in lettura alle occorrenze.
Tipi di metadati supportati
Nella tabella seguente sono elencati i tipi di metadati supportati da Artifact Analysis. I fornitori di metadati di terze parti possono memorizzare e recuperare tutti i seguenti tipi di metadati per le immagini dei propri clienti.
Tipo di metadati | Utilizzo nei servizi Google Cloud |
---|---|
Vulnerabilità fornisce informazioni sulle vulnerabilità per i file sottoposti a controllo. | L'Artifact Analysis genera le occorrenze di vulnerabilità in base a database esterni di problemi di sicurezza divulgati pubblicamente. |
Build fornisce informazioni sull'origine della build. | Cloud Build genera questi metadati e Artifact Analysis memorizza le informazioni se utilizzi Cloud Build per creare l'immagine. |
Image indica i metadati dell'immagine del contenitore, ad esempio le informazioni sui diversi livelli di un'immagine. | |
Pacchetto contiene informazioni sui pacchetti installati nell'immagine. | |
Deployment fornisce informazioni sugli eventi di deployment delle immagini. | |
Discovery contiene informazioni sulla scansione iniziale delle immagini. | Artifact Analysis fornisce queste informazioni solo per le analisi delle vulnerabilità. |
Attestation contiene le informazioni sulla certificazione delle immagini. | Sì. Autorizzazione binaria legge queste informazioni e può utilizzarle per controllare i deployment. |
Upgrade, che descrive un upgrade del pacchetto disponibile. | |
Conformità, che fornisce informazioni su un controllo di conformità. | |
Attestazione DSSE, che descrive un'attestazione che utilizza la firma Dead Simple Signing Envelope. | |
La valutazione delle vulnerabilità memorizza un'istruzione VEX caricata nel formato della nota VulnerabilityAssessment di Grafeas. | |
Il riferimento SBOM fornisce metadati aggiuntivi per aiutarti a individuare e verificare le SBOM. |
Passaggi successivi
- Fornisci metadati per le tue immagini.
- Concedi un controllo granulare sui metadati configurando il controllo dell'accesso.