Analyser manuellement les packages Go

Ce guide de démarrage rapide vous explique comment extraire une image de conteneur, l'analyser manuellement à l'aide de l'analyse à la demande et récupérer les failles identifiées pour les packages système et Go. Pour suivre ce guide de démarrage rapide, vous allez utiliser Cloud Shell et un exemple d'image Alpine.

Avant de commencer

  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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the On-Demand Scanning API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the On-Demand Scanning API.

    Enable the API

Télécharger et numériser une image

  1. Ouvrez une fenêtre Cloud Shell dans votre projet.

    Ouvrir Cloud Shell

    Un terminal s'ouvre avec tous les outils nécessaires pour suivre ce guide.

  2. Utilisez Docker pour extraire l'image du conteneur:

    docker pull golang:1.17.6-alpine
    
  3. Exécutez l'analyse:

    gcloud artifacts docker images scan golang:1.17.6-alpine --additional-package-types=GO
    

    Cela déclenche le processus d'analyse et renvoie le nom de l'analyse une fois celle-ci terminée:

    ✓ Scanning container image
      ✓ Locally extracting packages and versions from local container image
      ✓ Remotely initiating analysis of packages and versions
      ✓ Waiting for analysis operation to complete [projects/my-project/locations/us/operations/849db1f8-2fb2-4559-9fe0-8720d8cd347c]
    Done.
    done: true
    metadata:
      '@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesMetadata
      createTime: '2022-01-11T16:58:11.711487Z'
      resourceUri: golang:1.16.13-alpine
    name: projects/my-project/locations/us/operations/f4adb1f8-20b2-4579-9fe0-8720d8cd347c
    response:
      '@type': type.googleapis.com/google.cloud.ondemandscanning.v1.AnalyzePackagesResponse
      scan: projects/my-project/locations/us/scans/a54f12b0-ca2d-4d93-8da5-5cf48e9e20ef
    
  4. Utilisez le nom de l'analyse, la valeur de scan à partir de la sortie, pour récupérer les résultats de l'analyse:

    gcloud artifacts docker images list-vulnerabilities \
    projects/my-project/locations/us/scans/a54f12b0-ca2d-4d93-8da5-5cf48e9e20ef
    

    La sortie contient une liste de failles de Go, de la bibliothèque standard Go et des packages Linux. Les libellés suivants indiquent le type de failles Go:

    • packageType:GO_STDLIB. Vulnérabilités de la bibliothèque standard Go. Cela indique que la faille a été détectée dans la chaîne d'outils Go utilisée pour créer le binaire ou dans la bibliothèque standard fournie avec la chaîne d'outils. Une solution possible consiste à mettre à niveau votre chaîne d'outils de compilation.

    • packageType:GO : failles des packages Go. Cela indique que la faille a été détectée dans un package tiers. Une solution possible consiste à mettre à niveau vos modules dépendants.

Effectuer un nettoyage

Pour éviter que les ressources utilisées dans cette page soient facturées sur votre compte Google Cloud, procédez comme suit :

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Étape suivante