Analizar paquetes de Java 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 una imagen en tu directorio local. Por ejemplo, puedes usar Docker para extraer la imagen de Jenkins más reciente de Docker Hub.

      docker pull jenkins:2.60.3-alpine
      

    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 jenkins:2.60.3-alpine \
    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. Obtén la lista de repositorios.

      Abre la página Repositorios.

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

    3. En la lista de imágenes, haz clic en el nombre de una imagen.

      Los totales de vulnerabilidades de cada digest de imagen se muestran en la columna Vulnerabilidades.

      Captura de pantalla de una imagen con vulnerabilidades

    4. Para ver la lista de vulnerabilidades de una imagen, haga clic en el enlace de la columna Vulnerabilidades.

      En la sección Resultados del análisis se muestra un resumen de los tipos de paquetes analizados, el número total de vulnerabilidades, las vulnerabilidades con correcciones disponibles, las vulnerabilidades sin correcciones y la gravedad efectiva.

      Captura de pantalla de la sección Resultados del análisis con vulnerabilidades, correcciones y gravedad efectiva

      En la tabla de vulnerabilidades se indica el nombre de la lista Common Vulnerabilities and Exposures (CVE) de cada vulnerabilidad detectada, la gravedad efectiva, la puntuación del sistema de puntuación Common Vulnerability Scoring System (CVSS), las correcciones (si están disponibles), el nombre del paquete que contiene la vulnerabilidad y el tipo de paquete.

      Puedes filtrar y ordenar estos archivos para consultar un archivo, un directorio o un tipo de archivo específico por extensión.

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

    5. Para obtener información sobre una CVE específica, haz clic en su nombre.

    6. Para ver los detalles de la vulnerabilidad, como el número de versión y la ubicación afectada, haga clic en Ver o Ver corregido en la fila con el nombre de la vulnerabilidad. El texto del enlace es Ver para las vulnerabilidades sin corrección y Ver corregidas para las vulnerabilidades en las que se ha aplicado una corrección.

    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