Arbeitslasten automatisch auf bekannte Sicherheitslücken scannen


Auf dieser Seite erfahren Sie, wie Sie das Container-Betriebssystem und Sprachpakete in Ihren laufenden Arbeitslasten automatisch auf bekannte Sicherheitslücken scannen und Strategien zur Risikominderung erhalten, falls diese verfügbar sind. Das Scannen von Arbeitslasten auf Sicherheitslücken ist Teil des Sicherheitsstatus-Dashboards. Dieses Dashboard bietet eine Reihe von Funktionen, die zielgerichtete Informationen und Empfehlungen zur Verbesserung der Sicherheit Ihrer GKE-Cluster und -Arbeitslasten (Google Kubernetes Engine) bereitstellen.

Weitere Informationen finden Sie unter Scannen von Arbeitslasten auf Sicherheitslücken.

Preise

Preisinformationen finden Sie unter Preise für das GKE-Sicherheitsstatus-Dashboard.

Hinweise

Führen Sie die folgenden Aufgaben aus, bevor Sie beginnen:

  • Aktivieren Sie die Google Kubernetes Engine API.
  • Google Kubernetes Engine API aktivieren
  • Wenn Sie die Google Cloud CLI für diese Aufgabe verwenden möchten, müssen Sie die gcloud CLI installieren und dann initialisieren. Wenn Sie die gcloud CLI bereits installiert haben, rufen Sie die neueste Version mit gcloud components update ab.

Voraussetzungen

  • Bitten Sie Ihren Administrator, Ihnen in Ihrem Google Cloud-Projekt die IAM-Rolle Sicherheitsstatus Viewer (roles/containersecurity.viewer) zuzuweisen, um Ihnen so die Berechtigungen zu erteilen, die Sie zum Scannen von Arbeitslasten auf Sicherheitslücken benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

    Diese vordefinierte Rolle enthält die Berechtigungen, die für das Scannen von Arbeitslasten auf Sicherheitslücken erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

    Erforderliche Berechtigungen

    Die folgenden Berechtigungen sind für das Scannen von Arbeitslasten auf Sicherheitslücken erforderlich:

    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • containersecurity.locations.list
    • containersecurity.locations.get
    • containersecurity.clusterSummaries.list
    • containersecurity.findings.list

    Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

  • Zum Scannen auf Sicherheitslücken im Container-Betriebssystem ist die GKE-Version 1.23.5-gke.700 oder höher erforderlich. Advanced Vulnerability Insights erfordert die GKE-Version 1.27 oder höher.

Stufen für das Scannen auf Sicherheitslücken in Arbeitslasten

Sie aktivieren das Scannen auf Sicherheitslücken nach Stufen, die jeweils die folgenden Scanfunktionen bieten. Wenn Sie Google Kubernetes Engine (GKE) Enterprise verwenden, um Flotten von Clustern zu verwalten, können Sie auch Einstellungen für das Scannen auf Sicherheitslücken auf Flottenebene konfigurieren, die für alle Mitgliedscluster gelten. Eine Anleitung finden Sie unter Features des GKE-Sicherheitsstatus auf Flottenebene konfigurieren.

Stufe Aktivierte Funktionen GKE-Versionsanforderung
Standard
standard
Scannen auf Sicherheitslücken im Container-Betriebssystem
  • Erfordert Version 1.23.5-gke.700 oder höher
  • Standardmäßig in Autopilot-Clustern mit Version 1.27 oder höher aktiviert
  • Standardmäßig in Standard-Clustern deaktiviert
Advanced Vulnerability Insights
enterprise
  • Scannen auf Sicherheitslücken im Container-Betriebssystem
  • Scannen auf Sicherheitslücken in Sprachpaketen
  • Erfordert Version 1.27 oder höher
  • Standardmäßig in Autopilot und Standard deaktiviert

Weitere Informationen zu den einzelnen Funktionen finden Sie unter Scannen auf Sicherheitslücken in Arbeitslasten.

Scannen auf Sicherheitslücken im Container-Betriebssystem aktivieren

Das Scannen auf Sicherheitslücken von Container OS ist in neuen Autopilot-Clustern mit Version 1.27 und höher standardmäßig aktiviert. In diesem Abschnitt erfahren Sie, wie Sie dieses Feature in neuen vorhandenen Standard-Clustern und Autopilot-Clustern aktivieren, auf denen Versionen vor 1.27 ausgeführt werden.

Scannen des Container-Betriebssystems auf einem neuen Cluster aktivieren

gcloud

Erstellen Sie mithilfe der gcloud CLI einen neuen GKE-Cluster:

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --workload-vulnerability-scanning=standard

