在 Gemini 的协助下探索漏洞

本文档介绍了如何使用 Gemini Cloud Assist 了解工件的状态、获取有关代码库和工件元数据的信息,以及使用 Artifact Analysis 信息回答有关工件漏洞和软件物料清单 (SBOM) 的问题。

准备工作

  1. 确保您已在您的 Google Cloud 项目中设置 Gemini Cloud Assist。
  2. 登录您的 Google Cloud 账号。如果您是新手 Google Cloud, 请创建一个账号来评估我们的产品在 实际场景中的表现。新客户还可获享 $300 赠金,用于 运行、测试和部署工作负载。
  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. 安装 Google Cloud CLI。

  7. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  8. 如需初始化 gcloud CLI,请运行以下命令:

    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. 安装 Google Cloud CLI。

  13. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  14. 如需初始化 gcloud CLI,请运行以下命令:

    gcloud init

所需的角色

如需获得向 Gemini Cloud Assist 询问有关工件的信息所需的权限,请让您的管理员为您授予以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。

打开 Gemini Cloud Assist

您可以从 Google Cloud 控制台中的任意位置打开 Gemini Cloud Assist 对话。

  1. 在 Google Cloud 控制台中,选择一个项目,其中包含存储在 Artifact Registry 中的容器映像 。

    转到“项目选择器”

  2. 如需打开 Cloud Assist 面板,请点击 spark 打开或关闭 Gemini AI 对话
  3. 如需输入提示,请键入提示,然后点击 发送 Send

提示注意事项

以下是生成 Gemini Cloud Assist 提示时应注意的 Artifact Analysis 特定注意事项列表。 如需详细了解有关通用提示撰写建议,请访问 为 Gemini for 撰写更好的提示 Google Cloud

  • 所有提示默认都针对所选项目,但您可以将提示定向为按位置、代码库或映像进行过滤。
  • 任何基于容器映像名称的查询都会将容器映像名称视为前缀。这样,您就可以在项目、代码库或特定映像(跨不同 SHA)中进行过滤,但无法按标签进行过滤。
  • 如需获得更具体的结果,请添加范围。例如,如需获取特定映像的结果,请在范围中添加映像名称。您可以通过向容器映像名称添加项目、代码库、映像或 image@digest 详细信息进行过滤。
  • Artifact Analysis 提示不需要区域限定符,因为 Artifact Analysis 会提供来自所有区域的合并结果。 您可以指定区域限定符来过滤结果。

列出我最常遇到的已知漏洞

您可以提示 Gemini Cloud Assist 列出当前项目中最常遇到的已知漏洞。漏洞按其常见漏洞评分系统 (CVSS) 分数降序排序,并按漏洞 ID 分组。系统仅显示前 10 个漏洞。结果包括过去 30 天内扫描的所有映像中的漏洞。

您可以按容器映像名称过滤响应。

如需列出最常遇到的已知漏洞,请在 Gemini Cloud Assist Chat 中输入以下提示:

List artifact vulnerabilities for `CONTAINER_IMAGE_NAME`.

CONTAINER_IMAGE_NAME 替换为包含代码库的容器映像名称,例如 us-central1-docker.pkg.dev/my-project/my-repository

在容器映像名称中添加更多详细信息会返回更准确的响应。例如,LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE 将提供有关特定映像的漏洞详细信息。

以下提示要求 Gemini Cloud Assist 列出代码库 us-central1-docker.pkg.dev/my-project/my-repository 中最常遇到的已知漏洞:

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

响应包含最多 10 个漏洞的列表,这些漏洞按其 CVSS 分数降序排序,适用于指定代码库。

如需查看所有漏洞,请使用 artifacts vulnerabilities list gcloud CLI 命令。您可以添加不合格的映像名称,也可以提供安全哈希算法 (SHA) 来查看漏洞。

按漏洞列出映像

您可以提示 Gemini Cloud Assist 显示包含指定漏洞的所有映像。响应按创建日期降序排序,并包含过去 30 天内扫描的映像。此提示最多显示 10 个映像,并且仅包含已由 Artifact Analysis 扫描的映像。

