Freigeben über


Angriffspfadanalyse und erweiterte Risikosuche für Container

Die Angriffspfadanalyse ist ein graphbasierter Algorithmus zur Überprüfung des Cloudsicherheitsgraphen. Die Überprüfungen offenbaren Pfade, die von Angreifer*innen ausgenutzt werden könnten, um in Ihre Umgebung einzudringen und Ihre wichtigen Ressourcen zu erreichen. Die Angriffspfadanalyse deckt Angriffspfade auf und gibt Empfehlungen, wie Sie Probleme am besten behandeln, um den Angriffspfad zu unterbrechen und ein erfolgreiches Eindringen zu verhindern.

Erkunden und untersuchen Sie Angriffspfade, indem Sie sie nach Risikoebene, Name, Umgebung und Risikofaktoren, Einstiegspunkt, Ziel, betroffenen Ressourcen und aktiven Empfehlungen sortieren. Erkunden Sie die Erkenntnisse aus dem Cloudsicherheitsdiagramm zur Ressource. Folgende Arten von Erkenntnissen können beispielsweise gewonnen werden:

  • Im Internet verfügbar gemachte Pods
  • Privilegierter Container
  • Verwendung eines Hostnetzwerks durch Pods
  • Für Remotecodeausführung anfällige Containerimages

Azure: Testen des Angriffspfads und des Sicherheits-Explorers mithilfe eines simulierten anfälligen Containerimages

Wenn in der Liste der Angriffspfade keine Einträge vorhanden sind, können Sie dieses Feature trotzdem mithilfe eines simulierten Containerimages testen. Führen Sie zum Einrichten des Tests die folgenden Schritte aus:

Anforderung: Eine Instanz von Azure Container Registry (ACR) im getesteten Bereich.

  1. Importieren Sie ein simuliertes anfälliges Image in Ihre Azure Container Registry-Instanz:

    1. Führen Sie den folgenden Befehl in Cloud Shell aus:

      az acr import --name $MYACR --source DCSPMtesting.azurecr.io/mdc-mock-0001 --image mdc-mock-0001
      
    2. Sollten Sie über keinen AKS-Cluster verfügen, verwenden Sie den folgenden Befehl, um einen neuen AKS-Cluster zu erstellen:

      az aks create -n myAKSCluster -g myResourceGroup --generate-ssh-keys --attach-acr $MYACR
      
    3. Wenn Ihre AKS-Instanz nicht an Ihre ACR-Instanz angefügt ist, verwenden Sie die folgende Cloud Shell Befehlszeile, um die AKS-Instanz so einzurichten, dass sie Images aus der ausgewählten ACR-Instanz abruft:

      az aks update -n myAKSCluster -g myResourceGroup --attach-acr <acr-name>
      
  2. Authentifizieren Sie Ihre Cloud Shell-Sitzung für den Cluster:

    az aks get-credentials  --subscription <cluster-suid> --resource-group <your-rg> --name <your-cluster-name>    
    
  3. Installieren Sie den NGINX-Eingangsdatencontroller:

    helm install ingress-controller oci://ghcr.io/nginxinc/charts/nginx-ingress --version 1.0.1
    
  4. Stellen Sie das simulierte anfällige Image bereit, um den anfälligen Container für das Internet verfügbar zu machen, indem Sie den folgenden Befehl ausführen:

    helm install dcspmcharts  oci://mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<your-image-uri> --set distribution=AZURE
    
  5. Überprüfen Sie die erfolgreiche Durchführung, indem Sie die folgenden Schritte ausführen:

    • Suchen Sie nach einem Eintrag mit mdc-dcspm-demo als Namespace.
    • Überprüfen Sie auf der Registerkarte Workloads -> Bereitstellungen, ob die Erstellung für „pod“ als 3/3 und für dcspmcharts-ingress-nginx-controller als 1/1 angezeigt wird.
    • Suchen Sie in den Diensten und Eingängen nach Folgendem: „Dienst“, „dcspmcharts-ingress-nginx-controller“ und „dcspmcharts-ingress-nginx-controller-admission“. Vergewissern Sie sich auf der Registerkarte für Eingänge, dass nur ein Eingang mit einer IP-Adresse und einer nginx-Klasse erstellt wurde.

Hinweis

