Dela via


Mappa containeravbildningar från kod till molnet

När en säkerhetsrisk identifieras i en containeravbildning, oavsett om den lagras i ett containerregister eller körs i ett Kubernetes-kluster, kan säkerhetsutövare ha svårt att spåra den tillbaka till CI/CD-pipelinen som ursprungligen skapade den. Utan den kontexten är det svårt att identifiera den utvecklare som ansvarar för att åtgärda problemet. Microsoft Defender Cloud Security Posture Management (CSPM) innehåller DevOps-säkerhetsfunktioner som gör att du kan mappa dina molnbaserade program från kod till molnet. Därför kan du enkelt starta arbetsflöden för utvecklarreparation och minska den tid det tar att åtgärda säkerhetsrisker i containeravbildningarna.

Förutsättningar

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

  • För Azure DevOps:

    • Microsoft Security DevOps-tillägget (MSDO) måste vara installerat i Azure DevOps-organisationen.

    • Se till att Microsoft Defender för DevOps-tillägget delas och installeras i alla anslutna Azure DevOps-organisationer. För nyligen registrerade anslutningsappar görs detta automatiskt. Det här tillägget matar automatiskt in uppgifter i alla Azure Pipelines för att samla in data för containermappning.

    • Måste använda YAML-pipelines eftersom klassiska pipelines inte längre stöds.

  • För GitHub:

    • Åtgärden Microsoft Security DevOps (MSDO) måste konfigureras i dina GitHub-arbetsflöden.

    • GitHub-arbetsflödet måste 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 >

    Skärmbild som visar hur du hittar grundläggande mappning av containrar.

  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 mer information om var Azure DevOps-pipelinen kördes.

    Skärmbild som visar en avancerad fråga för resultat av containermappning.

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.

Skärmbild som visar grundläggande resultat för containermappning.

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. Se till att du har registrerat en GitHub-anslutning för att Defender för molnet.

  2. Kör följande MSDO-arbetsflöde:

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

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 >

    Skärmbild som visar grundläggande containermappning.

  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 mer 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.

Skärmbild som visar grundläggande resultat för containermappning.

Nästa steg