Ersetzen Sie Folgendes:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“
  2. Klicken Sie auf Erstellen.
  3. Klicken Sie unter GKE Standard auf Konfigurieren.
  4. Klicken Sie im Navigationsbereich auf Sicherheit.
  5. Klicken Sie im Abschnitt Sicherheit das Kästchen Scannen auf Sicherheitslücken an.
  6. Wählen Sie die Option Einfach aus.
  7. Konfigurieren Sie weitere Optionen für den Cluster und klicken Sie auf Erstellen, wenn Sie bereit sind.

Scannen des Container-Betriebssystems auf einem vorhandenen Cluster aktivieren

gcloud

Aktualisieren Sie den Cluster:

gcloud container clusters update CLUSTER_NAME \
    --location=LOCATION \
    --workload-vulnerability-scanning=standard

Ersetzen Sie Folgendes:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Sicherheitsstatus auf.

    Zum Sicherheitsstatus
  2. Klicken Sie auf den Tab Einstellungen.
  3. Klicken Sie im Abschnitt Cluster auf Sicherheitslückenscan aktiviert auf Cluster auswählen.
  4. Setzen Sie ein Häkchen bei den Clustern, die Sie hinzufügen möchten.
  5. Wählen Sie im Drop-down-Menü Aktion auswählen die Option Auf „Einfach“ festlegen aus.
  6. Klicken Sie auf Anwenden.

Advanced Vulnerability Insights aktivieren

Advanced Vulnerability Insights ermöglicht ein kontinuierliches Scannen Ihrer laufenden Anwendungen auf folgende Sicherheitslücken:

  • Sicherheitslücken im Container-Betriebssystem
  • Sicherheitslücken in Sprachpaketen

Wenn Sie Advanced Vulnerability Insights aktivieren, wird das Scannen auf Sicherheitslücken im Container-Betriebssystem automatisch aktiviert und kann nicht separat deaktiviert werden.

Voraussetzungen

Advanced Vulnerability Insights für einen neuen Cluster aktivieren

gcloud

Erstellen Sie mithilfe der gcloud CLI einen neuen GKE-Cluster:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --workload-vulnerability-scanning=enterprise

Ersetzen Sie Folgendes:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Google Kubernetes Engine auf.

    Zur Seite „Google Kubernetes Engine“
  2. Klicken Sie auf Erstellen.
  3. Klicken Sie im Bereich GKE-Autopilot auf Konfigurieren.
  4. Klicken Sie im Navigationsbereich auf Erweiterte Einstellungen. Wenn Sie einen Standardcluster erstellen, klicken Sie stattdessen auf Sicherheit.
  5. Klicken Sie im Abschnitt Sicherheit das Kästchen Scannen auf Sicherheitslücken an.
  6. Wählen Sie die Option Erweitert aus.
  7. Konfigurieren Sie weitere Optionen für den Cluster und klicken Sie auf Erstellen, wenn Sie bereit sind.

Advanced Vulnerability Insights für einen vorhandenen Cluster aktivieren

gcloud

Aktualisieren Sie den Cluster:

gcloud container clusters update CLUSTER_NAME \
    --location=LOCATION \
    --workload-vulnerability-scanning=enterprise

Ersetzen Sie Folgendes:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Sicherheitsstatus auf.

    Zum Sicherheitsstatus
  2. Klicken Sie auf den Tab Einstellungen.
  3. Klicken Sie im Abschnitt Cluster auf Sicherheitslückenscan aktiviert auf Cluster auswählen.
  4. Setzen Sie ein Häkchen bei den Clustern, die Sie hinzufügen möchten.
  5. Wählen Sie im Drop-down-Menü Aktion auswählen die Option Auf „Erweitert“ festlegen aus.
  6. Klicken Sie auf Anwenden.

Testarbeitslast bereitstellen

