Panoramica della scansione dei container

Artifact Analysis offre due modi per eseguire la scansione delle immagini: scansione automatica e scansione on demand. Questo documento illustra i dettagli delle funzionalità per entrambi i tipi di scanning.

Artifact Analysis fornisce anche la gestione dei metadati. Per scoprire di più su come utilizzare la scansione e lo spazio di archiviazione dei metadati per proteggere la pipeline CI/CD da un'estremità all'altra, consulta la Panoramica dell'analisi degli elementi.

Consulta la pagina Prezzi per saperne di più sui costi associati alla scansione delle immagini container.

Questa panoramica presuppone che tu abbia già dimestichezza con l'utilizzo dei repository Docker in Artifact Registry o Container Registry (disponibile solo per i clienti Google Cloud con licenza legacy).

Scansione automatica

Artifact Analysis esegue analisi delle vulnerabilità sugli artefatti in Artifact Registry o Container Registry (deprecato). Artifact Analysis identifica inoltre le dipendenze e le licenze per aiutarti a comprendere la composizione del software.

La scansione automatica comprende due attività principali: la scansione push e l'analisi continua.

Scansione push

Artifact Analysis esegue la scansione delle nuove immagini quando vengono caricate su Artifact Registry o Container Registry. Questa analisi estrae informazioni sui pacchetti nel contenitore. Le immagini vengono sottoposte a scansione una sola volta, in base al digest dell'immagine. Ciò significa che l'aggiunta o la modifica dei tag non attiverà nuove analisi.

Artifact Analysis rileva solo le vulnerabilità nei pacchetti monitorati pubblicamente per vulnerabilità di sicurezza.

Al termine della scansione di un'immagine, il risultato della vulnerabilità prodotto è la raccolta delle occorrenze di vulnerabilità per quell'immagine.

Analisi continua

Artifact Analysis crea occorrenze per le vulnerabilità rilevate al caricamento dell'immagine. Dopo la scansione iniziale, monitora continuamente i metadati delle immagini sottoposte a scansione in Artifact Registry e Container Registry per rilevare nuove vulnerabilità.

Artifact Analysis riceve informazioni sulle vulnerabilità nuove e aggiornate da origini di vulnerabilità più volte al giorno. Quando arrivano nuovi dati sulle vulnerabilità, Artifact Analysis aggiorna i metadati delle immagini sottoposte a scansione per mantenerli aggiornati. Artifact Analysis aggiorna le occorrenze di vulnerabilità esistenti, crea nuove occorrenze di vulnerabilità per le nuove note ed elimina le occorrenze di vulnerabilità che non sono più valide.

Artifact Analysis aggiorna solo i metadati delle immagini che sono state inviate o rimosse negli ultimi 30 giorni. Dopo 30 giorni, i metadati non verranno più aggiornati e i risultati non saranno più aggiornati. Inoltre, Artifact Analysis archivia i metadati inattivi da più di 90 giorni, che non saranno disponibili nella console Google Cloud, in gcloud o tramite l'API. Per eseguire di nuovo la scansione di un'immagine con metadati obsoleti o archiviati, esegui il pull dell'immagine. L'aggiornamento dei metadati può richiedere fino a 24 ore.

Elenchi manifest

Puoi anche utilizzare analisi delle vulnerabilità con gli elenchi manifest. Un elenco manifest è un elenco di puntatori ai manifest per diverse piattaforme. Consentono a una singola immagine di funzionare con più architetture o varianti di un sistema operativo.

L'analisi delle vulnerabilità di Artifact Analysis supporta solo le immagini Linux amd64. Se l'elenco manifest rimanda a più immagini Linux amd64, verrà analizzata solo la prima. Se non sono presenti indicatori di immagini Linux amd64, non verranno visualizzati risultati di analisi.

Scansione on demand

La scansione on demand ti consente di eseguire la scansione delle immagini container localmente sul computer o nel registry utilizzando la gcloud CLI. In questo modo hai la flessibilità di personalizzare la pipeline CI/CD, a seconda di quando devi accedere ai risultati relativi alle vulnerabilità.

Tipi di pacchetti supportati

Quando esegui il push delle immagini container nei repository Docker in Artifact Registry, l'Artifact Analysis può cercare vulnerabilità in diversi tipi di pacchetti di sistemi operativi e pacchetti di linguaggi di applicazioni.

Container Registry è deprecato. Con Container Registry, la scansione automatica viene eseguita solo sui pacchetti del sistema operativo. Se utilizzi Container Registry, scopri come passare ad Artifact Registry.

Le tabelle seguenti mettono a confronto i tipi di pacchetti che Artifact Analysis può analizzare con ciascun servizio di scansione:

Pacchetti di sistemi operativi supportati

Scansione automatica con Artifact Registry Scansione automatica con Container Registry (ritirata) Scansione on demand
Sistema operativo AlmaLinux
Alpina
CentOS
Paracatena
Debian
Google Distroless
Red Hat Enterprise Linux (RHEL)
Red Hat Universal Base Image (UBI)
Rocky Linux
SUSE Linux Enterprise Server (SLES)
Ubuntu
Wolfi

