Partage via


Mapper des images conteneur du code au cloud

Lorsqu’une vulnérabilité est identifiée dans une image conteneur stockée dans un registre de conteneurs ou s’exécutant dans un cluster Kubernetes, il peut être difficile pour un professionnel de la sécurité de revenir au pipeline CI/CD qui a d’abord créé l’image conteneur et d’identifier un propriétaire de correction du développeur. Avec les fonctionnalités de sécurité DevOps dans Microsoft Defender Cloud Security Posture Management (gestion de la posture de sécurité cloud, ou CSPM), vous pouvez mapper vos applications natives cloud du code vers le cloud pour lancer facilement les workflows de correction des développeurs et réduire le temps de correction des vulnérabilités dans vos images conteneur.

Prérequis

  • Un compte Azure avec Defender pour le cloud intégré. Si vous n’avez pas encore de compte Azure, créez-en un gratuitement.

  • Environnement Azure DevOps ou GitHub intégré à Microsoft Defender pour le cloud.

    • Lorsqu’un environnement Azure DevOps est intégré à Microsoft Defender pour le cloud, le mappage de conteneurs Microsoft Defender pour DevOps est automatiquement partagé et installé dans toutes les organisations Azure DevOps connectées. Cela permet d’injecter automatiquement des tâches dans tous les pipelines Azure afin de collecter des données pour le mappage de conteneurs.
  • Pour Azure DevOps, l’extension Microsoft Security DevOps (MSDO) installée sur l’organisation Azure DevOps.

  • Pour GitHub, l’action Microsoft Security DevOps (MSDO) configurée dans vos référentiels GitHub. En outre, le flux de travail GitHub doit disposer d’autorisations « id-token: write » pour la fédération avec Defender pour le cloud. Pour obtenir un exemple, consultez ce YAML.

  • Defender CSPM activé.

  • Les images conteneur doivent être générées à l’aide de Docker et le client Docker doit être en mesure d’accéder au serveur Docker pendant la génération.

Mapper votre image conteneur à partir de pipelines Azure DevOps au registre de conteneurs

Après avoir généré une image conteneur dans un pipeline CI/CD Azure DevOps et l’avoir envoyée (push) dans un registre, consultez le mappage à l’aide de Cloud Security Explorer :

  1. Connectez-vous au portail Azure.

  2. Accédez à Microsoft Defender pour le cloud>Cloud Security Explorer. Le mappage de l’image du conteneur peut prendre jusqu’à 4 heures pour apparaître dans le Cloud Security Explorer (Explorateur de sécurité du cloud).

  3. Pour afficher le mappage de base, sélectionnez Images conteneur>+>Envoyées par référentiels de code.

    Screenshot that shows how to find basic mapping of containers.

  4. (Facultatif) Sélectionnez + par Images conteneur pour ajouter d’autres filtres à votre requête, tels que A des vulnérabilités pour filtrer uniquement les images conteneur avec des CVE.

  5. Après avoir exécuté votre requête, vous verrez le mappage entre le registre de conteneurs et le pipeline Azure DevOps. Sélectionnez ... à côté du bord pour afficher des détails supplémentaires sur l’emplacement d’exécution du pipeline Azure DevOps.

    Screenshot that shows an advanced query for container mapping results.

Voici un exemple de requête avancée qui utilise le mappage d’images conteneur. À partir d’une charge de travail Kubernetes exposée à Internet, vous pouvez retracer toutes les images conteneurs avec des CVE de gravité élevée jusqu’au pipeline Azure DevOps où l’image conteneur a été générée, ce qui permet à un professionnel de la sécurité de lancer un flux de travail de correction pour les développeurs.

Screenshot that shows basic container mapping results.

Remarque

Si votre organisation Azure DevOps avait créé le connecteur Azure DevOps avant le 15 novembre 2023, accédez à Paramètres de l’organisation>Extensions > Partagées et installez l’élément décoratif de mappage d’images conteneur. Si vous ne voyez pas l’extension partagée avec votre organisation, remplissez le formulaire suivant.

Mapper votre image conteneur à partir de flux de travail GitHub au registre de conteneurs

  1. Ajoutez l’outil de mappage d’images conteneur à votre workflow MSDO :
name: Build and Map Container Image

on: [push, workflow_dispatch]

jobs:
  build:
    runs-on: ubuntu-latest
    # Set Permissions
    permissions:
      contents: read
      id-token: write
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-python@v4
        with:
          python-version: '3.8' 
    # Set Authentication to Container Registry of Choice
   - name: Azure Container Registry Login 
        uses: Azure/docker-login@v1 
        with:
        login-server: <containerRegistryLoginServer>
        username: ${{ secrets.ACR_USERNAME }}
        password: ${{ secrets.ACR_PASSWORD }}
    # Build and Push Image
    - name: Build and Push the Docker image 
        uses: docker/build-push-action@v2
        with:
          push: true
          tags: ${{ secrets.IMAGE_TAG }}
          file: Dockerfile
     # Run Mapping Tool in MSDO
    - name: Run Microsoft Security DevOps Analysis
      uses: microsoft/security-devops-action@latest
      id: msdo
      with:
        include-tools: container-mapping

Après avoir généré une image conteneur dans un flux de travail GitHub et l’avoir envoyée (push) dans un registre, vous pouvez consulter le mappage à l’aide de Cloud Security Explorer :

  1. Connectez-vous au portail Azure.

  2. Accédez à Microsoft Defender pour le cloud>Cloud Security Explorer. Le mappage de l’image du conteneur peut prendre jusqu’à 4 heures pour apparaître dans le Cloud Security Explorer (Explorateur de sécurité du cloud).

  3. Pour afficher le mappage de base, sélectionnez Images conteneur>+>Envoyées par référentiels de code.

    Screenshot that shows basic container mapping.

  4. (Facultatif) Sélectionnez + par Images conteneur pour ajouter d’autres filtres à votre requête, tels que A des vulnérabilités pour filtrer uniquement les images conteneur avec des CVE.

  5. Après avoir exécuté votre requête, vous verrez le mappage entre le registre de conteneurs et le workflow GitHub. Sélectionnez ... à côté du bord pour afficher des détails supplémentaires sur l’emplacement d’exécution du workflow GitHub.

Voici un exemple de requête avancée qui utilise le mappage d’images conteneur. À partir d’une charge de travail Kubernetes exposée à Internet, vous pouvez retracer toutes les images conteneurs avec des CVE de gravité élevée jusqu’au référentiel GitHub où l’image conteneur a été générée, ce qui permet à un professionnel de la sécurité de lancer un flux de travail de correction pour les développeurs.

Screenshot that shows basic container mapping results.

Étapes suivantes