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
Container Threat Detection hat einen Prozess beobachtet, der unerwartet einen untergeordneten Shell-Prozess erzeugt hat. Dieses Ereignis kann darauf hindeuten, dass ein Angreifer versucht, Shell-Befehle und -Skripts zu missbrauchen.
Die Quelle dieses Ergebnisses ist Container Threat Detection.
Maßnahmen
So reagieren Sie auf dieses Ergebnis:
Schritt 1: Ergebnisdetails prüfen
Öffnen Sie ein
Unexpected Child Shell-Ergebnis, wie unter Ergebnisse prüfen beschrieben. Der Detailbereich für das Ergebnis wird geöffnet und der Tab Zusammenfassung wird angezeigt.Sehen Sie sich auf dem Tab Zusammenfassung die Informationen in den folgenden Abschnitten an:
- Was wurde erkannt, insbesondere die folgenden Felder:
- Übergeordneter Prozess: Der Prozess, der unerwartet den untergeordneten Shell-Prozess erstellt hat.
- Untergeordneter Prozess: Der untergeordnete Shell-Prozess.
- Argumente: Die Argumente, die an die Binärdatei des untergeordneten Shell-Prozesses übergeben wurden.
- Umgebungsvariablen: Die Umgebungsvariablen der Binärdatei des untergeordneten Shell-Prozesses.
- Container: Der Name des Containers.
- Container-URI: Der Image-URI des Containers.
- Kubernetes-Pods: Der Pod-Name und der Namespace.
- Betroffene Ressource, insbesondere die folgenden Felder:
- Anzeigename der Ressource: Der Name der betroffenen Ressource.
- Vollständiger Name der Ressource: der vollständige Ressourcenname
des Clusters. Der vollständige Ressourcenname enthält die folgenden Informationen:
- Das Projekt, das den Cluster enthält:
projects/PROJECT_ID - Der Standort des Clusters: entweder
zone/ZONEoderlocations/LOCATION - Der Name des Clusters:
projects/CLUSTER_NAME
- Das Projekt, das den Cluster enthält:
- Weitere Informationen, insbesondere die folgenden Felder:
- VirusTotal-Indikator: Link zur VirusTotal-Analyseseite.
- Was wurde erkannt, insbesondere die folgenden Felder:
Klicken Sie auf den Tab JSON und notieren Sie sich die folgenden Felder:
+processes: Ein Array mit allen Prozessen, die mit dem Ergebnis verknüpft sind. Dieses Array enthält den untergeordneten Shell-Prozess und den übergeordneten Prozess.
+resource:
+project_display_name: Der Name des Projekts, das die Assets enthält.
+sourceProperties:
+VM_Instance_Name: Der Name des GKE-Knotens, auf dem der
Pod ausgeführt wurde.
Schritt 2: Cluster und Knoten prüfen
Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf.
Wählen Sie in der Google Cloud Console-Symbolleiste bei Bedarf das in
resource.project_display_nameaufgeführte Projekt aus.Wählen Sie den in
resource.nameaufgeführten Cluster aus. Notieren Sie sich alle Metadaten zum Cluster und zu seinem Inhaber.Klicken Sie auf den Tab Knoten. Wählen Sie den in
VM_Instance_Nameaufgeführten Knoten aus.Klicken Sie auf den Tab Details und notieren Sie sich die Annotation
container.googleapis.com/instance_id.
Schritt 3: Pod überprüfen
Rufen Sie in der Google Cloud Console die Seite Kubernetes-Arbeitslasten auf.
Wählen Sie in der Google Cloud Console-Symbolleiste bei Bedarf das Projekt aus, das Sie in der Vollständiger Name der Ressource (
resource.name) für den Cluster in der Ergebnisübersicht notiert haben.Klicken Sie auf Systemarbeitslasten ansehen.
Filtern Sie die Liste der Arbeitslasten nach dem Clusternamen, den Sie in Vollständiger Name der Ressource (
resource.name) der Ergebnisübersicht notiert haben, und bei Bedarf nach dem Pod-Namespace (kubernetes.pods.ns), den Sie notiert haben.Klicken Sie auf den Namen der Arbeitslast, der mit dem Wert des Attributs
VM_Instance_Nameübereinstimmt, den Sie zuvor in der JSON-Datei des Ergebnisses notiert haben. Die Seite Pod-Details wird geöffnet.Notieren Sie sich auf der Seite Pod-Details alle Informationen zum Pod, die Ihnen bei der Behebung der Bedrohung helfen könnten.
Schritt 4: Protokolle prüfen
Rufen Sie in der Google Cloud Console den Log-Explorer auf.
Wählen Sie in der Google Cloud Console-Symbolleiste das in
resource.project_display_nameaufgeführte Projekt aus.Wählen Sie für Zeitraum auswählen den gewünschten Zeitraum aus.
Gehen Sie auf der Seite, die geladen wird, so vor:
- 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"
- 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
- Suchen Sie mit dem folgenden Filter nach Console-Logs im GKE-Knoten:
resource.type="gce_instance"resource.labels.instance_id="instance_id"
- Suchen Sie mit dem folgenden Filter nach Pod-Logs für
Schritt 5: Laufenden Container prüfen
Wenn der Container noch ausgeführt wird, können Sie die Containerumgebung möglicherweise direkt untersuchen.
Rufen Sie die Google Cloud Console auf.
ÖffnenKonsole Google Cloud
Wählen Sie in der Google Cloud Console-Symbolleiste das in
resource.project_display_nameaufgeführte Projekt aus.Klicken Sie auf Cloud Shell aktivieren
.
Rufen Sie die GKE-Anmeldedaten für Ihren Cluster ab, indem Sie die folgenden Befehle ausführen.
Führen Sie für zonale Cluster Folgendes aus:
gcloud container clusters get-credentials cluster_name --zone location --project resource.project_display_nameFühren Sie für regionale Cluster Folgendes aus:
gcloud container clusters get-credentials cluster_name --region location --project resource.project_display_nameFühren Sie Folgendes aus, um eine Shell in der Containerumgebung zu starten:
kubectl exec --namespace=Pod_Namespace -ti Pod_Name -c Container_Name -- /bin/shBei diesem Befehl muss für den Container eine Shell unter
/bin/shinstalliert sein.Führen Sie den folgenden Befehl in der Container-Shell aus, um alle im Container ausgeführten Prozesse aufzurufen:
ps axjfBei diesem Befehl muss für den Container
/bin/psinstalliert sein.
Schritt 6: Angriffs- und Reaktionsmethoden untersuchen
- Prüfen Sie die MITRE-ATT&CK-Framework-Einträge für diesen Ergebnistyp: Befehls- und Skriptinterpreter: Unix-Shell.
- Prüfen Sie den SHA-256-Hashwert für die Binärdatei, die auf VirusTotal als schädlich gekennzeichnet ist, indem Sie auf den Link unter VirusTotal-Indikator klicken. VirusTotal, ein Alphabet-eigener Dienst, der Kontext zu potenziell schädlichen Dateien, URLs, Domains und IP-Adressen bereitstellt.
- Wenn Sie einen Antwortplan entwickeln möchten, kombinieren Sie Ihre Prüfungsergebnisse mit der MITRE-Forschung und der VirusTotal-Analyse.
Schritt 7: Antwort 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.
- 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
- Informationen zum Arbeiten mit Bedrohungsergebnissen in Security Command Center
- Weitere Informationen finden Sie im Index der Bedrohungsergebnisse.
- Informationen zum Überprüfen von Ergebnissen über die Google Cloud Console
- Dienste, die Bedrohungsergebnisse generieren