Pacchetti di lingue delle applicazioni supportati

Scansione automatica con Artifact Registry Scansione automatica con Container Registry (ritirata) Scansione on demand
Pacchetti Go
Pacchetti Java
Pacchetti Node.js
Pacchetti PHP
Pacchetti Python
Pacchetti Ruby
Pacchetti Rust
Pacchetti .NET

L'Artifact Analysis esamina i pacchetti di linguaggi di applicazione in Artifact Registry solo se sono containerizzati e archiviati in un repository in formato Docker. Gli altri formati dei repository di Artifact Registry non sono supportati.

Per saperne di più sulle funzionalità disponibili per ogni prodotto del registry, consulta la tabella di confronto.

L'Artifact Analysis non è supportata nei container Windows Server.

Interfacce di Artifact Analysis

Nella console Google Cloud, puoi visualizzare le vulnerabilità delle immagini e i metadati delle immagini per i container in Artifact Registry.

Puoi utilizzare gcloud CLI per visualizzare le vulnerabilità e i metadati delle immagini.

Puoi anche utilizzare l'API REST di analisi degli elementi per eseguire una di queste azioni. Come per le altre API della piattaforma Cloud, devi autenticare l'accesso utilizzando OAuth2. Dopo aver eseguito l'autenticazione, puoi anche utilizzare l'API per creare note e occorrenze personalizzate e visualizzare le occorrenze delle vulnerabilità.

L'API Artifact Analysis supporta sia gRPC che REST/JSON. Puoi effettuare chiamate all'API utilizzando le librerie client o cURL per REST/JSON.

Controllare il deployment di immagini vulnerabili

Puoi utilizzare l'autorizzazione binaria per creare una lista consentita di vulnerabilità in base alle informazioni sulle vulnerabilità fornite dall'Artifact Analysis'ambito della pipeline Cloud Build. Se le vulnerabilità violano il criterio nella lista consentita, la compilazione non va a buon fine.

Puoi anche integrare l'Artifact Analysis con Autorizzazione binaria per creare attestazioni, che possono impedire l'esecuzione di immagini container con problemi di sicurezza noti nel tuo ambiente di deployment.

Origini delle vulnerabilità

La sezione seguente elenca le origini delle vulnerabilità utilizzate da Artifact Analysis per ottenere i dati CVE.

Scansioni dei pacchetti del sistema operativo

L'Artifact Analysis utilizza le seguenti origini:

Scansioni dei pacchetti di lingue

L'Artifact Analysis supporta l'analisi delle vulnerabilità per i pacchetti di lingue all'interno di un'immagine container. I dati sulle vulnerabilità vengono ottenuti dal database di avvisi di GitHub.

Nella maggior parte dei casi, a ogni vulnerabilità viene assegnato un ID CVE e questo ID diventa l'identificatore principale della vulnerabilità. Nei casi in cui non sia stato assegnato un ID CVE a una vulnerabilità, viene assegnato un ID GHSA come identificatore. Se in un secondo momento la vulnerabilità riceve un ID CVE, l'ID vulnerabilità viene aggiornato in base all'ID CVE. Per ulteriori informazioni, consulta la sezione Verificare la presenza di una vulnerabilità specifica in un progetto.

Versioni del sistema operativo supportate

L'Artifact Analysis supporta analisi delle vulnerabilità per le seguenti versioni del software del sistema operativo:

  • Sistema operativo AlmaLinux - Versioni: 8, 9 e versioni secondarie
  • Alpine Linux - Versioni: 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.15, 3.16, 3.17, 3.18, 3.19, 3.20
  • CentOS - Versioni: 6, 7, 8 e versioni secondarie
  • Chainguard: aggiornamenti in sequenza su un unico canale di rilascio.
  • Debian GNU/Linux - Versioni: 9, 10, 11, 12
  • Red Hat Enterprise Linux (RHEL): le versioni 6, 7, 8, 9 e le versioni secondarie sono supportate per le analisi automatiche del registro.
  • Red Hat Universal Base Image (UBI): versioni 8, 9 e versioni secondarie
  • Rocky Linux - Versioni: 8, 9 e versioni secondarie
  • SUSE Linux Enterprise Server (SLES) - Versioni: 12, 15 e versioni minori; SLES for SAP è supportato anche con le stesse versioni
  • Ubuntu - Versioni: 12.04, 12.10, 13.04, 14.04, 14.10, 15.04, 15.10, 16.04, 16.10, 17.04, 17.10, 18.04, 18.10, 20.04, 20.10, 21.04, 21.10, 22.04, 22.10, 23.04, 23.10, 24.04
  • Wolfi: aggiornamenti in sequenza su un unico canale di rilascio.

Limitazioni

  • L'Artifact Analysis genera risultati di analisi delle vulnerabilità per RHEL basati sull'ultima versione secondaria di ogni versione principale rilasciata. È possibile che i risultati della scansione siano imprecisi per le versioni minori precedenti di RHEL.
  • La versione 9 di RHEL non è supportata per la scansione on demand.

Gestori pacchetti e controllo delle versioni semantiche

Passaggi successivi