您可以按以下条件过滤响应:

  • 漏洞 ID
  • 容器映像名称

如需列出包含特定漏洞的映像,请在 Cloud Assist 对话中输入以下提示:

List docker container images that contain vulnerability
`VULNERABILITY_ID`.

VULNERABILITY_ID 替换为您要查找的漏洞的 ID,例如 CVE-2024-01234

以下提示要求 Gemini Cloud Assist 列出包含漏洞 CVE-2024-01234 的映像:

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

响应包含最多 10 个包含指定漏洞的映像的列表,这些映像按其 CVSS 分数降序排序,适用于指定代码库。

按软件包列出映像

您可以提示 Gemini Cloud Assist 返回包含指定软件包的映像列表。映像按创建日期降序排序,并包含过去 30 天内扫描的映像。此提示最多显示 10 个映像,并且仅包含已由 Artifact Analysis 扫描的映像。

您可以按容器映像名称过滤响应。

如需列出包含特定软件包的映像,请在 Cloud Assist 对话中输入以下提示:

List docker container images that contain package
`PACKAGE_ID`.

PACKAGE_ID 替换为您要查找的软件包的 ID。

例如,以下提示要求 Gemini Cloud Assist 列出包含软件包 my-package-name 的映像:

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

响应包含最多 10 个包含指定软件包的映像的列表。

列出构建出处

您可以提示 Gemini Cloud Assist 返回指定项目和范围的 10 个最新构建来源详细信息。结果按创建日期降序排序,最近创建的项目位于列表顶部。最多显示 10 个构建。如需列出构建,必须在过去 30 天内创建构建。此提示仅支持具有 SLSA 1.0 来源的构建。

您可以按容器映像名称过滤响应。

如需列出构建出处,请在 Cloud Assist 对话中输入以下提示:

List build provenance for CONTAINER_IMAGE_NAME.

CONTAINER_IMAGE_NAME 替换为您要了解来源的 映像的 ID。

例如,以下提示要求 Gemini Cloud Assist 列出 us-central1-docker.pkg.dev/my-project/my-image 的构建出处:

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

您可以从容器映像名称中移除位置、项目或映像详细信息,以返回更广泛的结果集。响应包含 10 个最新构建的构建来源详细信息。

如需在 Google Cloud 控制台中查看构建,请访问**构建记录** 页面。

列出 SBOM

您可以提示 Gemini Cloud Assist 返回代码库中的最新 SBOM。结果按创建日期降序排序,最近创建的项目位于列表顶部。最多可以显示过去 30 天内创建的 10 个构建。

您可以按容器映像名称(包括 image@digest 详细信息)过滤响应。

如需列出 SBOM,请在 Cloud Assist 对话中输入以下提示:

List SBOMs for `CONTAINER_IMAGE_NAME`.

CONTAINER_IMAGE_NAME 替换为您要搜索的容器映像名称,例如 us-central1-docker.pkg.dev/my-project/my-repo

以下提示要求 Gemini Cloud Assist 列出代码库 us-central1-docker.pkg.dev/my-project/my-repo 的 SBOM:

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

响应包含 10 个最新代码库的 SBOM 详细信息。 您可以从容器映像名称中移除位置、项目或映像详细信息,以返回更广泛的结果集。

您可以使用 artifacts SBOM list gcloud CLI 命令查看所有 SBOM。

其他提示

以下提示演示了如何使用变量通过 Gemini Cloud Assist 进行过滤。

如需按特定变量列出漏洞,请在 Cloud Assist 对话中输入以下内容:

List vulnerabilities for `SCOPE`.

在此提示中,SCOPE 可以设置为项目、代码库、映像或映像和摘要。

如需列出包含特定软件包的映像,请在 Cloud Assist 对话中输入以下内容:

List images that contain the log4j package.

如需列出包含特定漏洞的映像,请在 Cloud Assist 对话中输入以下内容:

List images that contain `VULNERABILITY_ID`.

在此提示中,将 VULNERABILITY_ID 替换为 CVE 编号。

后续步骤