Auf dieser Seite wird beschrieben, wie Sie prüfen können, ob Correlated Threats funktioniert, indem Sie Bedrohungen emulieren, um Security Command Center-Detektoren auszulösen und Ergebnisse zu erstellen. Aus diesen Bedrohungsbefunden werden dann für jede Regel Probleme vom Typ „Korrelierte Bedrohungen“ erstellt.
Weitere Informationen zu korrelierten Bedrohungen finden Sie in der Übersicht über korrelierte Bedrohungen. Wenn Sie Ergebnisse generieren möchten, die zu korrelierten Bedrohungen führen, müssen Sie die entsprechenden Dienste zur Bedrohungserkennung in den Security Command Center-Einstellungen aktivieren.
Umgebung einrichten
Für diese Testverfahren sind sowohl ein GKE-Cluster als auch die Möglichkeit zum Bereitstellen von Compute Engine-VMs erforderlich. Achten Sie darauf, dass Ihr Testcluster eine unterstützte Version von Google Kubernetes Engine (GKE) verwendet. Weitere Informationen finden Sie unter Unterstützte GKE-Version verwenden.
Bevor Sie „Correlated Threats“ testen, müssen Sie zuerst ein Projekt mit dem entsprechenden GKE-Cluster auswählen, Cloud Shell aktivieren und mehrere Umgebungsvariablen festlegen. Gehen Sie hierzu folgendermaßen vor:
Rufen Sie die Google Cloud Console auf.
Wählen Sie das Projekt aus, in dem Sie die korrelierten Bedrohungen testen möchten.
Klicken Sie auf Google Cloud Shell aktivieren.
Legen Sie in Cloud Shell Umgebungsvariablen fest:
Geben Sie die Zone an, in der sich Ihr Cluster befindet:
export ZONE=CLUSTER_ZONEGeben Sie die ID des Projekts ein, in dem sich Ihr Cluster befindet:
export PROJECT=PROJECT_IDGeben Sie den Namen Ihres Testclusters an:
export CLUSTER_NAME=CLUSTER_NAMERufen Sie die Anmeldedaten für Ihren Cluster ab:
gcloud container clusters get-credentials $CLUSTER_NAME \ --zone $ZONE \ --project $PROJECT
Kryptowährungs-Mining-Angriff simulieren
In diesem Abschnitt wird beschrieben, wie Sie das Mining von Kryptowährungen emulieren und ein Problem mit korrelierten Bedrohungen mit der Google Cloud Console und Cloud Shell erstellen. Dazu müssen Sie zuerst Cloud Shell aktivieren, ein Projekt auswählen und dann den Test ausführen.
So testen Sie Correlated Threats, indem Sie Kryptowährung-Mining emulieren:
Wenn Sie ein Problem mit korrelierten Bedrohungen für Kryptowährungen auslösen möchten, erstellen Sie zwei Findings:
Execution: Netcat Remote Code Execution In ContainerundMalware: Cryptomining Bad IP. Führen Sie die folgenden Befehle aus, um diese beiden Ergebnisse auszulösen:tag="correlated-threat-test-crypto-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run \ --restart=Never \ --image marketplace.gcr.io/google/ubuntu2404:latest \ "$tag" -- bash -c \ "apt-get update ; apt-get install -y curl ; cp /bin/ls /tmp/curl; /tmp/curl --url=stratum+tcp ; for i in {1..5}; do curl 34.66.147.47 > /dev/null; done; sleep infinity"Es kann bis zu einer Stunde dauern, bis das Problem „Zusammenhängende Bedrohungen“ angezeigt wird.
Nachdem das Problem „Correlated Threats“ generiert wurde, führen Sie die Bereinigung durch, indem Sie den folgenden Befehl ausführen, um den für Tests verwendeten Kubernetes-Pod zu löschen.
kubectl delete pod "$tag"
Malware-Angriff simulieren
In diesem Abschnitt wird beschrieben, wie Sie einen Malware-Angriff simulieren und ein Problem mit korrelierten Bedrohungen mit der Google Cloud Konsole und Cloud Shell erstellen. Aktivieren Sie dazu zuerst Cloud Shell, wählen Sie ein Projekt aus und führen Sie dann den Test aus.
So testen Sie Correlated Threats, indem Sie einen Malware-Angriff simulieren:
Um ein Problem mit korrelierten Bedrohungen durch Malware auszulösen, erstellen Sie zwei Ergebnisse:
Execution: Local Reconnaissance Tool ExecutionundExecution: Added Malicious Binary Executed. Führen Sie die folgenden Befehle aus, um in Ihrem GKE-Cluster einen Ubuntu 24.04-Pod zu erstellen und diese beiden Ergebnisse auszulösen:tag="correlated-threat-test-malware-$(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 \ --image marketplace.gcr.io/google/ubuntu2404:latest \ "$tag" -- sh -c \ "cp /bin/ls /tmp/linenum.sh; /tmp/linenum.sh; touch /tmp/test_mal_file; echo -n '$eicar' > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; /tmp/test_mal_file; sleep infinity"Es kann bis zu einer Stunde dauern, bis das Problem „Zusammenhängende Bedrohungen“ angezeigt wird.
Nachdem das Problem mit der korrelierten Bedrohung generiert wurde, führen Sie die Bereinigung durch, indem Sie den folgenden Befehl ausführen, um den für Tests verwendeten Kubernetes-Pod zu löschen.
kubectl delete pod "$tag"
Lateral-Movement-Angriff auf GKE simulieren
In diesem Abschnitt wird beschrieben, wie Sie einen Angriff zur lateralen Bewegung auf GKE emulieren und ein Problem mit korrelierten Bedrohungen mit derGoogle Cloud -Konsole und Cloud Shell erstellen. Dazu müssen Sie zuerst Cloud Shell aktivieren, ein Projekt auswählen und dann den Test durchführen.
So testen Sie Correlated Threats, indem Sie einen Angriff mit lateraler Bewegung simulieren:
Um ein Problem mit korrelierten Bedrohungen durch Lateral Movement auszulösen, müssen Sie zwei Ergebnisse erstellen:
Privilege Escalation: Launch of privileged Kubernetes containerundExecution: Container Escape. Führen Sie die folgenden Befehle aus, um einen Ubuntu-Pod in Ihrem GKE-Cluster zu erstellen und diese beiden Ergebnisse auszulösen:tag="correlated-threat-test-podlatmove-$(date -u +%Y-%m-%d-%H-%M-%S-utc)" kubectl run \ --restart=Never \ --image ubuntu "$tag" \ --privileged \ -- bash -c \ "cp /bin/ls /tmp/botb-linux-amd64; sleep 60; /tmp/botb-linux-amd64 -autopwn; sleep infinity"Es kann bis zu einer Stunde dauern, bis das Problem „Zusammenhängende Bedrohungen“ angezeigt wird.
Nachdem das Problem „Correlated Threats“ generiert wurde, führen Sie die Bereinigung durch, indem Sie den folgenden Befehl ausführen, um den für Tests verwendeten Kubernetes-Pod zu löschen.
kubectl delete pod "$tag"
Seitwärtsbewegung in Compute Engine simulieren
In diesem Abschnitt wird beschrieben, wie Sie einen Angriff zur lateralen Bewegung in Compute Engine emulieren und ein Problem mit korrelierten Bedrohungen über dieGoogle Cloud Console und Cloud Shell erstellen. Dazu müssen Sie zuerst Cloud Shell aktivieren, ein Projekt auswählen und dann den Test ausführen.
So testen Sie Correlated Threats, indem Sie einen Angriff mit lateraler Bewegung simulieren:
Erstellen Sie eine Datei mit dem Namen
lateral_movement_test.shund folgendem Inhalt. Mit diesem Skript werden mehrere Compute Engine-VMs erstellt und die folgenden beiden Ergebnisse generiert:Lateral Movement: Modified Boot Disk Attached to InstanceundMalware: Bad IP.#!/bin/bash # emulates a boot disk swap followed by malicious IP to trigger correlated threats. # Default values IMAGE_FAMILY="debian-12" IMAGE_PROJECT="debian-cloud" TIMESTAMP=$(date +%s) TARGET_INSTANCE_NAME="target-vm-${TIMESTAMP}" WORKER_INSTANCE_NAME="worker-vm-${TIMESTAMP}" PROJECT_ID="" ZONE="" # --- Usage function --- usage() { echo "Usage: $0 --project_id <PROJECT_ID> --zone <ZONE> [OPTIONS]" echo "emulates a boot disk swap followed by malicious IP to trigger correlated threats." echo echo "Required arguments:" echo " --project_id <PROJECT_ID> Your Google Cloud Project ID" echo " --zone <ZONE> The Google Cloud zone to create resources in (e.g., us-central1-a)" echo echo "Optional arguments:" echo " --help Display this help message" } # --- Parse arguments --- while [[ $# -gt 0 ]]; do case "$1" in --project_id) PROJECT_ID="$2" shift 2 ;; --zone) ZONE="$2" shift 2 ;; --help) usage exit 0 ;; *) echo "Unknown option: $1" usage exit 1 ;; esac done # --- Validate required arguments --- if [[ -z "${PROJECT_ID}" ]]; then echo "Error: --project_id is required." usage exit 1 fi if [[ -z "${ZONE}" ]]; then echo "Error: --zone is required." usage exit 1 fi # The boot disk name defaults to the instance name BOOT_DISK_NAME=$TARGET_INSTANCE_NAME set -e echo "Starting script with the following settings:" echo "PROJECT_ID: ${PROJECT_ID}" echo "ZONE: ${ZONE}" echo "TARGET_INSTANCE_NAME: ${TARGET_INSTANCE_NAME}" echo "WORKER_INSTANCE_NAME: ${WORKER_INSTANCE_NAME}" echo "BOOT_DISK_NAME: ${BOOT_DISK_NAME}" echo "IMAGE_FAMILY: ${IMAGE_FAMILY}" echo "IMAGE_PROJECT: ${IMAGE_PROJECT}" echo "--------------------------------------------------" gcloud config set project "${PROJECT_ID}" gcloud config set compute/zone "${ZONE}" # Function to run gcloud commands with --quiet run_gcloud() { echo "Running: gcloud $@" gcloud "$@" --quiet } echo "Step 1: Create target VM: ${TARGET_INSTANCE_NAME}" run_gcloud compute instances create "${TARGET_INSTANCE_NAME}" \ --image-family="${IMAGE_FAMILY}" \ --image-project="${IMAGE_PROJECT}" \ --no-address echo "Step 2: Create worker VM: ${WORKER_INSTANCE_NAME}" run_gcloud compute instances create "${WORKER_INSTANCE_NAME}" \ --image-family="${IMAGE_FAMILY}" \ --image-project="${IMAGE_PROJECT}" \ --no-address echo "Step 3: Stop target VM: ${TARGET_INSTANCE_NAME}" run_gcloud compute instances stop "${TARGET_INSTANCE_NAME}" echo "Step 4: Detach boot disk from target VM" run_gcloud compute instances detach-disk "${TARGET_INSTANCE_NAME}" --disk="${BOOT_DISK_NAME}" echo "Step 5: Attach disk to worker VM: ${WORKER_INSTANCE_NAME}" run_gcloud compute instances attach-disk "${WORKER_INSTANCE_NAME}" --disk="${BOOT_DISK_NAME}" echo " << At this point, the disk is attached to the worker VM >>" echo " << Malicious modifications could theoretically be made here >>" echo "Step 6: Detach disk from worker VM" run_gcloud compute instances detach-disk "${WORKER_INSTANCE_NAME}" --disk="${BOOT_DISK_NAME}" echo "Step 7: Re-attach disk to target VM as boot disk" run_gcloud compute instances attach-disk "${TARGET_INSTANCE_NAME}" --disk="${BOOT_DISK_NAME}" --boot echo "Step 8: Start target VM" run_gcloud compute instances start "${TARGET_INSTANCE_NAME}" echo -n "Step 9: Wait for instance SSH to be available" until gcloud compute ssh "${TARGET_INSTANCE_NAME}" --command="true" 2>/dev/null do echo -n "." sleep 2 done echo echo "Step 10: Trigger bad IP findings" run_gcloud compute ssh "${TARGET_INSTANCE_NAME}" --command="for i in {1..5}; do curl 34.66.147.47 > /dev/null 2>/dev/null; done;" echo "Step 11: Delete worker VM: ${WORKER_INSTANCE_NAME}" run_gcloud compute instances delete "${WORKER_INSTANCE_NAME}" echo "--- Testing Complete ---" echo "The script has completed executing the patterns to trigger a correlated" echo "threats issue. Check the Security Command Center Issues page to view the issue." echo "Check Security Command Center for findings." echo echo "After observing the correlated threat issue in Security Command Center" echo "use this command to delete ${TARGET_INSTANCE_NAME}." echo " gcloud compute instances delete "${TARGET_INSTANCE_NAME}"" echo ${TARGET_INSTANCE_NAME} > ./.lateral_movement_test_nameMachen Sie das Skript ausführbar:
chmod +x lateral_movement_test.shFühren Sie das Skript aus, um Ergebnisse zu generieren:
./lateral_movement_test.sh --project_id $PROJECT --zone $ZONEEs kann bis zu einer Stunde dauern, bis das Problem „Zusammenhängende Bedrohungen“ angezeigt wird.
Nachdem das Problem generiert wurde, führen Sie die Bereinigung mit dem Befehl durch, der in der Ausgabe des Testskripts angegeben ist.
gcloud compute instances delete $(cat .lateral_movement_test_name)