Explora vulnerabilidades con la asistencia de Gemini

En este documento, se describe cómo puedes usar Gemini Cloud Assist para obtener información sobre el estado de tus artefactos, obtener información sobre los repositorios y los metadatos de los artefactos, y usar la información de Artifact Analysis para responder preguntas sobre las vulnerabilidades de los artefactos y tus listas de materiales de software (SBOM).

Antes de comenzar

  1. Asegúrate de haber configurado Gemini Cloud Assist en tu proyecto de Google Cloud .
  2. Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  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, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  6. Install the Google Cloud CLI.

  7. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  8. To initialize the gcloud CLI, run the following command:

    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, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  12. Install the Google Cloud CLI.

  13. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  14. To initialize the gcloud CLI, run the following command:

    gcloud init

Roles obligatorios

Para obtener los permisos que necesitas para solicitarle información a Gemini Cloud Assist sobre tus artefactos, pídele a tu administrador que te otorgue los siguientes roles de IAM:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Abrir Gemini Cloud Assist

Puedes abrir el chat de Gemini Cloud Assist desde cualquier lugar de la consola deGoogle Cloud .

  1. En la consola de Google Cloud , selecciona un proyecto en el que tengas imágenes de contenedor almacenadas en Artifact Registry.

    Ir al selector de proyectos

  2. Para abrir el panel de Cloud Assist, haz clic en spark Abrir o cerrar chat de IA de Gemini.
  3. Para ingresar una instrucción, escríbela y haz clic en enviar Enviar.

Consideraciones sobre las instrucciones

A continuación, se muestra una lista de consideraciones específicas de Artifact Analysis que debes tener en cuenta cuando generes instrucciones de Gemini Cloud Assist. Para obtener más detalles sobre consejos generales para escribir instrucciones, consulta Escribe mejores instrucciones para Gemini para Google Cloud.

  • Todas las instrucciones se dirigen de forma predeterminada al proyecto seleccionado. Sin embargo, puedes dirigir tu instrucción para que se filtre por ubicación, repositorio o imagen.
  • Cualquier consulta basada en el nombre de una imagen de contenedor trata el nombre de la imagen de contenedor como un prefijo. Esto te permite filtrar dentro de un proyecto, un repositorio o una imagen específica (en diferentes SHAs), pero no te permite filtrar por etiqueta.
  • Para obtener resultados más específicos, incluye un alcance. Por ejemplo, para obtener resultados de una imagen específica, incluye el nombre de la imagen en el alcance. Puedes agregar detalles del proyecto, el repositorio, la imagen o la imagen@resumen al nombre de la imagen del contenedor para filtrar los resultados.
  • No se necesitan calificadores de región para las instrucciones de Artifact Analysis, ya que Artifact Analysis proporciona resultados combinados de todas las regiones. Puedes especificar un calificador de región para filtrar los resultados.

Enumera mis principales vulnerabilidades conocidas

Puedes solicitarle a Gemini Cloud Assist que enumere las principales vulnerabilidades conocidas en tu proyecto actual. Las vulnerabilidades se ordenan por su puntuación del Common Vulnerability Scoring System (CVSS) en orden descendente y se agrupan por su ID de vulnerabilidad. Solo se muestran las 10 vulnerabilidades principales. Los resultados incluyen vulnerabilidades de todas las imágenes analizadas en los últimos 30 días.

Puedes filtrar la respuesta por el nombre de la imagen de contenedor.

Para enumerar las principales vulnerabilidades conocidas, en el chat de Gemini Cloud Assist, ingresa la siguiente instrucción:

List artifact vulnerabilities for `CONTAINER_IMAGE_NAME`.

Reemplaza CONTAINER_IMAGE_NAME por el nombre de la imagen de contenedor que incluye tu repositorio, por ejemplo, us-central1-docker.pkg.dev/my-project/my-repository.

Si incluyes más detalles en el nombre de la imagen de contenedor, obtendrás una respuesta más precisa. Por ejemplo, LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE proporcionaría detalles de vulnerabilidades en una imagen específica.

La siguiente instrucción le pide a Gemini Cloud Assist que enumere las principales vulnerabilidades conocidas del repositorio us-central1-docker.pkg.dev/my-project/my-repository:

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

La respuesta incluye una lista de hasta 10 vulnerabilidades ordenadas por su puntuación de CVSS en orden descendente para el repositorio especificado.

Para ver todas tus vulnerabilidades, usa el comando de la gcloud CLI artifacts vulnerabilities list. Puedes incluir el nombre de la imagen sin calificar o proporcionar un algoritmo de hash seguro (SHA) para ver las vulnerabilidades.

Enumera las imágenes por vulnerabilidad

Puedes solicitarle a Gemini Cloud Assist que muestre todas las imágenes que incluyen una vulnerabilidad específica. La respuesta se ordena de forma descendente desde la fecha de creación más reciente y contiene las imágenes analizadas en los últimos 30 días. En este mensaje, se muestran un máximo de 10 imágenes y solo se incluyen las que se analizaron con Artifact Analysis.

Puedes filtrar la respuesta de la siguiente manera:

  • ID de la vulnerabilidad
  • Nombre de la imagen del contenedor

