Scansione automatica dei pacchetti Node.js

Scopri come attivare la scansione automatica, eseguire il push di un'immagine container su Artifact Registry e visualizzare un elenco delle vulnerabilità rilevate nell'immagine.

Artifact Analysis esegue la scansione delle vulnerabilità ogni volta che viene eseguito il push di un'immagine su Artifact Registry. Gli amministratori della piattaforma e gli sviluppatori di applicazioni possono utilizzare questa funzionalità di scansione automatica per identificare i rischi nella pipeline di distribuzione del software.

Questa guida rapida utilizza un semplice pacchetto disponibile pubblicamente per mostrare un tipo di scansione dei pacchetti. Per impostazione predefinita, Artifact Analysis esegue la scansione delle vulnerabilità in più tipi di pacchetti dopo che hai abilitato l'API di analisi. I tipi di pacchetti supportati includono: OS, Go, Java (Maven), Python e Node.js (npm).

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Artifact Registry and Container Scanning APIs:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  8. Install the Google Cloud CLI.

  9. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  10. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the Artifact Registry and Container Scanning APIs:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  14. Crea un repository Docker in Artifact Registry

    Crea un repository Docker per archiviare l'immagine di esempio per questa guida rapida.

    1. Apri la pagina Repository nella console Google Cloud .

      Apri la pagina Repositori

    2. Fai clic su Crea repository.

    3. Nella pagina Crea repository, inserisci le seguenti impostazioni:

      • Nome: quickstart-docker-repo
      • Formato: Docker
      • Modalità: standard
      • Tipo di località: Regione
      • Regione: us-central1
    4. Fai clic su Crea.

    Viene visualizzata la pagina Repository. Il repository quickstart-docker-repo viene aggiunto all'elenco dei repository.

    Configura autenticazione

    Prima di eseguire il push o il pull delle immagini con Artifact Registry, devi configurare Docker in modo che utilizzi Google Cloud CLI per autenticare le richieste ad Artifact Registry.

    In Cloud Shell o nella shell locale, configura l'autenticazione per i repository Docker nella regione us-central1:

    gcloud auth configure-docker us-central1-docker.pkg.dev
    

    Ottenere un pacchetto

    1. Passa a una directory in cui vuoi salvare l'immagine container.

    2. Copia un'immagine nella directory locale. Ad esempio, puoi utilizzare Docker per estrarre bitnami.

      docker pull bitnami/express
      

    Assegnare un tag al pacchetto con un nome di repository

    Quando vuoi eseguire il push di un pacchetto in Artifact Registry, devi configurare il comando docker push in modo che esegua il push dell'immagine in una posizione specifica.

    Esegui il comando seguente per taggare l'immagine come quickstart-image:tag1:

    docker tag bitnami \
    us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

    Dove:

    • PROJECT è il tuo Google Cloud ID progetto. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.
    • us-central1 è la regione del repository Artifact Registry.
    • docker.pkg.dev è il nome host per i repository Docker.
    • quickstart-image è il nome dell'immagine che vuoi utilizzare nel repository. Il nome dell'immagine può essere diverso dal nome dell'immagine locale.
    • tag1 è un tag che stai aggiungendo all'immagine Docker. Se non hai specificato un tag, Docker applicherà il tag predefinito latest.

    Esegui il push dell'immagine ad Artifact Registry

    Artifact Analysis esegue automaticamente la scansione dei nuovi pacchetti npm quando vengono caricati in Artifact Registry.

    Per eseguire il push dell'immagine nel repository Docker in Artifact Registry, esegui questo comando:

    docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

    Sostituisci PROJECT con l' Google Cloud ID progetto. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.

    Visualizzare i risultati dell'analisi delle vulnerabilità

    Per visualizzare le vulnerabilità in un'immagine:

    1. Recupera l'elenco dei repository.

      Apri la pagina Repository

    2. Nell'elenco dei repository, fai clic su un repository.

    3. Nell'elenco delle immagini, fai clic sul nome di un'immagine.

      I totali delle vulnerabilità per ogni digest dell'immagine vengono visualizzati nella colonna Vulnerabilità.

      Un'immagine analizzata con vulnerabilità

    4. Per visualizzare l'elenco delle vulnerabilità di un'immagine, fai clic sul link nella colonna Vulnerabilità.

      La sezione Risultati scansione mostra un riepilogo dei tipi di pacchetti scansionati, delle vulnerabilità totali, delle vulnerabilità con correzioni disponibili, delle vulnerabilità senza correzioni e della gravità effettiva.

      La pagina dei risultati dell'analisi che elenca vulnerabilità, correzioni e gravità effettiva

      La tabella delle vulnerabilità elenca il nome delle vulnerabilità ed esposizioni comuni (CVE) per ogni vulnerabilità trovata, la gravità effettiva, il punteggio del Common Vulnerability Scoring System (CVSS), le correzioni (se disponibili), il nome del pacchetto che contiene la vulnerabilità e il tipo di pacchetto.

      La consoleGoogle Cloud mostra fino a 1200 vulnerabilità per pagina in questa tabella. Puoi filtrare e ordinare questi file per controllare un file, una directory, un livello o un tipo di file specifico in base all'estensione.

    5. Per i dettagli di una CVE specifica, fai clic sul nome della CVE.

    6. Per visualizzare i dettagli dell'occorrenza della vulnerabilità, come il numero di versione e la posizione interessata, nella riga con il nome della vulnerabilità, fai clic su Visualizza o Visualizza correzione. Il testo del link è Visualizza per le vulnerabilità senza correzione e Visualizza correzione per le vulnerabilità a cui è stata applicata una correzione.

    Visualizzare le vulnerabilità in un livello specifico

    Artifact Analysis fornisce metadati specifici del livello per aiutarti a identificare quale pacchetto contiene vulnerabilità e quale comando di build Docker ha introdotto quel livello.

    Per visualizzare i metadati delle vulnerabilità basati sui livelli nella console Google Cloud :

    1. In Artifact Registry, apri l'elenco dei repository.

      Apri la pagina Repository

    2. Nella pagina Repository, fai clic su un repository.

    3. Nella pagina Dettagli repository, fai clic su un'immagine.

    4. Nell'elenco delle versioni dell'immagine, fai clic su un digest dell'immagine.

    5. Nella pagina dei dettagli del digest dell'immagine, fai clic sulla scheda Vulnerabilità.

      Quando sono disponibili metadati basati sui livelli, l'Artifact Analysis mostra un elenco selezionabile di livelli nella barra Livello:

      Un'immagine della pagina Vulnerabilità per un digest di immagini, inclusa la barra dei livelli. La barra dei livelli include un menu a discesa per la selezione da un elenco numerato di livelli.

    6. Per visualizzare l'elenco dei livelli, fai clic sul menu a discesa dei livelli.

      Si apre un elenco a discesa che mostra un elenco numerato di livelli. Il livello 0 rappresenta il livello inferiore e ogni livello successivo viene creato su quello precedente. Vengono mostrati solo i livelli in cui sono state rilevate vulnerabilità.

      Un'immagine di un menu a discesa dei livelli aperto. Il menu mostra il comando Docker utilizzato per creare il livello, nonché il tipo e il numero di vulnerabilità per ogni livello.

      Per ogni livello, Artifact Analysis mostra il comando Docker utilizzato per creare il livello e il numero di vulnerabilità trovate in quel livello.

    7. Per saperne di più sulle vulnerabilità in un livello specifico, seleziona un livello dall'elenco dei livelli.

      La tabella delle vulnerabilità viene aggiornata per mostrare solo le vulnerabilità trovate nel livello selezionato. Puoi applicare altri filtri o esaminare vulnerabilità specifiche.

    8. Fai clic su VISUALIZZA o VISUALIZZA CORREZIONE accanto a una vulnerabilità per visualizzare informazioni più dettagliate.

      Il riquadro laterale Dettagli vulnerabilità mostra le posizioni dei file in cui i pacchetti presentano vulnerabilità.

    9. Nella tabella Posizione/i file, passa il mouse sopra il punto interrogativo per aprire metadati aggiuntivi del livello.

      Una finestra di dialogo mostra l'indice del livello, il comando di compilazione del livello, il digest del livello e l'immagine di base in cui puoi correggere la vulnerabilità.

    Altri modi per visualizzare i risultati

    La console Google Cloud mostra fino a 1200 vulnerabilità. Se la tua immagine contiene più di 1200 vulnerabilità, devi utilizzare gcloud o l'API per visualizzare l'elenco completo.

    Esegui la pulizia

    Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.

    Se hai creato un nuovo progetto per questa guida, ora puoi eliminarlo.

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

    Passaggi successivi