Teilen über


Zuordnen von Containerimages aus dem Code zur Cloud

Wenn ein Sicherheitsrisiko in einem Containerimage identifiziert wird, das in einer Container-Registry gespeichert ist oder in einem Kubernetes-Cluster läuft, kann es für einen Sicherheitsexperten schwierig sein, die CI/CD-Pipeline zurückzuverfolgen, die das Containerimage zuerst erstellt hat, und eine*n Entwickler*in zu identifizieren, die/der für die Behebung verantwortlich ist. Mit den DevOps-Sicherheitsfunktionen in Microsoft Defender Cloud Security Posture Management (CSPM) können Sie Ihre Cloud-nativen Anwendungen vom Code bis zur Cloud zuordnen, um Entwickler-Workflows zur Behebung von Schwachstellen in Ihren Containerimages einfach zu starten und die Zeit bis zur Behebung zu verkürzen.

Voraussetzungen

  • Ein Azure-Konto, in das Defender for Cloud integriert ist. Wenn Sie noch kein Azure-Konto besitzen, erstellen Sie ein kostenloses Konto.

  • Azure DevOps oder GitHub-Umgebung, die in Microsoft Defender für Cloud integriert ist.

    • Wenn eine Azure DevOps-Umgebung in Microsoft Defender for Cloud integriert wird, wird die Containerzuordnung von Microsoft Defender for DevOps automatisch freigegeben und in allen verbundenen Azure DevOps-Organisationen installiert. Dadurch werden Aufgaben automatisch in alle Azure-Pipelines eingefügt, um Daten für die Containerzuordnung zu sammeln.
  • Für Azure DevOps wurde die Microsoft Security DevOps (MSDO)-Erweiterung in der Azure DevOps-Organisation installiert.

  • Für GitHub konfigurierte MSDO-Aktion (Microsoft Security DevOps) in Ihren GitHub-Repositorys. Darüber hinaus muss der GitHub-Workflow über "id-token: write" Berechtigungen für den Partnerverbund mit Defender for Cloud verfügen. Ein Beispiel finden Sie in dieser YAML.

  • Defender CSPM aktiviert.

  • Die Containerimages müssen mit Docker erstellt werden, und der Docker-Client muss während des Builds auf den Docker-Server zugreifen können.

Zuordnen Ihres Containerimages aus Azure DevOps-Pipelines zur Containerregistrierung

Nachdem Sie ein Containerimage in einer Azure DevOps CI/CD-Pipeline erstellt und in eine Registrierung übertragen haben, sehen Sie sich die Zuordnung mit dem Cloud Security Explorer an:

  1. Melden Sie sich beim Azure-Portal an.

  2. Gehen Sie zu Microsoft Defender for Cloud>Cloudsicherheits-Explorer. Es kann maximal 4 Stunden dauern, bis die Containerimagezuordnung im Cloud Security Explorer angezeigt wird.

  3. Um die grundlegende Zuordnung anzuzeigen, wählen Sie Containerimages+>>Von Coderepositorys gepusht aus.

    Screenshot that shows how to find basic mapping of containers.

  4. (Optional) Wählen Sie + nach Containerimages aus, um Ihrer Abfrage weitere Filter hinzuzufügen, z. B. Hat Sicherheitsrisiken, um nur Containerimages mit CVEs zu filtern.

  5. Nachdem Sie Ihre Abfrage ausgeführt haben, wird die Zuordnung zwischen der Containerregistrierung und der Azure DevOps-Pipeline angezeigt. Klicken Sie auf ... neben dem Edge, um weitere Details darüber anzuzeigen, wo die Azure DevOps-Pipeline ausgeführt wurde.

    Screenshot that shows an advanced query for container mapping results.

Nachfolgend finden Sie ein Beispiel für eine erweiterte Abfrage, die die Containerimagezuordnung verwendet. Ausgehend von einer Kubernetes-Workload, die dem Internet ausgesetzt ist, können Sie alle Containerimages mit schwerwiegenden CVEs bis zur Azure DevOps-Pipeline zurückverfolgen, in der das Containerimage erstellt wurde, so dass ein Sicherheitsexperte in der Lage ist, einen Abhilfeworkflow für Entwickler*inen zu starten.

Screenshot that shows basic container mapping results.

Hinweis

Wenn Ihre Azure DevOps-Organisation der Azure DevOps-Connector vor dem 15. November 2023 installiert hatte, navigieren Sie zu Organisationseinstellungen>Erweiterungen > Freigegebene, und installieren Sie den Zuordnungsdekoror für das Containerimage. Wenn die für Ihre Organisation freigegebene Erweiterung nicht angezeigt wird, füllen Sie das folgende Formular aus.

Zuordnen Ihres Containerimages aus GitHub-Workflows zur Containerregistrierung

  1. Fügen Sie ihrem MSDO-Workflow das Zuordnungstool für Containerimages hinzu:
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

Nachdem Sie ein Containerimage in einer GitHub-Worklflow erstellt und in eine Registrierung übertragen haben, sehen Sie sich die Zuordnung mit dem Cloud Security Explorer an:

  1. Melden Sie sich beim Azure-Portal an.

  2. Gehen Sie zu Microsoft Defender for Cloud>Cloudsicherheits-Explorer. Es kann maximal 4 Stunden dauern, bis die Containerimagezuordnung im Cloud Security Explorer angezeigt wird.

  3. Um die grundlegende Zuordnung anzuzeigen, wählen Sie Containerimages+>>Von Coderepositorys gepusht aus.

    Screenshot that shows basic container mapping.

  4. (Optional) Wählen Sie + nach Containerimages aus, um Ihrer Abfrage weitere Filter hinzuzufügen, z. B. Hat Sicherheitsrisiken, um nur Containerimages mit CVEs zu filtern.

  5. Nachdem Sie Ihre Abfrage ausgeführt haben, wird die Zuordnung zwischen der Containerregistrierung und der GitHub-Workflow angezeigt. Wählen Sie ... neben dem Edge, um weitere Details darüber anzuzeigen, wo die GitHub-Workflow ausgeführt wurde.

Nachfolgend finden Sie ein Beispiel für eine erweiterte Abfrage, die die Containerimagezuordnung verwendet. Ausgehend von einer Kubernetes-Workload, die dem Internet ausgesetzt ist, können Sie alle Containerimages mit schwerwiegenden CVEs bis zur GitHub-Workflow zurückverfolgen, in der das Containerimage erstellt wurde, so dass ein Sicherheitsexperte in der Lage ist, einen Abhilfeworkflow für Entwickler*inen zu starten.

Screenshot that shows basic container mapping results.

Nächste Schritte