Para enumerar las imágenes que incluyen una vulnerabilidad específica, en el chat de Cloud Assist, ingresa la siguiente instrucción:

List docker container images that contain vulnerability
`VULNERABILITY_ID`.

Reemplaza VULNERABILITY_ID por el ID de la vulnerabilidad que deseas ubicar, por ejemplo, CVE-2024-01234.

La siguiente instrucción le pide a Gemini Cloud Assist que enumere las imágenes que contienen la vulnerabilidad CVE-2024-01234:

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

La respuesta incluye una lista de hasta 10 imágenes que contienen la vulnerabilidad especificada, ordenadas por su puntuación de CVSS en orden descendente para el repositorio especificado.

Cómo mostrar una lista de imágenes por paquete

Puedes darle una instrucción a Gemini Cloud Assist para que muestre una lista de imágenes que incluyan un paquete especificado. Las imágenes se ordenan de forma descendente según su fecha de creación y se incluyen las imágenes analizadas en los últimos 30 días. Esta instrucción muestra un máximo de 10 imágenes y solo incluye las que se analizaron con Artifact Analysis.

Puedes filtrar la respuesta por el nombre de la imagen de contenedor.

Para enumerar las imágenes que incluyen un paquete específico, en el chat de Asistente de Cloud, ingresa la siguiente instrucción:

List docker container images that contain package
`PACKAGE_ID`.

Reemplaza PACKAGE_ID por el ID del paquete que deseas ubicar.

Por ejemplo, la siguiente instrucción le pide a Gemini Cloud Assist que enumere las imágenes que contienen el paquete my-package-name:

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

La respuesta incluye una lista de hasta 10 imágenes que contienen el paquete especificado.

Enumera la procedencia de la compilación

Puedes solicitarle a Gemini Cloud Assist que muestre los 10 detalles de procedencia de la compilación más recientes para un proyecto y un alcance especificados. Los resultados se ordenan por fecha de creación en orden descendente, con los elementos creados más recientemente en la parte superior de la lista. Se muestran hasta 10 compilaciones. Para que se muestren, las compilaciones deben haberse creado en los últimos 30 días. Esta instrucción solo admite compilaciones con procedencia de SLSA 1.0.

Puedes filtrar la respuesta por el nombre de la imagen de contenedor.

Para enumerar la procedencia de tu compilación, en el chat de Cloud Assist, ingresa la siguiente instrucción:

List build provenance for CONTAINER_IMAGE_NAME.

Reemplaza CONTAINER_IMAGE_NAME por el ID de la imagen cuya procedencia deseas conocer.

Por ejemplo, la siguiente instrucción le pide a Gemini Cloud Assist que enumere la procedencia de compilación de us-central1-docker.pkg.dev/my-project/my-image:

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

Puedes quitar los detalles de la ubicación, el proyecto o la imagen del nombre de la imagen de contenedor para obtener un conjunto de resultados más amplio. La respuesta incluye detalles de la procedencia de las 10 compilaciones más recientes.

Para ver tus compilaciones en la Google Cloud consola, visita la página Historial de compilaciones.

Enumera las SBOM

Puedes pedirle a Gemini Cloud Assist que devuelva las SBOM más recientes de tu repositorio. Los resultados se ordenan por fecha de creación en orden descendente, con los elementos creados más recientemente en la parte superior de la lista. Se pueden mostrar hasta 10 compilaciones que se crearon en los últimos 30 días.

Puedes filtrar la respuesta por el nombre de la imagen de contenedor, incluidos los detalles de image@digest.

Para enumerar tus SBOM, ingresa la siguiente instrucción en el chat de Cloud Assist:

List SBOMs for `CONTAINER_IMAGE_NAME`.

Reemplaza CONTAINER_IMAGE_NAME por el nombre de la imagen de contenedor que deseas buscar, por ejemplo, us-central1-docker.pkg.dev/my-project/my-repo.

La siguiente instrucción le pide a Gemini Cloud Assist que enumere las SBOM del repositorio us-central1-docker.pkg.dev/my-project/my-repo:

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

La respuesta incluye los detalles de la SBOM de los 10 repositorios más recientes. Puedes quitar la ubicación, el proyecto o los detalles de la imagen del nombre de la imagen de contenedor para obtener un conjunto más amplio de resultados.

Puedes ver todas las SBOM con el comando de gcloud CLI artifacts SBOM list.

Instrucciones adicionales

Las siguientes instrucciones demuestran las capacidades de usar variables para filtrar con Gemini Cloud Assist.

Para enumerar las vulnerabilidades por una variable específica, ingresa lo siguiente en el chat de Cloud Assist:

List vulnerabilities for `SCOPE`.

En este mensaje, SCOPE se puede establecer en un proyecto, un repositorio, una imagen o una imagen y un resumen.

Para enumerar las imágenes que contienen un paquete específico, ingresa lo siguiente en el chat de Cloud Assist:

List images that contain the log4j package.

Para enumerar las imágenes que contienen una vulnerabilidad específica, ingresa lo siguiente en el chat de Cloud Assist:

List images that contain `VULNERABILITY_ID`.

En esta instrucción, reemplaza VULNERABILITY_ID por un número de CVE.

¿Qué sigue?