Analizar paquetes de SO automáticamente

Aprende a habilitar el análisis automático, a enviar una imagen de contenedor a Artifact Registry y a ver una lista de las vulnerabilidades encontradas en la imagen.

Artifact Analysis busca vulnerabilidades cada vez que se envía una imagen a Artifact Registry. Los administradores de plataformas y los desarrolladores de aplicaciones pueden usar esta función de análisis automático para identificar riesgos en su canalización de entrega de software.

En esta guía de inicio rápido se usa un paquete sencillo disponible públicamente para mostrar un tipo de análisis de paquetes. De forma predeterminada, Artifact Analysis busca vulnerabilidades en varios tipos de paquetes una vez que habilitas la API de análisis. Entre los tipos de paquetes admitidos se incluyen OS, Go, Java (Maven), Python y Node.js (npm).

Antes de empezar

  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. Install the Google Cloud CLI.

  3. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

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

  7. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  8. Install the Google Cloud CLI.

  9. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  10. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  11. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

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

  13. Enable the Artifact Registry and Container Scanning APIs:

    gcloud services enable containerscanning.googleapis.com  artifactregistry.googleapis.com
  14. Crear un repositorio de Docker en Artifact Registry

    Crea un repositorio de Docker para almacenar la imagen de muestra de esta guía de inicio rápido.

    1. Abre la página Repositorios en la consola de Google Cloud .

      Abre la página Repositorios.

    2. Haz clic en Crear repositorio.

    3. En la página Create Repository (Crear repositorio), introduce los siguientes ajustes:

      • Nombre: quickstart-docker-repo
      • Formato: Docker
      • Modo: Estándar
      • Tipo de ubicación: región
      • Región: us-central1
    4. Haz clic en Crear.

    Verás la página Repositorios. Tu repositorio quickstart-docker-repo se añade a la lista de repositorios.

    Configurar la autenticación

    Para poder enviar o extraer imágenes con Artifact Registry, debes configurar Docker para que use Google Cloud CLI y autentique las solicitudes a Artifact Registry.

    En Cloud Shell o en tu shell local, configura la autenticación para los repositorios de Docker en la región us-central1:

    gcloud auth configure-docker us-central1-docker.pkg.dev
    

    Obtener un paquete

    1. Cambia al directorio en el que quieras guardar la imagen del contenedor.

    2. Copia la imagen en tu directorio local. Por ejemplo, puedes usar Docker para extraer la imagen de Ubuntu más reciente de Docker Hub.

      docker pull ubuntu:latest
      

    Etiqueta tu paquete con el nombre de un repositorio

    Cuando quieras enviar un paquete a Artifact Registry, debes configurar el comando docker push para enviar la imagen a una ubicación específica.

    Ejecuta el siguiente comando para etiquetar la imagen como quickstart-image:tag1:

    docker tag ubuntu:latest \
    us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

    Dónde

    • PROJECT es tu Google Cloud ID de proyecto. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con ámbito de dominio.
    • us-central1 es la región del repositorio de Artifact Registry.
    • docker.pkg.dev es el nombre de host de los repositorios de Docker.
    • quickstart-image es el nombre de la imagen que quieres usar en el repositorio. El nombre de la imagen puede ser diferente del nombre de la imagen local.
    • tag1 es una etiqueta que vas a añadir a la imagen Docker. Si no has especificado ninguna etiqueta, Docker aplicará la etiqueta predeterminada latest.

    Enviar la imagen a Artifact Registry

    Artifact Analysis analiza automáticamente las imágenes nuevas cuando se suben a Artifact Registry.

    Para enviar la imagen a tu repositorio de Docker en Artifact Registry, ejecuta el siguiente comando:

    docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

    Sustituye PROJECT por el Google Cloud ID de tu proyecto. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con ámbito de dominio.

    Ver los resultados del análisis de vulnerabilidades

    Para ver las vulnerabilidades de una imagen, sigue estos pasos:

    1. Abre la lista de tus repositorios de Artifact Registry en la consola de Artifact Analysis.

      Abre la página Repositorios.

    2. En la lista de repositorios, haz clic en uno.

    3. Haz clic en el nombre de una imagen.

      Verás una lista de resúmenes de tu imagen.

      El total de vulnerabilidades de cada digest de imagen se muestra en la columna Vulnerabilidades.

      Captura de pantalla de una imagen con vulnerabilidades

    4. Haga clic en el número total de vulnerabilidades vinculadas de la columna Vulnerabilidades.

      Verás una lista de vulnerabilidades.

      Captura de pantalla de una lista de imágenes y detalles de vulnerabilidades

      En la lista de vulnerabilidades se muestra el número de veces que se ha analizado esta imagen, los niveles de gravedad de las vulnerabilidades, la disponibilidad de una solución, el nombre del paquete que contiene la vulnerabilidad y el tipo de paquete.

    5. Para obtener más información sobre una vulnerabilidad concreta de la fuente de vulnerabilidades, haz clic en el identificador CVE vinculado de la columna Nombre.

    Otras formas de ver los resultados

    La Google Cloud consola muestra hasta 1200 vulnerabilidades. Si tu imagen tiene más de 1200 vulnerabilidades, usa gcloud o la API para ver la lista completa.

    Limpieza

    Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta página, elimina el Google Cloud proyecto con los recursos.

    Si has creado un proyecto para esta guía, ahora puedes eliminarlo.

      Delete a Google Cloud project:

      gcloud projects delete PROJECT_ID

    Siguientes pasos