L'analisi dei container identifica le vulnerabilità e i pacchetti dannosi nuovi ed esistenti nelle dipendenze open source per le immagini container nei repository Artifact Registry. Artifact Analysis offre due modi per analizzare i pacchetti: analisi automatica e analisi on demand. Questo documento descrive entrambi i tipi di analisi.
Artifact Analysis fornisce anche la gestione dei metadati. Per scoprire di più su come utilizzare l'analisi e l'archiviazione dei metadati insieme per proteggere la pipeline CI/CD end-to-end, consulta la panoramica di Artifact Analysis.
Per scoprire di più sui costi associati all'analisi delle immagini container, consulta la sezione sui prezzi.
Questa panoramica presuppone che tu abbia già familiarità con l'utilizzo dei repository Docker in Artifact Registry.
Analizzare le immagini per rilevare le vulnerabilità
Artifact Analysis esegue analisi delle vulnerabilità e dei pacchetti dannosi sugli artefatti in Artifact Registry. Artifact Analysis identifica anche le dipendenze e le licenze per aiutarti a comprendere la composizione del software.
L'analisi automatica comprende due attività principali: analisi automatica e analisi continua.
Analisi automatica
Artifact Analysis analizza le nuove immagini quando vengono caricate in Artifact Registry. Questa analisi estrae informazioni sui pacchetti nel container. Le immagini vengono analizzate 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à e il software dannoso nei pacchetti monitorati pubblicamente. I dati sulle vulnerabilità provengono da vari provider upstream, mentre i dati sui pacchetti dannosi provengono dal repository di pacchetti dannosi OpenSSF. I pacchetti dannosi vengono segnalati come vulnerabilità con gravità CRITICAL.
Al termine dell'analisi di un'immagine, il risultato della vulnerabilità prodotto è la raccolta delle occorrenze di vulnerabilità per quell'immagine.
Le analisi automatiche delle vulnerabilità rilevano anche i secret, come le chiavi API e le chiavi dei account di servizio, in modo da impedire l'esposizione dei dati sensibili. Questa funzionalità è in anteprima pubblica. Per saperne di più, consulta la sezione Analizzare i secret.
Analisi continua
Artifact Analysis crea occorrenze per le vulnerabilità e i pacchetti dannosi rilevati quando carichi l'immagine. Dopo l'analisi iniziale, monitora continuamente i metadati delle immagini analizzate in Artifact Registry per rilevare nuove vulnerabilità e pacchetti dannosi.
Artifact Analysis riceve informazioni nuove e aggiornate sulle vulnerabilità e sui pacchetti dannosi da fonti di vulnerabilità più volte al giorno. Quando arrivano nuovi dati sulle vulnerabilità o sui pacchetti dannosi, Artifact Analysis aggiorna i metadati delle immagini analizzate per mantenerli aggiornati. Artifact Analysis aggiorna le occorrenze esistenti, crea nuove occorrenze per le nuove note ed elimina le occorrenze non più valide.
Artifact Analysis continua ad analizzare immagini e pacchetti purché sia stato eseguito il pull negli ultimi 30 giorni. Dopo 30 giorni, i metadati delle immagini e dei pacchetti analizzati non verranno più aggiornati e i risultati saranno obsoleti.
Artifact Analysis archivia i metadati che sono rimasti inattivi per più di 90 giorni. Questi metadati archiviati possono essere valutati solo utilizzando l'API. Puoi analizzare di nuovo un'immagine con metadati obsoleti o archiviati eseguendo il pull dell'immagine. L'aggiornamento dei metadati può richiedere fino a 24 ore. I pacchetti con metadati obsoleti o archiviati non possono essere analizzati di nuovo.
Architetture
Artifact Analysis può analizzare le immagini su qualsiasi architettura basata su Linux.
Puoi anche utilizzare l'analisi delle vulnerabilità con gli elenchi di manifest. Un elenco di 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.
Se l'elenco di manifest contiene un'immagine Linux amd64, Artifact Analysis la analizzerà. In caso contrario, Artifact Analysis seleziona un'immagine diversa dall'elenco.
Analisi on demand
L'analisi on demand consente di analizzare le immagini container localmente sul computer o nel registro utilizzando gcloud CLI. In questo modo, puoi personalizzare la pipeline CI/CD a seconda di quando devi accedere ai risultati delle vulnerabilità.
Tipi di pacchetti supportati
Quando esegui il push delle immagini container nei repository Docker in Artifact Registry, Artifact Analysis può analizzare le vulnerabilità in diversi tipi di pacchetti del sistema operativo e pacchetti di linguaggio dell'applicazione.
Le tabelle seguenti mettono a confronto i tipi di pacchetti che Artifact Analysis può analizzare con ogni servizio di analisi:
Pacchetti del sistema operativo supportati
| Analisi automatica con Artifact Registry | Analisi on demand | |
|---|---|---|
| AlmaLinux OS | ||
| Alpina | ||
| CentOS | ||
| Chainguard | ||
| Debian | ||
| Google Distroless | ||
| MinimOS | ||
| Red Hat Enterprise Linux (RHEL) | ||
| Red Hat Universal Base Image (UBI) | ||
| Rocky Linux | ||
| SUSE Linux Enterprise Server (SLES) | ||
| Ubuntu | ||
| Wolfi |
Pacchetti di linguaggio dell'applicazione supportati
| Analisi automatica con Artifact Registry | Analisi on demand | |
|---|---|---|
| Pacchetti Go | ||
| Pacchetti Java | ||
| Pacchetti Node.js | ||
| Pacchetti PHP | ||
| Pacchetti Python | ||
| Pacchetti Ruby | ||
| Pacchetti Rust | ||
| Pacchetti .NET |
Per saperne di più sulle funzionalità disponibili per ogni prodotto del registro, consulta la tabella comparativa.
Artifact Analysis non è supportato sui container Windows Server.
Interfacce di Artifact Analysis
Nella Google Cloud console, 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 Artifact Analysis per eseguire una di queste azioni. Come per le altre API di Google Cloud, devi autenticare l'accesso utilizzando OAuth2. Dopo l'autenticazione, puoi utilizzare l'API anche per creare note e occorrenze personalizzate e visualizzare le occorrenze di vulnerabilità.
L'API Artifact Analysis supporta sia gRPC sia REST/JSON. Puoi effettuare chiamate all'API utilizzando le librerie client o cURL per REST/JSON.
Trovare i percorsi dei file dei pacchetti
Quando Artifact Analysis rileva una vulnerabilità, potresti non riconoscere il pacchetto vulnerabile come dipendenza nel tuo artefatto. Questo può accadere se il gestore di pacchetti lo introduce o se il pacchetto è una dipendenza transitiva, ovvero una dipendenza di una delle tue dipendenze.
Per trovare il percorso del file che ha causato un risultato di vulnerabilità:
- Nella Google Cloud console, vai all'elenco delle vulnerabilità per un artefatto in Vai ad Artifact Registry.
- Per la vulnerabilità che vuoi esaminare, fai clic su VISUALIZZA CORREZIONE.
Nel riquadro dei dettagli, fai clic su MOSTRA ALTRE INFO.
Il campo Percorso file mostra il percorso del pacchetto vulnerabile.
Controllare il deployment di immagini vulnerabili
Puoi integrare Artifact Analysis con Autorizzazione binaria per creare attestazioni che possono impedire l'esecuzione di immagini container con problemi di sicurezza noti nell'ambiente di deployment.
Puoi anche utilizzare Autorizzazione binaria per creare una lista consentita di vulnerabilità basata sulle informazioni sulle vulnerabilità fornite da Artifact Analysis nell'ambito del deployment. Se le vulnerabilità violano la policy nella lista consentita, riceverai un avviso.
Infine, puoi utilizzare l'analisi on demand per bloccare e non riuscire le build in base alla gravità delle vulnerabilità rilevate.
Fonti di vulnerabilità
La sezione seguente elenca le fonti di vulnerabilità che Artifact Analysis utilizza per ottenere i dati CVE.
Analisi dei pacchetti del sistema operativo
Artifact Analysis utilizza le seguenti fonti:
- AlmaLinux OS
- Alpina
- CentOS: Red Hat e CentOS condividono la stessa fonte di dati sulle vulnerabilità. Poiché i pacchetti CentOS vengono pubblicati dopo i pacchetti Red Hat, una correzione disponibile per una vulnerabilità in Red Hat potrebbe richiedere del tempo per essere disponibile anche per CentOS.
- Chainguard
- Debian
- Google Distroless è basato su Debian e utilizza i dati sulle vulnerabilità di Debian.
- National Vulnerability Database
- Minimus
- Red Hat Enterprise Linux (RHEL)
- Red Hat Universal Base Image (UBI)
- Rocky Linux
- SUSE Linux Enterprise Server (SLES)
- Ubuntu
- Wolfi
Analisi dei pacchetti di linguaggio
Artifact Analysis supporta l'analisi delle vulnerabilità e dei pacchetti dannosi per i pacchetti di linguaggio all'interno di un'immagine container.
- I dati sulle vulnerabilità vengono ottenuti dal database di avvisi di GitHub.
I dati sui pacchetti dannosi vengono ottenuti dal repository di pacchetti dannosi OpenSSF. I pacchetti dannosi vengono segnalati come risultati con gravità CRITICAL. Artifact Analysis rileva i pacchetti dannosi che rientrano nelle seguenti categorie:
- Typosquatting o confusione delle dipendenze: pacchetti pubblicati con nomi simili a pacchetti popolari per indurre gli utenti a installarli.
- Takeover dell'account: pacchetti legittimi compromessi da utenti malintenzionati.
- Binari dannosi: binari precompilati per un pacchetto che contiene codice dannoso.
- Attività dei ricercatori di sicurezza: pacchetti creati dai ricercatori per dimostrare le vulnerabilità o monitorare l'utilizzo dei pacchetti.
Nella maggior parte dei casi, a ogni vulnerabilità viene assegnato un ID CVE e questo ID
diventa l'identificatore principale per quella vulnerabilità. Nei casi in cui non viene assegnato un
ID CVE a una vulnerabilità, viene assegnato un ID GHSA come
identificatore. Se in un secondo momento alla vulnerabilità viene assegnato un ID CVE, l'ID della vulnerabilità viene aggiornato in modo che corrisponda al CVE. Gli avvisi sui pacchetti dannosi hanno ID con il prefisso MAL-. Per saperne di più, consulta la sezione
Controllare una vulnerabilità specifica in un progetto.
Versioni del sistema operativo supportate
Artifact Analysis supporta l'analisi delle vulnerabilità per le seguenti versioni del software del sistema operativo:
- AlmaLinux OS: versioni 8, 9, 10 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, 3.21, 3.22, 3.23
- CentOS: versioni 6, 7, 8 e versioni secondarie
- Chainguard: aggiornamenti in sequenza su un singolo canale di rilascio.
- Debian GNU/Linux: versioni 11, 12, 13, 14, 15
- MinimOS: aggiornamenti in sequenza su un singolo canale di rilascio.
- Red Hat Enterprise Linux (RHEL): le versioni 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, 10 e versioni secondarie
- SUSE Linux Enterprise Server (SLES): versioni 12, 15 e versioni secondarie; SLES for SAP è supportato anche con le stesse versioni
- Ubuntu: versioni 14.04, 16.04, 18.04, 20.04, 22.04, 24.04, 24.10, 25.04, 25.10
- Wolfi: aggiornamenti in sequenza su un singolo canale di rilascio.
Limitazioni
La funzione principale di Artifact Analysis è analizzare e rilevare le vulnerabilità nei container e renderle visibili alla tua organizzazione. Artifact Analysis non dichiara di identificare le caratteristiche delle immagini che potrebbero aumentare o diminuire la capacità della tua organizzazione di verificare l'integrità o l'affidabilità di un'immagine. Per sviluppare ulteriormente questa fiducia, Google offre soluzioni che puoi utilizzare singolarmente o in combinazione. Scopri di più sul nostro approccio alla sicurezza della catena di fornitura del software.
Artifact Analysis fornisce i risultati dell'analisi delle vulnerabilità per RHEL in base all'ultima versione secondaria per ogni versione principale rilasciata. Se analizzi una versione secondaria precedente, potresti ottenere risultati imprecisi.
La versione 9 di RHEL non è supportata per l'analisi on demand.
Gestori di pacchetti e controllo delle versioni semantico
- Go: Artifact Analysis segnala le vulnerabilità per i pacchetti nella libreria standard Go e per i pacchetti Go esterni non inclusi nella libreria standard. Le vulnerabilità vengono segnalate con un'etichetta diversa per ogni tipo di pacchetto.
- Java: Artifact Analysis supporta i pacchetti Maven che seguono le convenzioni di denominazione di Maven. Se la versione del pacchetto include spazi, non verrà analizzata.
- Node.js: la corrispondenza della versione del pacchetto segue la specifica del controllo delle versioni semantico.
- PHP: Artifact Analysis analizza i pacchetti Composer. Consulta la sezione Controllo delle versioni semantico di Composer.
- Python: la corrispondenza della versione di Python segue la semantica PEP 440.
- Ruby: Artifact Analysis analizza i pacchetti RubyGems. Consulta la sezione Controllo delle versioni semantico di RubyGems.
- Rust: Artifact Analysis analizza i pacchetti Cargo. Consulta la sezione Controllo delle versioni semantico di Rust.
- .NET: Artifact Analysis analizza i pacchetti NuGet. Consulta la sezione Controllo delle versioni semantico di NuGet.