Die folgenden Beispielmanifeste haben bekannte Sicherheitslücken zu Demonstrationszwecken. Wenn Sie in der Praxis wissen, dass eine Anwendung bedroht ist, sollten Sie sie wahrscheinlich nicht ausführen.

  1. Speichern Sie das folgende Manifest als os-vuln-sample.yaml:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: frontend
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: guestbook
          tier: frontend
      template:
        metadata:
          labels:
            app: guestbook
            tier: frontend
        spec:
          containers:
          - name: php-redis
            image: us-docker.pkg.dev/google-samples/containers/gke/gb-frontend@sha256:dc8de8e0d569d2f828b187528c9317bd6b605c273ac5a282aebe471f630420fc
            env:
            - name: GET_HOSTS_FROM
              value: "dns"
            resources:
              requests:
                cpu: 100m
                memory: 100Mi
            ports:
            - containerPort: 80
    
  2. Prüfen Sie das folgende Manifest, das eine bekannte Maven-Sicherheitslücke enthält:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: maven-vulns
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: mavenvulns
      template:
        metadata:
          labels:
            app: mavenvulns
        spec:
          containers:
          - name: maven-vulns-app
            image: us-docker.pkg.dev/google-samples/containers/gke/security/maven-vulns
            # This app listens on port 8080 for web traffic by default.
            ports:
            - containerPort: 8080
            env:
              - name: PORT
                value: "8080"
            resources:
              requests:
                memory: "1Gi"
                cpu: "500m"
                ephemeral-storage: "1Gi"
              limits:
                memory: "1Gi"
                cpu: "500m"
                ephemeral-storage: "1Gi"
  3. Rufen Sie optional Anmeldedaten für Ihren Cluster ab:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --region=COMPUTE_REGION
    
  4. Stellen Sie die Anwendungen in Ihrem Cluster bereit:

    kubectl apply -f os-vuln-sample.yaml
    kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/kubernetes-engine-samples/main/security/language-vulns/maven/deployment.yaml
    

Testen Sie andere Sicherheitslücken, indem Sie frühere Versionen von Images wie nginx in Staging-Umgebungen bereitstellen.

Ergebnisse aufrufen und bearbeiten

Je nachdem, wie viele Arbeitslasten gescannt werden, dauert der erste Scan mindestens 15 Minuten. GKE zeigt die Ergebnisse im Sicherheitsstatus-Dashboard an und fügt dem Logging automatisch Einträge hinzu.

Ergebnisse ansehen

So erhalten Sie einen Überblick über die erkannten Bedenken in den Clustern und Arbeitslasten Ihres Projekts:

  1. Rufen Sie in der Google Cloud Console die Seite Sicherheitsstatus auf.

    Zum Sicherheitsstatus

  2. Klicken Sie auf den Tab Bedenken.

  3. Klicken Sie im Bereich Bedrohungen filtern im Abschnitt Bedrohungstyp das Kästchen Sicherheitslücken an.

Details und Empfehlungen zu Problemen aufrufen

Wenn Sie Details zu einer bestimmten Sicherheitslücke aufrufen möchten, klicken Sie auf die Zeile mit der jeweiligen Sicherheitslücke.

Der Bereich Bedenken hinsichtlich Sicherheitslücken enthält die folgenden Informationen:

  • Beschreibung: Eine Beschreibung des Problems, gegebenenfalls eine CVE-Nummer und eine detaillierte Beschreibung der Sicherheitslücke und ihrer möglichen Auswirkungen.
  • Empfohlene Maßnahme: Maßnahmen, die Sie ergreifen können, um die Sicherheitslücke zu beheben, z. B. feste Paketversionen und Möglichkeiten, die Korrektur anzuwenden.

Logs für erkannte Bedenken aufrufen

GKE fügt Logging für jedes erkannten Bedenken Einträge hinzu.

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf.

    Zum Log-Explorer

  2. Geben Sie im Feld Abfrage die folgende Abfrage ein:

    resource.type="k8s_cluster"
    jsonPayload.@type="type.googleapis.com/cloud.kubernetes.security.containersecurity_logging.Finding"
    jsonPayload.type="FINDING_TYPE_VULNERABILITY"
    
  3. Klicken Sie auf Abfrage ausführen.

Um Benachrichtigungen zu erhalten, wenn GKE neue Ergebnisse zu Logging hinzufügt, richten Sie für diese Abfrage logbasierte Benachrichtigungen ein. Weitere Informationen finden Sie unter Logbasierte Benachrichtigungen konfigurieren.

Bereinigen

  1. Löschen Sie die bereitgestellte Beispielarbeitslast:

    kubectl delete deployment frontend
    
  2. Löschen Sie optional den verwendeten Cluster:

    gcloud container clusters delete CLUSTER_NAME \
        --region=COMPUTE_REGION
    

Scannen nach Sicherheitslücken deaktivieren

Sie können das Scannen von Arbeitslasten entweder über die gcloud CLI oder die Google Cloud Console deaktivieren.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud container clusters update CLUSTER_NAME \
    --region=LOCATION \
    --workload-vulnerability-scanning=disabled

Ersetzen Sie Folgendes:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Sicherheitsstatus auf.

    Zum Sicherheitsstatus
  2. Klicken Sie auf den Tab Einstellungen.
  3. Klicken Sie im Abschnitt Cluster auf Sicherheitslückenscan aktiviert auf Cluster auswählen.
  4. Setzen Sie ein Häkchen bei den Clustern, die Sie entfernen möchten.
  5. Wählen Sie im Drop-down-Menü Aktion auswählen die Option Auf „Deaktiviert“ festlegen aus.
  6. Klicken Sie auf Anwenden.

Nächste Schritte