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 Binärdatei, die nicht Teil des ursprünglichen Container-Image war, wurde ausgeführt.
Angreifer installieren häufig Ausbeutungstools und Malware nach dem anfänglichen Manipulationsprozess. Es ist eine wichtige Best Practice, dafür zu sorgen, dass Ihre Container unveränderlich sind. Dies ist ein Ergebnis mit geringem Schweregrad, da Ihre Organisation diese Best Practice möglicherweise nicht befolgt. Es gibt entsprechende Execution: Added
Malicious Binary Executed-Ergebnisse, wenn der Hash der Binärdatei 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
Öffnen Sie ein
Added Binary Executed-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:
- Binärprogramm des Programms: der vollständige Pfad der hinzugefügten Binärdatei.
- Argumente: die Argumente, die beim Aufrufen der hinzugefügten Binärdatei angegeben werden.
- Betroffene Ressource, insbesondere die folgenden Felder:
- Vollständiger Ressourcenname: der vollständige Ressourcenname des Clusters, einschließlich Projektnummer, Standort und Clustername.
- Weitere Informationen, insbesondere die folgenden Felder:
- VirusTotal-Indikator: Link zur VirusTotal-Analyseseite.
- Was wurde erkannt, insbesondere die folgenden Felder:
Klicken Sie auf JSON und beachten Sie die folgenden Felder:
resource:project_display_name: der Name des Projekts, das den Cluster enthält
sourceProperties:Pod_Namespace: der Name des Kubernetes-Namespace des PodsPod_Name: der Name des GKE-PodsContainer_Name: der Name des betroffenen ContainersContainer_Image_Uri: der Name des bereitgestellten Container-ImagesVM_Instance_Name: der Name des GKE-Knotens, auf dem der Pod ausgeführt wurde
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
Rufen Sie in der Google Cloud Console die Seite Kubernetes-Cluster auf.
Wählen Sie in der Symbolleiste der Google Cloud Console bei Bedarf das in
resource.project_display_nameaufgeführte Projekt aus.Wählen Sie den Cluster aus, der auf dem Tab Zusammenfassung der Ergebnisdetails in der Zeile Vollständiger Ressourcenname aufgeführt ist. Notieren Sie sich alle Metadaten zu dem 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 Symbolleiste der Google Cloud Console bei Bedarf das in
resource.project_display_nameaufgeführte Projekt aus.Filtern Sie bei Bedarf nach dem Cluster, der auf dem Tab Zusammenfassung der Ergebnisdetails in der Zeile Vollständiger Ressourcenname aufgeführt ist. Bei Bedarf können Sie auch nach dem in
Pod_Namespaceaufgeführten Pod-Namespace filtern.Wählen Sie den in
Pod_Nameaufgeführten Pod aus. Notieren Sie sich alle Metadaten zum Pod und zu seinem Inhaber.
Schritt 4: Protokolle prüfen
Rufen Sie in der Google Cloud Console den Log-Explorer auf.
Wählen Sie in der Symbolleiste der Google Cloud Console bei Bedarf 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.
Google Cloud Console öffnen
Wählen Sie in der Symbolleiste der Google Cloud Console bei Bedarf 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ür zonale Cluster:
gcloud container clusters get-credentials cluster_name --zone location --project project_nameFür regionale Cluster:
gcloud container clusters get-credentials cluster_name --region location --project project_nameErsetzen Sie Folgendes:
cluster_name: der inresource.labels.cluster_nameaufgeführte Clusterlocation: der inresource.labels.locationaufgeführte Standortproject_name: der inresource.project_display_nameaufgeführte Projektname
Rufen Sie die hinzugefügte Binärdatei mit folgendem Befehl ab:
kubectl cp Pod_Namespace/Pod_Name:Process_Binary_Fullpath -c Container_Name local_fileErsetzen Sie
local_filedurch einen lokalen Dateipfad zum Speichern der hinzugefügten Binärdatei.Stellen Sie eine Verbindung zur Containerumgebung her, indem Sie Folgendes ausführen:
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.
Schritt 6: Angriffs- und Reaktionsmethoden untersuchen
- Prüfen Sie die MITRE-ATT&CK-Framework-Einträge für diesen Ergebnistyp: Übertragung von Ingress-Tools, Native API.
- 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 Reaktionsplan 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.
- Wenn die Binärdatei im Container enthalten sein sollte, erstellen Sie das Container-Image mit der Binärdatei 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
- 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