Mappa containeravbildningar från kod till molnet

När en säkerhetsrisk identifieras i en containeravbildning som lagras i ett containerregister eller körs i ett Kubernetes-kluster kan det vara svårt för en säkerhetsansvarig att spåra tillbaka till CI/CD-pipelinen som först skapade containeravbildningen och identifiera en ägare av utvecklarreparation. Med DevOps-säkerhetsfunktioner i Microsoft Defender hantering av molnsäkerhetsstatus (CSPM) kan du mappa dina molnbaserade program från kod till molnet för att enkelt starta arbetsflöden för utvecklarreparation och minska tiden för att åtgärda sårbarheter i dina containeravbildningar.

Förutsättningar

  • Ett Azure-konto med Defender för molnet registrerat. Om du inte redan har ett Azure-konto skapar du ett kostnadsfritt.

  • Azure DevOps- eller GitHub-miljön har registrerats för Microsoft Defender för molnet.

    • När en Azure DevOps-miljö registreras för Microsoft Defender för molnet delas och installeras Microsoft Defender för DevOps-containermappning automatiskt i alla anslutna Azure DevOps-organisationer. Detta matar automatiskt in uppgifter i alla Azure Pipelines för att samla in data för containermappning.
  • För Azure DevOps är Microsoft Security DevOps-tillägget (MSDO) installerat i Azure DevOps-organisationen.

  • För GitHub konfigureras Microsoft Security DevOps-åtgärden (MSDO) i dina GitHub-lagringsplatser. Dessutom måste GitHub-arbetsflödet ha behörigheten "id-token: write" för federation med Defender för molnet. Ett exempel finns i denna YAML.

  • Defender CSPM aktiverat.

  • Containeravbildningarna måste skapas med Docker och Docker-klienten måste kunna komma åt Docker-servern under bygget.

Mappa containeravbildningen från Azure DevOps-pipelines till containerregistret

När du har skapat en containeravbildning i en Azure DevOps CI/CD-pipeline och push-överfört den till ett register kan du läsa mappningen med hjälp av Cloud Security Explorer:

  1. Logga in på Azure-portalen.

  2. Gå till Microsoft Defender för molnet> Cloud Security Explorer. Det kan ta högst 4 timmar innan containeravbildningsmappningen visas i Cloud Security Explorer.

  3. Om du vill se grundläggande mappning väljer du Containeravbildningar+>>som push-överförts av kodlagringsplatser.

    Screenshot that shows how to find basic mapping of containers.

  4. (Valfritt) Välj + efter ContainerAvbildningar för att lägga till andra filter i din fråga, till exempel Har säkerhetsrisker för att endast filtrera containeravbildningar med CVE:er.

  5. När du har kört frågan visas mappningen mellan containerregistret och Azure DevOps-pipelinen. Välj ... bredvid kanten för att se ytterligare information om var Azure DevOps-pipelinen kördes.

    Screenshot that shows an advanced query for container mapping results.

Följande är ett exempel på en avancerad fråga som använder containeravbildningsmappning. Från och med en Kubernetes-arbetsbelastning som exponeras för Internet kan du spåra alla containeravbildningar med hög allvarlighetsgrad till Azure DevOps-pipelinen där containeravbildningen skapades, vilket ger en säkerhetsansvarig möjlighet att starta ett arbetsflöde för utvecklarreparation.

Screenshot that shows basic container mapping results.

Kommentar

Om din Azure DevOps-organisation hade Azure DevOps-anslutningsappen skapad före den 15 november 2023 går du till Organisationsinställningar>Tillägg > delade och installerar containeravbildningsmappningsdekoratören. Om du inte ser tillägget som delas med din organisation fyller du i följande formulär.

Mappa containeravbildningen från GitHub-arbetsflöden till containerregistret

  1. Lägg till verktyget för mappning av containeravbildningar i MSDO-arbetsflödet:
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

När du har skapat en containeravbildning i ett GitHub-arbetsflöde och push-överfört den till ett register kan du läsa mappningen med hjälp av Cloud Security Explorer:

  1. Logga in på Azure-portalen.

  2. Gå till Microsoft Defender för molnet> Cloud Security Explorer. Det kan ta högst 4 timmar innan containeravbildningsmappningen visas i Cloud Security Explorer.

  3. Om du vill se grundläggande mappning väljer du Containeravbildningar+>>som push-överförts av kodlagringsplatser.

    Screenshot that shows basic container mapping.

  4. (Valfritt) Välj + efter ContainerAvbildningar för att lägga till andra filter i din fråga, till exempel Har säkerhetsrisker för att endast filtrera containeravbildningar med CVE:er.

  5. När du har kört frågan visas mappningen mellan containerregistret och GitHub-arbetsflödet. Välj ... bredvid kanten för att se ytterligare information om var GitHub-arbetsflödet kördes.

Följande är ett exempel på en avancerad fråga som använder containeravbildningsmappning. Från och med en Kubernetes-arbetsbelastning som exponeras för Internet kan du spåra alla containeravbildningar med hög allvarlighetsgrad till GitHub-lagringsplatsen där containeravbildningen skapades, vilket ger en säkerhetsansvarig möjlighet att starta ett arbetsflöde för utvecklarreparation.

Screenshot that shows basic container mapping results.

Nästa steg