Identificación de imágenes de contenedor vulnerables en los flujos de trabajo de CI/CD

En esta página se explica cómo examinar las imágenes de contenedores basadas en Azure Container Registry con el analizador de vulnerabilidades integrado cuando se han creado como parte de los flujos de trabajo de GitHub.

Para configurar el analizador, deberá habilitar Microsoft Defender para registros de contenedor y la integración de CI/CD. Cuando los flujos de trabajo de CI/CD insertan imágenes en los registros, puede ver los resultados del examen de registros y un resumen de los resultados del examen de CI/CD.

Los resultados de los exámenes de CI/CD son un enriquecimiento de los resultados del examen de registros existentes de Qualys. El análisis de CI/CD de Defender for Cloud cuenta con la tecnología de Aqua Trivy.

Obtendrá información sobre la rastreabilidad como, por ejemplo, el flujo de trabajo y la dirección URL de ejecución de GitHub, para ayudar a identificar los flujos de trabajo que dan como resultado imágenes vulnerables.

Sugerencia

Las vulnerabilidades identificadas en un examen del registro pueden diferir de los resultados de los exámenes de CI/CD. Un motivo de estas diferencias es que el examen de registros es continuo, mientras que el análisis de CI/CD se produce inmediatamente antes de que el flujo de trabajo inserte la imagen en el registro.

Disponibilidad

Aspecto Detalles
Estado de la versión: Esta integración de CI/CD está en versión preliminar.
Se recomienda experimentar con él solo en flujos de trabajo que no sean de producción.
En la página Términos de uso complementarios para las Versiones preliminares de Microsoft Azure se incluyen términos legales adicionales que se aplican a las características de Azure que se encuentran en versión beta, versión preliminar o que todavía no se han publicado para su disponibilidad general.
Precios: Microsoft Defender para registros de contenedor se factura como se muestra en la página de precios
Nubes: Nubes comerciales
Nacionales (Azure Government, Azure China 21Vianet)

Prerrequisitos

Para examinar las imágenes a medida que se insertan mediante flujos de trabajo de CI/CD en los registros, debe tener Microsoft Defender para registros de contenedor habilitado en la suscripción.

Configuración del examen de vulnerabilidades de los flujos de trabajo de CI/CD

Para habilitar exámenes de vulnerabilidades de imágenes en los flujos de trabajo de GitHub:

Paso 1. Habilitación de la integración de CI/CD en Defender for Cloud

Paso 2. Adición de las líneas necesarias al flujo de trabajo de GitHub

Paso 1. Habilitación de la integración de CI/CD en Defender for Cloud

  1. En el menú de Defender for Cloud, abra Parámetros del entorno.

  2. Seleccione la suscripción correspondiente.

  3. En la barra lateral de la página de configuración de esa suscripción, seleccione Integraciones.

  4. En el panel que aparece, seleccione una cuenta de Application Insights para insertar los resultados del examen de CI/CD del flujo de trabajo.

  5. Copie el token de autenticación y la cadena de conexión en el flujo de trabajo de GitHub.

    Enable the CI/CD integration for vulnerability scans of container images in your GitHub workflows.

    Importante

    El token de autenticación y la cadena de conexión se usan para correlacionar los datos de telemetría de seguridad ingeridos con los recursos de la suscripción. Si usa valores no válidos para estos parámetros, se descartará la telemetría.

Paso 2. Adición de las líneas necesarias al flujo de trabajo de GitHub y realización de un examen

  1. En el flujo de trabajo de GitHub, habilite el examen de CI/CD de la siguiente manera:

    Sugerencia

    Se recomienda crear dos secretos en el repositorio para hacer referencia en el archivo YAML como se indica a continuación. A los secretos se les pueden asignar nombres según sus propias convenciones de nomenclatura. En este ejemplo, se hace referencia a los secretos como AZ_APPINSIGHTS_CONNECTION_STRING y AZ_SUBSCRIPTION_TOKEN.

    Importante

    La inserción en el registro debe realizarse antes de que se publiquen los resultados.

    - name: Build and Tag Image
      run: |
        echo "github.sha=$GITHUB_SHA"
        docker build -t githubdemo1.azurecr.io/k8sdemo:${{ github.sha }} .
    
    - uses: Azure/container-scan@v0 
      name: Scan image for vulnerabilities
      id: container-scan
      continue-on-error: true
      with:
        image-name: githubdemo1.azurecr.io/k8sdemo:${{ github.sha }} 
    
    - name: Push Docker image 
      run: |
        docker push githubdemo1.azurecr.io/k8sdemo:${{ github.sha }}
    
    - name: Post logs to appinsights
      uses: Azure/publish-security-assessments@v0
      with: 
        scan-results-path: ${{ steps.container-scan.outputs.scan-report-path }}
        connection-string: ${{ secrets.AZ_APPINSIGHTS_CONNECTION_STRING }}
        subscription-token: ${{ secrets.AZ_SUBSCRIPTION_TOKEN }} 
    
  2. Ejecute el flujo de trabajo que insertará la imagen en el registro de contenedor seleccionado. Una vez que la imagen se inserta en el registro, se ejecuta un examen del registro y puede ver los resultados del examen de CI/CD junto con los resultados del examen del registro en Microsoft Defender for Cloud. Al ejecutar el archivo YAML anterior, se instalará una instancia de Trivy de Aqua Security en el sistema de compilación. Trivy tiene licencia bajo la licencia de Apache 2.0 y tiene dependencias en las fuentes de distribución de datos, muchas de las cuales contienen sus propios términos de uso.

  3. Vea los resultados del examen de CI/CD.

Visualización de los resultados del examen de CI/CD

  1. Para ver los resultados, abra la página Recomendaciones. Si se encontraron problemas, verá la recomendación Container registry images should have vulnerability findings resolved (powered by Qualys) (Las imágenes del registro de contenedores deben tener resueltos los hallazgos de vulnerabilidades [con tecnología de Qualys]).

    Recommendation to remediate issues .

  2. Seleccione la recomendación.

    Se abre la página de detalles de la recomendación con información adicional. Esta información incluye la lista de registros con imágenes vulnerables ("recursos afectados") y los pasos de corrección.

  3. Abra la lista de recursos afectados y seleccione un registro incorrecto para ver los repositorios que tienen imágenes vulnerables.

    Select an unhealthy registry.

    Se abre la página Detalles del registro con la lista de repositorios afectados.

  4. Seleccione un repositorio específico para ver los repositorios que contienen imágenes vulnerables.

    Select an unhealthy repository.

    Se abre la página Detalles del repositorio. Muestra las imágenes vulnerables junto con una evaluación de la gravedad de las conclusiones.

  5. Seleccione una imagen específica para ver las vulnerabilidades.

    Select an unhealthy image.

    Se abre la lista de resultados de la imagen seleccionada.

    Image scan results.

  6. Para más información sobre qué flujo de trabajo de GitHub está insertando estas imágenes vulnerables, seleccione la burbuja de información:

    CI/CD findings about specific GitHub branches and commits.

Pasos siguientes

Más información sobre los planes de protección avanzados de Microsoft Defender for Cloud.