Hinzugefügte Bibliothek geladen

In diesem Dokument wird ein bestimmter Typ von Bedrohungsergebnissen in Security Command Center beschrieben. Bedrohungsergebnisse werden von Bedrohungsdetektoren generiert, wenn sie eine potenzielle Bedrohung in Ihren Cloud-Ressourcen erkennen. Eine vollständige Liste der verfügbaren Bedrohungsergebnisse finden Sie im Index der Bedrohungsergebnisse.

Übersicht

Eine Bibliothek, die nicht Teil des ursprünglichen Container-Image war, wurde geladen. Angreifer könnten schädliche Bibliotheken in vorhandene Programme laden, um den Schutz vor Code-Ausführung zu umgehen und schädlichen Code zu verbergen. Es ist wichtig, dass Ihre Container unveränderbar sind. Dies ist ein Ergebnis mit geringer Schwere, da Ihre Organisation diese Best Practice möglicherweise nicht befolgt. Es gibt entsprechende Execution: Added Malicious Library Loaded-Ergebnisse, wenn der Hash des Binärprogramms ein bekannter Kompromittierungsindikator (Indicator of Compromise, IoC) ist.

Die Quelle dieses Ergebnisses ist Container Threat Detection.

Maßnahmen

So reagieren Sie auf dieses Ergebnis:

Schritt 1: Ergebnisdetails prüfen

  1. Öffnen Sie ein Added Library Loaded-Ergebnis, wie unter Ergebnisse prüfen beschrieben. Der Detailbereich für das Ergebnis wird geöffnet und der Tab Zusammenfassung wird angezeigt.

  2. Sehen Sie sich auf dem Tab Zusammenfassung die Informationen in den folgenden Abschnitten an:

    • Was erkannt wurde, insbesondere die folgenden Felder:
      • Binärprogramm des Programms: der vollständige Pfad der Prozessbinärdatei, die die Bibliothek geladen hat.
      • Bibliotheken: Details zur hinzugefügten Bibliothek.
      • Argumente: die Argumente, die beim Aufrufen der Prozessbinärdatei angegeben werden.
    • Betroffene Ressource, insbesondere die folgenden Felder:
    • Weitere Informationen, insbesondere die folgenden Felder:
      • VirusTotal-Indikator: Link zur VirusTotal-Analyseseite.
  3. Klicken Sie auf den Tab JSON und notieren Sie sich die folgenden Felder:

    • resource:
      • project_display_name: Der Name des Projekts, das das Asset enthält.
    • sourceProperties:
      • Pod_Namespace: der Name des Kubernetes-Namespace des Pods
      • Pod_Name: der Name des GKE-Pods
      • Container_Name: der Name des betroffenen Containers
      • Container_Image_Uri: der Name des ausgeführten Container-Images
      • VM_Instance_Name: der Name des GKE-Knotens, auf dem der Pod ausgeführt wurde
  4. Suchen Sie nach anderen Ergebnissen, die für diesen Container zu einem ähnlichen Zeitpunkt aufgetreten sind. Zugehörige Ergebnisse deuten möglicherweise darauf hin, dass diese Aktivität schädlich war und nicht auf einem Verstoß gegen Best Practices beruhte.

Schritt 2: Cluster und Knoten prüfen

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

    Zur Seite Kubernetes Clusters

  2. Wählen Sie in der Google Cloud Console-Symbolleiste bei Bedarf das in resource.project_display_name aufgeführte Projekt aus.

  3. Wählen Sie den in resource.name aufgeführten Cluster aus. Notieren Sie sich alle Metadaten zum Cluster und zu seinem Inhaber.

  4. Klicken Sie auf den Tab Knoten. Wählen Sie den in VM_Instance_Name aufgeführten Knoten aus.

  5. Klicken Sie auf den Tab Details und notieren Sie sich die Annotation container.googleapis.com/instance_id.

Schritt 3: Pod überprüfen

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

    Zur Seite „Kubernetes-Arbeitslasten“

  2. Wählen Sie in der Symbolleiste der Google Cloud Console bei Bedarf das in resource.project_display_name aufgeführte Projekt aus.

  3. Filtern Sie bei Bedarf nach dem Cluster, der auf dem Tab Zusammenfassung der Ergebnisdetails in der Zeile Vollständiger Name der Ressource aufgeführt ist. Bei Bedarf können Sie auch nach dem in Pod_Namespace aufgeführten Pod-Namespace filtern.

  4. Wählen Sie den in Pod_Name aufgeführten Pod aus. Notieren Sie sich alle Metadaten zum Pod und zu seinem Inhaber.

