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- und GitHub-Umgebungen, die in Microsoft Defender integriert sind, werden 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:
Melden Sie sich beim Azure-Portal an.
Gehen Sie zu Microsoft Defender for Cloud>Cloudsicherheits-Explorer. Es kann maximal 4 Stunden dauern, bis die Containerimagezuordnung im Cloud Security Explorer angezeigt wird.
Um die grundlegende Zuordnung anzuzeigen, wählen Sie Containerimages+>>Von Coderepositorys gepusht aus.
(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.
Nachdem Sie Ihre Abfrage ausgeführt haben, wird die Zuordnung zwischen der Containerregistrierung und der Azure DevOps-Pipeline angezeigt. Klicken Sie am Rand auf ..., um weitere Details darüber anzuzeigen, wo die Azure DevOps-Pipeline 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 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.
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
Stellen Sie sicher, dass Sie einen GitHub-Connector in Defender for Cloud integriert haben.
Führen Sie den folgenden MSDO-Workflow aus:
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
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:
Melden Sie sich beim Azure-Portal an.
Gehen Sie zu Microsoft Defender for Cloud>Cloudsicherheits-Explorer. Es kann maximal 4 Stunden dauern, bis die Containerimagezuordnung im Cloud Security Explorer angezeigt wird.
Um die grundlegende Zuordnung anzuzeigen, wählen Sie Containerimages+>>Von Coderepositorys gepusht aus.
(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.
Nachdem Sie Ihre Abfrage ausgeführt haben, wird die Zuordnung zwischen der Containerregistrierung und der GitHub-Workflow angezeigt. Wählen Sie am Rand ... aus, um weitere Details darüber anzuzeigen, wo der 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.
Nächste Schritte
- Erfahren Sie mehr über DevOps-Sicherheit in Defender for Cloud.