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.
Artifact Analysis non esegue automaticamente l'analisi delle immagini esistenti. Per analizzare un'immagine esistente, devi eseguirne di nuovo il push.
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 inviate o rimosse negli ultimi 30 giorni. Artifact Analysis archivia i metadati più vecchi di 30 giorni.Per eseguire di nuovo la scansione di un'immagine con metadati 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 a livello locale sul computer o nel tuo registry utilizzando la gcloud CLI. In questo modo avrai 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 eseguire la transizione 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 da Artifact Analysis nell'ambito della pipeline Cloud Build. Se le vulnerabilità violano i criteri 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:
- Sistema operativo AlmaLinux
- Alpino
- CentOS: Red Hat e CentOS condividono la stessa fonte di dati sulle vulnerabilità. Poiché i pacchetti CentOS vengono pubblicati dopo i pacchetti Red Hat, potrebbe essere necessario del tempo prima che una correzione disponibile per una vulnerabilità in Red Hat sia disponibile anche per CentOS.
- Paracatena
- Debian
- Google Distroless è basato su Debian e utilizza i dati sulle vulnerabilità di Debian.
- National Vulnerability Database
- Red Hat Enterprise Linux (RHEL)
- Red Hat Universal Base Image (UBI)
- Rocky Linux
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
- Wolfi
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 alla 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
- Go - Artifact Analysis segnala le vulnerabilità dei pacchetti nella libreria standard Go e dei pacchetti Go esterni non inclusi nella libreria standard. Le vulnerabilità vengono segnalate con un'etichetta diversa per ogni tipo di pacchetto.
- Java - L'Artifact Analysis supporta i pacchetti Maven che rispettano le convenzioni di denominazione di Maven. Se la versione del pacchetto include spazi, non verrà sottoposta a scansione.
- Node.js: la corrispondenza della versione del pacchetto segue la specifica del controllo delle versioni semantico.
- PHP - Artifact Analysis analizza i pacchetti Composer. Consulta Controllo delle versioni semantiche di Composer.
- Python: la corrispondenza della versione di Python segue la semantica di PEP 440.
- Ruby: Artifact Analysis analizza i pacchetti RubyGems. Consulta la sezione Controllo delle versioni semantiche di RybyGems.
- Rust: Artifact Analysis analizza i pacchetti Cargo. Consulta la sezione Controllo delle versioni semantiche di Rust.
- .NET: Artifact Analysis analizza i pacchetti NuGet. Consulta la sezione Controllo delle versioni semantiche di NuGet.