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.
L’environnement Azure DevOps ou GitHub intégré à Microsoft Defender est automatiquement partagé et installé dans toutes les organisations Azure DevOps connectées. Cela permet d’injecter automatiquement des tâches dans tous les Azure Pipelines 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 :
Connectez-vous au portail Azure.
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).
Pour afficher le mappage de base, sélectionnez Images conteneur>+>Envoyées par référentiels de code.
(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.
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 plus de détails sur l’emplacement d’exécution du pipeline Azure DevOps.
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.
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
Assurez-vous d’avoir intégré un connecteur GitHub à Defender pour le cloud.
Exécutez le flux de travail MSDO suivant :
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.
# The example below is for Azure Container Registry. Amazon Elastic Container Registry and Google Artifact Registry are also supported.
- 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
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 :
Connectez-vous au portail Azure.
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).
Pour afficher le mappage de base, sélectionnez Images conteneur>+>Envoyées par référentiels de code.
(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.
Après avoir exécuté votre requête, vous verrez le mappage entre le registre de conteneurs et le flux de travail GitHub. Sélectionnez ... à côté du bord pour afficher plus de détails sur l’emplacement d’exécution du flux de travail 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.
Étapes suivantes
- Découvrez plus en détail la sécurité DevOps dans Defender pour le cloud.