在 Gemini 的协助下探索漏洞

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

准备工作

  1. 确保您已在 Google Cloud 项目中设置了 Gemini Cloud Assist。
  2. 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.
  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

  5. Enable the Artifact Registry and Container Scanning APIs.

    Enable the APIs

  6. Install the 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.

    Go to project selector

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

  11. Enable the Artifact Registry and Container Scanning APIs.

    Enable the APIs

  12. Install the Google Cloud CLI.

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

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

    gcloud init
  15. 所需的角色

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

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

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

    打开 Gemini Cloud Assist

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

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

      转到“项目选择器”

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

    提示注意事项

    以下是生成 Gemini Cloud Assist 提示时应注意的一些特定于 Artifact Analysis 的注意事项。如需详细了解有关撰写提示的一般建议,请参阅为 Gemini for Google Cloud撰写更好的提示

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

    列出我的主要已知漏洞

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

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

    如需列出最严重的已知漏洞,请在 Gemini Cloud Assist 对话中输入以下提示:

    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 张包含指定软件包的图片列表。

    列出 build 出处

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

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

    如需列出 build 出处,请在 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 的 build 出处:

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

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

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

    列出 SBOM

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

    您可以按容器映像名称(包括 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 编号。

    后续步骤