Schritt 4: Protokolle prüfen

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

    Zum Log-Explorer

  2. Wählen Sie in der Google Cloud Console-Symbolleiste bei Bedarf das in resource.project_display_name aufgeführte Projekt aus.

  3. Wählen Sie für Zeitraum auswählen den gewünschten Zeitraum aus.

  4. Gehen Sie auf der Seite, die geladen wird, so vor:

    1. Suchen Sie mit dem folgenden Filter nach Pod-Logs für Pod_Name:
      • resource.type="k8s_container"
      • resource.labels.project_id="resource.project_display_name"
      • resource.labels.location="location"
      • resource.labels.cluster_name="cluster_name"
      • resource.labels.namespace_name="Pod_Namespace"
      • resource.labels.pod_name="Pod_Name"
    2. Suchen Sie mit dem folgenden Filter nach Cluster-Audit-Logs:
      • logName="projects/resource.project_display_name/logs/cloudaudit.googleapis.com%2Factivity"
      • resource.type="k8s_cluster"
      • resource.labels.project_id="resource.project_display_name"
      • resource.labels.location="location"
      • resource.labels.cluster_name="cluster_name"
      • Pod_Name
    3. Suchen Sie mit dem folgenden Filter nach Console-Logs im GKE-Knoten:
      • resource.type="gce_instance"
      • resource.labels.instance_id="instance_id"

Schritt 5: Laufenden Container prüfen

Wenn der Container noch ausgeführt wird, können Sie die Containerumgebung möglicherweise direkt untersuchen.

  1. Rufen Sie die Google Cloud Console auf.

    Google Cloud Console öffnen

  2. Wählen Sie in der Google Cloud Console-Symbolleiste bei Bedarf das in resource.project_display_name aufgeführte Projekt aus.

  3. Klicken Sie auf Cloud Shell aktivieren .

  4. Rufen Sie die GKE-Anmeldedaten für Ihren Cluster ab, indem Sie die folgenden Befehle ausführen.

    Für zonale Cluster:

      gcloud container clusters get-credentials cluster_name --zone location --project resource.project_display_name
    

    Für regionale Cluster:

      gcloud container clusters get-credentials cluster_name --region location --project resource.project_display_name
    
  5. Rufen Sie die hinzugefügte Bibliothek ab, indem Sie folgenden Befehl ausführen:

      kubectl cp Pod_Namespace/Pod_Name: Added_Library_Fullpath -c Container_Name  local_file
    

    Ersetzen Sie local_file durch einen lokalen Dateipfad, um die hinzugefügte Bibliothek zu speichern.

  6. Stellen Sie eine Verbindung zur Containerumgebung her, indem Sie Folgendes ausführen:

      kubectl exec --namespace=Pod_Namespace -ti Pod_Name -c Container_Name -- /bin/sh
    

    Bei diesem Befehl muss für den Container eine Shell unter /bin/sh installiert sein.

Schritt 6: Angriffs- und Reaktionsmethoden untersuchen

  1. Prüfen Sie die MITRE-ATT&CK-Framework-Einträge für diesen Ergebnistyp: Ingress-Tool-Übertragung, Freigegebene Module.
  2. Prüfen Sie den SHA-256-Hashwert für die als schädlich gekennzeichnete Binärdatei auf VirusTotal, indem Sie auf den Link in VirusTotal-Indikator klicken. VirusTotal ist ein Alphabet-eigener Dienst, der Kontext zu potenziell schädlichen Dateien, URLs, Domains und IP-Adressen bereitstellt.
  3. Wenn Sie einen Reaktionsplan entwickeln möchten, kombinieren Sie Ihre Untersuchungsergebnisse mit der MITRE-Forschung und der VirusTotal-Analyse.

Schritt 7: Reaktion implementieren

Der folgende Reaktionplan ist möglicherweise für dieses Ergebnis geeignet, kann sich jedoch auch auf Abläufe auswirken. Prüfen Sie die Informationen, die Sie im Rahmen Ihrer Untersuchung erfasst haben, sorgfältig, um die beste Lösung für die Behebung der Ergebnisse zu finden.

  • Wenn die Bibliothek im Container enthalten sein sollte, erstellen Sie das Container-Image mit der Bibliothek neu. So kann der Container unveränderlich sein.
  • Andernfalls wenden Sie sich an den Inhaber des Projekts mit dem manipulierten Container.
  • Beenden oder löschen Sie den manipulierten Container und ersetzen Sie ihn durch einen neuen Container.

Weitere Informationen