Nach Abschluss des obigen Flows kann es bis zu 24 Stunden dauern, bis im Cloudsicherheits-Explorer und im Angriffspfad Ergebnisse angezeigt werden.

Nachdem Sie den Angriffspfad getestet haben, untersuchen Sie den erstellten Angriffspfad, indem Sie zu Angriffspfadanalyse wechseln und nach dem erstellten Angriffspfad suchen. Weitere Informationen finden Sie unter Identifizieren und Beheben von Angriffspfaden.

AWS: Testen des Angriffspfads und des Sicherheits-Explorers mithilfe eines simulierten anfälligen Containerimages

  1. Erstellen eines ECR-Repositorys mit dem Namen mdc-mock-0001

  2. Wechseln Sie zu Ihrem AWS-Konto, und wählen Sie Befehlszeile oder programmgesteuerter Zugriff aus.

  3. Öffnen Sie eine Befehlszeile, und wählen Sie Option 1: Festlegen von AWS-Umgebungsvariablen (kurzfristige Anmeldeinformationen) aus. Kopieren Sie die Anmeldeinformationen der Umgebungsvariablen AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY und AWS_SESSION_TOKEN.

  4. Führen Sie den folgenden Befehl aus, um das Authentifizierungstoken für Ihre Amazon ECR-Registrierung abzurufen. Ersetzen Sie <REGION> durch die Region Ihrer Registrierung. Ersetzen Sie <ACCOUNT> durch Ihre AWS-Konto-ID.

    aws ecr get-login-password --region <REGION> | docker login --username AWS --password-stdin <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com
    
  5. Erstellen Sie ein Docker-Image, das durch seinen Namen als anfällig gekennzeichnet ist. Der Name des Bilds sollte die Zeichenfolge mdc-mock-0001 enthalten. Nachdem Sie das Image erstellt haben, übertragen Sie es an Ihre ECR-Registrierung mit dem folgenden Befehl (ersetzen Sie <ACCOUNT> und <REGION> durch Ihre AWS-Konto-ID und -Region):

    docker pull alpine
    docker tag alpine <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001
    docker push <ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001
    
  6. Stellen Sie eine Verbindung mit Ihrem EKS-Cluster her, und installieren Sie die bereitgestellte Helm-Chart. Konfigurieren Sie kubectl für die Arbeit mit Ihrem EKS-Cluster. Führen Sie diesen Befehl aus (ersetzen Sie <your-region> und <your-cluster-name> durch Ihre EKS-Clusterregion und Ihren EKS-Clusternamen):

    aws eks --region <your-region> update-kubeconfig --name <your-cluster-name>
    
  7. Überprüfen Sie die Konfiguration. Sie können überprüfen, ob kubectl ordnungsgemäß konfiguriert ist, indem Sie Folgendes ausführen:

    kubectl get nodes
    
  8. Installieren Sie den NGINX-Eingangsdatencontroller:

    helm install ingress-controller oci://ghcr.io/nginxinc/charts/nginx-ingress --version 1.0.1
    
  9. Installieren Sie die folgende Helm-Chart:

    helm install dcspmcharts oci://mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<ACCOUNT>.dkr.ecr.<REGION>.amazonaws.com/mdc-mock-0001 --set distribution=AWS
    

Die Helm-Chart stellt Ressourcen auf Ihrem Cluster bereit, die zum Ableiten von Angriffspfaden verwendet werden können. Sie enthält auch das anfällige Bild.

Hinweis

Nach Abschluss des obigen Flows kann es bis zu 24 Stunden dauern, bis im Cloudsicherheits-Explorer und im Angriffspfad Ergebnisse angezeigt werden.

Nachdem Sie den Angriffspfad getestet haben, untersuchen Sie den erstellten Angriffspfad, indem Sie zu Angriffspfadanalyse wechseln und nach dem erstellten Angriffspfad suchen. Weitere Informationen finden Sie unter Identifizieren und Beheben von Angriffspfaden.

