Explorer les failles avec l'aide de Gemini

Ce document explique comment utiliser Gemini Cloud Assist pour en savoir plus sur l'état de vos artefacts, obtenir des informations sur les dépôts et les métadonnées d'artefacts, et utiliser les informations d'Artifact Analysis pour répondre aux questions sur les failles d'artefacts et votre nomenclature logicielle (SBOM).

Avant de commencer

  1. Assurez-vous d'avoir configuré Gemini Cloud Assist dans votre Google Cloud projet.
  2. Connectez-vous à votre Google Cloud compte. Si vous n'avez jamais utilisé Google Cloud, créez un compte pour évaluer les performances de nos produits dans des scénarios réels. Les nouveaux clients bénéficient également de 300 $ de crédits sans frais pour exécuter, tester et déployer des charges de travail.
  3. In the Google Cloud console, on the project selector page, select or create 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  5. 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.

    Enable the APIs

  6. Installez la Google Cloud CLI.

  7. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  8. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init
  9. In the Google Cloud console, on the project selector page, select or create 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 role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  11. 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.

    Enable the APIs

  12. Installez la Google Cloud CLI.

  13. Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  14. Pour initialiser la gcloud CLI, exécutez la commande suivante :

    gcloud init

Rôles requis

Pour obtenir les autorisations nécessaires pour demander des informations sur vos artefacts à Gemini Cloud Assist, demandez à votre administrateur de vous accorder les rôles IAM suivants :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Ouvrir Gemini Cloud Assist

Vous pouvez ouvrir le chat Gemini Cloud Assist depuis n'importe où dans la Google Cloud console.

  1. Dans la Google Cloud console, sélectionnez un projet dans lequel vous avez stocké des images de conteneurs dans Artifact Registry.

    Accéder au sélecteur de projet

  2. Pour ouvrir le panneau Cloud Assist, cliquez sur spark Ouvrir ou fermer le chat Gemini AI.
  3. Pour saisir un prompt, saisissez-le, puis cliquez sur envoyer Envoyer.

Considérations relatives aux prompts

Vous trouverez ci-dessous une liste des considérations spécifiques à Artifact Analysis dont vous devez tenir compte lorsque vous générez des prompts Gemini Cloud Assist. Pour en savoir plus sur les conseils généraux concernant la rédaction de prompts, consultez Rédiger de meilleurs prompts pour Gemini dans Google Cloud.

  • Par défaut, tous les prompts sont associés au projet sélectionné. Toutefois, vous pouvez les diriger pour filtrer par emplacement, dépôt ou image.
  • Toute requête basée sur un nom d'image de conteneur traite ce nom comme un préfixe. Cela vous permet de filtrer dans un projet, un dépôt ou une image spécifique (sur différents SHA), mais pas par tag.
  • Pour obtenir des résultats plus spécifiques, incluez un champ d'application. Par exemple, pour obtenir les résultats d'une image spécifique, incluez le nom de l'image dans le champ d'application. Vous pouvez filtrer en ajoutant des détails sur le projet, le dépôt, l'image ou l'image@digest au nom de l'image de conteneur.
  • Les qualificateurs de région ne sont pas nécessaires pour les prompts Artifact Analysis, car Artifact Analysis fournit des résultats combinés de toutes les régions. Vous pouvez spécifier un qualificateur de région pour filtrer les résultats.

Répertorier mes principales failles connues

Vous pouvez demander à Gemini Cloud Assist de répertorier les principales failles connues dans votre projet actuel. Les failles sont triées par ordre décroissant en fonction de leur score CVSS (Common Vulnerability Scoring System) et regroupées par ID de faille. Seules les 10 principales failles sont affichées. Les résultats incluent les failles de toutes les images analysées au cours des 30 derniers jours.

Vous pouvez filtrer la réponse par nom d'image de conteneur.

Pour répertorier les principales failles connues, dans le chat Gemini Cloud Assist, saisissez le prompt suivant :

List artifact vulnerabilities for `CONTAINER_IMAGE_NAME`.

Remplacez CONTAINER_IMAGE_NAME par le nom de l'image de conteneur qui inclut votre dépôt, par exemple us-central1-docker.pkg.dev/my-project/my-repository.

Si vous incluez plus de détails dans le nom de votre image de conteneur, vous obtiendrez une réponse plus précise. Par exemple, LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE fournit des informations sur les failles d'une image spécifique.

Le prompt suivant demande à Gemini Cloud Assist de répertorier les principales failles connues pour le dépôt us-central1-docker.pkg.dev/my-project/my-repository :

List artifact vulnerabilities for
`us-central1-docker.pkg.dev/my-project/my-repository`.

La réponse inclut une liste de 10 failles au maximum, triées par ordre décroissant en fonction de leur score CVSS pour le dépôt spécifié.

Pour afficher toutes vos failles, utilisez la commande gcloud CLI artifacts vulnerabilities list. Vous pouvez inclure le nom d'image non qualifié ou fournir un algorithme de hachage sécurisé (SHA) pour afficher les failles.

Répertorier les images par faille

Vous pouvez demander à Gemini Cloud Assist d'afficher toutes vos images qui incluent une faille spécifiée. La réponse est triée par ordre décroissant en fonction de la date de création la plus récente et inclut les images analysées au cours des 30 derniers jours. Ce prompt affiche un maximum de 10 images et n'inclut que les images qui ont été analysées par Artifact Analysis.

