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.

Explore and investigate attack paths by sorting them based on risk level, name, environment, and risk factors, entry point, target, affected resources and active recommendations. Erkunden Sie die Erkenntnisse aus dem Cloudsicherheitsdiagramm zur Ressource. Folgende Arten von Erkenntnissen können beispielsweise gewonnen werden:

  • Im Internet verfügbar gemachte Pods
  • Privileged 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:

Requirement: An instance of Azure Container Registry (ACR) in the tested scope.

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

    1. Ziehen Sie zunächst ein Basisimage (z. B. alpine) in Ihre lokale Umgebung, indem Sie folgende Schritte ausführen:

      docker pull alpine
      
    2. Markieren Sie das Image mit der folgenden Bezeichnung und pushen Sie es in Ihre ACR-Instanz. Ersetzen Sie <MYACR> durch den Namen Ihrer Azure Container Registry:

      docker tag alpine <MYACR>.azurecr.io/mdc-mock-0001
      docker push <MYACR>.azurecr.io/mdc-mock-0001
      
    3. Wenn Sie nicht über einen AKS-Cluster (Azure Kubernetes Service) 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
      
    4. 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:

    • Look for an entry with mdc-dcspm-demo as namespace
    • Überprüfen Sie auf der Registerkarte Workloads > Bereitstellungen, ob „pod1“ und „pod2“ erstellt werden 3/3 und ingress-controller-nginx-ingress-controller 1/1 erstellt wird.
    • In services and ingresses look for-> service service1 and ingress-controller-nginx-ingress-controller. In the ingress tab, verify one ingress is created with an IP address and nginx class.

Note

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. Create an ECR repository named 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. Copy the credentials of the AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN environment variables.

  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. The name of the image should contain the string mdc-mock-0001. 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.

Note

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. In the GCP portal, search for Artifact Registry, and then create a GCP repository named mdc-mock-0001

  2. Follow these instructions to push the image to your repository. 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. Then go to Kubernetes Engine>Clusters. Select the Connect button.

  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. Under Artifact registry in the portal, go to the repository, and find the image URI under Pull by 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.

Note

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: Auswählen von Vorlagen

  3. Select Open query; the template builds the query in the upper portion of the screen. Select Search to view the results.

    Screenshot: erstellte Abfrage und Auswählen der Suchfunktion

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: benutzerdefinierte Abfrage

Die Ergebnisse werden unter der Abfrage aufgeführt.

Screenshot: Ergebnisse einer benutzerdefinierten Abfrage

Next steps