GCP: Testen des Angriffspfads und des Sicherheits-Explorers mithilfe eines simulierten anfälligen Containerimages

  1. Suchen Sie im GCP-Portal nach Artefaktregistrierung, und erstellen Sie dann ein GCP-Repository mit dem Namen mdc-mock-0001

  2. Befolgen Sie diese Anweisungen, um das Image per Pushvorgang an Ihr Repository zu übertragen. Führen Sie diese -Befehle aus:

    docker pull alpine
    docker tag alpine <LOCATION>-docker.pkg.dev/<PROJECT_ID>/<REGISTRY>/<REPOSITORY>/mdc-mock-0001
    docker push <LOCATION>-docker.pkg.dev/<PROJECT_ID>/<REGISTRY>/<REPOSITORY>/mdc-mock-0001
    
  3. Wechseln Sie zum GCP-Portal. Wechseln Sie dann zu Kubernetes-Engine>Cluster. Wählen Sie die Schaltfläche Verbinden aus.

  4. Führen Sie nach der Verbindung entweder den Befehl in der Cloud Shell aus, oder kopieren Sie den Verbindungsbefehl, und führen Sie ihn auf Ihrem Computer aus:

    gcloud container clusters get-credentials contra-bugbash-gcp --zone us-central1-c --project onboardingc-demo-gcp-1
    
  5. Überprüfen Sie die Konfiguration. Sie können überprüfen, ob kubectl ordnungsgemäß konfiguriert ist, indem Sie Folgendes ausführen:

    kubectl get nodes
    
  6. Führen Sie die folgenden Schritte aus, um die Helm-Chart zu installieren:

    1. Wechseln Sie unter Artefaktregistrierung im Portal zum Repository, und suchen Sie den Image-URI unter Pull nach Digest.

    2. Verwenden Sie den folgenden Befehl, um die Helm-Chart zu installieren:

      helm install dcspmcharts oci:/mcr.microsoft.com/mdc/stable/dcspmcharts --version 1.0.0 --namespace mdc-dcspm-demo --create-namespace --set image=<IMAGE_URI> --set distribution=GCP
      

Die Helm-Chart stellt Ressourcen auf Ihrem Cluster bereit, die zum Ableiten von Angriffspfaden verwendet werden können. Sie enthält auch das anfällige Bild.

Hinweis

Nach Abschluss des obigen Flows kann es bis zu 24 Stunden dauern, bis im Cloudsicherheits-Explorer und im Angriffspfad Ergebnisse angezeigt werden.

Nachdem Sie den Angriffspfad getestet haben, untersuchen Sie den erstellten Angriffspfad, indem Sie zu Angriffspfadanalyse wechseln und nach dem erstellten Angriffspfad suchen. Weitere Informationen finden Sie unter Identifizieren und Beheben von Angriffspfaden.

Suchen von Containerstatusproblemen mit Cloudsicherheits-Explorer

Sie können Abfragen auf eine der folgenden Arten erstellen:

In den folgenden Abschnitten zeigen wir Beispiele für Abfragen, die Sie auswählen oder erstellen können.

Untersuchen von Risiken bei integrierten Vorlagen des Cloudsicherheits-Explorers

  1. Öffnen Sie den Cloudsicherheits-Explorer auf der Übersichtsseite von Defender for Cloud.

  2. Es werden einige sofort einsatzbereite Vorlagen für Kubernetes angezeigt. Wählen Sie eine der Vorlagen aus:

    • Azure Kubernetes-Pods, auf denen Images mit Sicherheitsrisiken mit hohem Schweregrad ausgeführt werden
    • Kubernetes-Namespaces enthalten anfällige Pods

    Screenshot showing where to select templates.

  3. Wählen Sie Abfrage öffnen aus. Die Vorlage erstellt die Abfrage im oberen Bereich des Bildschirms. Wählen Sie Suchen aus, um die Ergebnisse anzuzeigen.

    Screenshot that shows the query built and where to select search.

Erstellen von benutzerdefinierten Abfragen mit dem Cloudsicherheits-Explorer

Sie können auch selbst benutzerdefinierte Abfragen erstellen. Das folgende Beispiel zeigt eine Suche nach Pods, auf denen Containerimages ausgeführt werden, die anfällig für die Remotecodeausführung sind.

Screenshot that shows a custom query.

Die Ergebnisse werden unter der Abfrage aufgeführt.

Screenshot that shows the results from a custom query.

Nächste Schritte

  • Weitere Informationen zu den Defender-Plänen für Microsoft Defender for Cloud.