Vous pouvez filtrer la réponse par :

  • ID de la faille
  • Nom de l'image de conteneur

Pour répertorier vos images qui incluent une faille spécifique, dans le chat Cloud Assist, saisissez le prompt suivant :

List docker container images that contain vulnerability
`VULNERABILITY_ID`.

Remplacez VULNERABILITY_ID par l'ID de la faille que vous souhaitez localiser, par exemple CVE-2024-01234.

Le prompt suivant demande à Gemini Cloud Assist de répertorier les images contenant la faille CVE-2024-01234 :

List artifact vulnerabilities for `CVE-2024-01234`.

La réponse inclut une liste de 10 images au maximum contenant la faille spécifiée, triées par ordre décroissant en fonction de leur score CVSS pour le dépôt spécifié.

Répertorier les images par package

Vous pouvez demander à Gemini Cloud Assist de renvoyer une liste d'images qui incluent un package spécifié. Les images sont triées par ordre décroissant en fonction de leur date de création et incluent les images analysées au cours des 30 derniers jours. Ce prompt affiche un maximum de 10 images et n'inclut que les images qui ont été analysées par Artifact Analysis.

Vous pouvez filtrer la réponse par nom d'image de conteneur.

Pour répertorier vos images qui incluent un package spécifique, dans le chat Cloud Assist, saisissez le prompt suivant :

List docker container images that contain package
`PACKAGE_ID`.

Remplacez PACKAGE_ID par l'ID du package que vous souhaitez localiser.

Par exemple, le prompt suivant demande à Gemini Cloud Assist de répertorier les images contenant le package my-package-name :

List images that contain package `my-package-name`.

La réponse inclut une liste de 10 images au maximum contenant le package spécifié.

Afficher la provenance du build

Vous pouvez demander à Gemini Cloud Assist de renvoyer les 10 dernières informations de provenance du build pour un projet et un champ d'application spécifiés. Les résultats sont triés par ordre décroissant en fonction de la date de création, les éléments les plus récents s'affichant en haut de la liste. Jusqu'à 10 builds sont affichés. Pour être répertoriés, les builds doivent avoir été créés au cours des 30 derniers jours. Ce prompt n'est compatible qu'avec les builds dont la provenance est SLSA 1.0.

Vous pouvez filtrer la réponse par nom d'image de conteneur.

Pour répertorier la provenance de votre build, dans le chat Cloud Assist , saisissez le prompt suivant :

List build provenance for CONTAINER_IMAGE_NAME.

Remplacez CONTAINER_IMAGE_NAME par l'ID de l' image dont vous souhaitez connaître la provenance.

Par exemple, le prompt suivant demande à Gemini Cloud Assist de répertorier la provenance du build pour us-central1-docker.pkg.dev/my-project/my-image :

List build provenance for `us-central1-docker.pkg.dev/my-project/my-image`.

Vous pouvez supprimer les détails de l'emplacement, du projet ou de l'image du nom de votre image de conteneur pour obtenir un ensemble de résultats plus large. La réponse inclut les détails de provenance du build pour les 10 derniers builds.

Pour afficher vos builds dans la Google Cloud console, accédez à la pageHistorique de compilation.

Répertorier les SBOM

Vous pouvez demander à Gemini Cloud Assist de renvoyer les derniers SBOM de votre dépôt. Les résultats sont triés par ordre décroissant en fonction de la date de création, les éléments les plus récents s'affichant en haut de la liste. Vous pouvez afficher jusqu'à 10 builds créés au cours des 30 derniers jours.

Vous pouvez filtrer la réponse par nom d'image de conteneur, y compris les détails image@digest.

Pour répertorier vos SBOM, dans le chat Cloud Assist, saisissez le prompt suivant :

List SBOMs for `CONTAINER_IMAGE_NAME`.

Remplacez CONTAINER_IMAGE_NAME par le nom de l'image de conteneur que vous souhaitez rechercher, par exemple us-central1-docker.pkg.dev/my-project/my-repo.

Le prompt suivant demande à Gemini Cloud Assist de répertorier les SBOM pour le dépôt us-central1-docker.pkg.dev/my-project/my-repo :

List SBOMs for `us-central1-docker.pkg.dev/my-project/my-repo`.

La réponse inclut les détails des SBOM pour les 10 derniers dépôts. Vous pouvez supprimer les détails de l'emplacement, du projet ou de l'image du nom de votre image de conteneur pour obtenir un ensemble de résultats plus large.

Vous pouvez afficher tous les SBOM à l'aide de la commande gcloud CLI artifacts sbom list.

Prompts supplémentaires

Les prompts suivants illustrent les possibilités d'utilisation de variables pour filtrer avec Gemini Cloud Assist.

Pour répertorier les failles par variable spécifique, saisissez les informations suivantes dans le chat Cloud Assist :

List vulnerabilities for `SCOPE`.

Dans ce prompt, SCOPE peut être défini sur un projet, un dépôt, une image ou une image et un condensé.

Pour répertorier les images contenant un package spécifique, saisissez les informations suivantes dans le chat Cloud Assist :

List images that contain the log4j package.

Pour répertorier les images contenant une faille spécifique, saisissez les informations suivantes dans le chat Cloud Assist :

List images that contain `VULNERABILITY_ID`.

Dans ce prompt, remplacez VULNERABILITY_ID par un numéro CVE.

Étape suivante