Mapování imagí kontejnerů z kódu do cloudu

Pokud se v imagi kontejneru uložené v registru kontejneru nebo v clusteru Kubernetes identifikuje ohrožení zabezpečení, může být obtížné trasovat ho zpět do kanálu CI/CD, který nejprve sestavil image kontejneru a identifikoval vlastníka nápravy vývojáře. Díky možnostem zabezpečení DevOps v Správa stavu cloudového zabezpečení v programu Microsoft Defender (CSPM) můžete mapovat aplikace nativní pro cloud z kódu do cloudu, abyste mohli snadno spustit pracovní postupy nápravy vývojářů a zkrátit dobu nápravy ohrožení zabezpečení v imagích kontejnerů.

Požadavky

  • Účet Azure s onboardedem Defenderu pro Cloud. Pokud ještě nemáte účet Azure, vytvořte si ho zdarma.

  • Prostředí Azure DevOps nebo GitHubu nasazené do Microsoft Defenderu pro cloud

    • Když je prostředí Azure DevOps připojené ke službě Microsoft Defender for Cloud, mapování kontejnerů Microsoft Defenderu for DevOps se automaticky sdílí a nainstaluje ve všech připojených organizacích Azure DevOps. Tím se automaticky vloží úkoly do všech azure Pipelines, aby se shromažďují data pro mapování kontejnerů.
  • V případě Azure DevOps nainstaluje rozšíření Microsoft Security DevOps (MSDO) v organizaci Azure DevOps.

  • U GitHubu je akce Microsoft Security DevOps (MSDO) nakonfigurovaná v úložištích GitHubu. Kromě toho musí mít pracovní postup GitHubu oprávnění id-token: zápis pro federaci pomocí defenderu pro cloud. Příklad: Podívejte se na tento YAML.

  • Služba CSPM v programu Defender je povolená.

  • Image kontejnerů musí být sestaveny pomocí Dockeru a klient Dockeru musí mít během sestavování přístup k serveru Dockeru.

Mapování image kontejneru z kanálů Azure DevOps na registr kontejnerů

Po vytvoření image kontejneru v kanálu CI/CD Azure DevOps a jeho nasdílením do registru se podívejte na mapování pomocí Průzkumníka zabezpečení cloudu:

  1. Přihlaste se k portálu Azure.

  2. Přejděte do Průzkumníka cloudových>zabezpečení v programu Microsoft Defender. Zobrazení mapování imagí kontejneru v Průzkumníku zabezpečení cloudu může trvat maximálně 4 hodiny.

  3. Pokud chcete zobrazit základní mapování, vyberte image>>+kontejnerů nabízené úložištěm kódu.

    Screenshot that shows how to find basic mapping of containers.

  4. (Volitelné) Vyberte + podle imagí kontejneru a přidejte do dotazu další filtry, jako je například ohrožení zabezpečení pro filtrování pouze imagí kontejnerů pomocí cvEs.

  5. Po spuštění dotazu se zobrazí mapování mezi registrem kontejneru a kanálem Azure DevOps. Výběrem ... vedle hraničního zařízení zobrazíte další podrobnosti o tom, kde byl kanál Azure DevOps spuštěný.

    Screenshot that shows an advanced query for container mapping results.

Následuje příklad rozšířeného dotazu, který využívá mapování imagí kontejneru. Počínaje úlohou Kubernetes, která je vystavená internetu, můžete trasovat všechny image kontejnerů s vysokou závažností CVE zpět do kanálu Azure DevOps, kde byla image kontejneru vytvořená, a umožnit tak pracovníkovi zabezpečení zahájit pracovní postup nápravy pro vývojáře.

Screenshot that shows basic container mapping results.

Poznámka:

Pokud vaše organizace Azure DevOps měla vytvořený konektor Azure DevOps před 15. listopadem 2023, přejděte do části Rozšíření nastavení>> organizace Sdílená a nainstalujte dekorátor mapování imagí kontejneru. Pokud se rozšíření sdílené s vaší organizací nezobrazuje, vyplňte následující formulář.

Mapování image kontejneru z pracovních postupů GitHubu do registru kontejneru

  1. Přidejte do pracovního postupu MSDO nástroj pro mapování imagí kontejneru:
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

Po vytvoření image kontejneru v pracovním postupu GitHubu a jeho nasdílením do registru se podívejte na mapování pomocí Průzkumníka zabezpečení cloudu:

  1. Přihlaste se k portálu Azure.

  2. Přejděte do Průzkumníka cloudových>zabezpečení v programu Microsoft Defender. Zobrazení mapování imagí kontejneru v Průzkumníku zabezpečení cloudu může trvat maximálně 4 hodiny.

  3. Pokud chcete zobrazit základní mapování, vyberte image>>+kontejnerů nabízené úložištěm kódu.

    Screenshot that shows basic container mapping.

  4. (Volitelné) Vyberte + podle imagí kontejneru a přidejte do dotazu další filtry, jako je například ohrožení zabezpečení pro filtrování pouze imagí kontejnerů pomocí cvEs.

  5. Po spuštění dotazu se zobrazí mapování mezi registrem kontejneru a pracovním postupem GitHubu. Výběrem ... vedle hraničních zařízení zobrazíte další podrobnosti o tom, kde se spustil pracovní postup GitHubu.

Následuje příklad rozšířeného dotazu, který využívá mapování imagí kontejneru. Počínaje úlohou Kubernetes, která je vystavená internetu, můžete sledovat všechny image kontejnerů s vysokou závažností CVE zpět do úložiště GitHub, kde byla image kontejneru vytvořena, a umožnit tak pracovníkovi zabezpečení zahájit pracovní postup nápravy pro vývojáře.

Screenshot that shows basic container mapping results.

Další kroky