Korrelierte Bedrohungen testen

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:

  1. Rufen Sie die Google Cloud Console auf.

    Rufen Sie die Google Cloud Console auf.

  2. Wählen Sie das Projekt aus, in dem Sie die korrelierten Bedrohungen testen möchten.

  3. Klicken Sie auf Google Cloud Shell aktivieren

  4. Legen Sie in Cloud Shell Umgebungsvariablen fest:

    1. Geben Sie die Zone an, in der sich Ihr Cluster befindet:

      export ZONE=CLUSTER_ZONE
      
    2. Geben Sie die ID des Projekts ein, in dem sich Ihr Cluster befindet:

      export PROJECT=PROJECT_ID
      
    3. Geben Sie den Namen Ihres Testclusters an:

      export CLUSTER_NAME=CLUSTER_NAME
      
    4. Rufen 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:

  1. Umgebung einrichten

  2. 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 Container und Malware: 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.

  3. 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:

  1. Richten Sie die Umgebung ein.

  2. Um ein Problem mit korrelierten Bedrohungen durch Malware auszulösen, erstellen Sie zwei Ergebnisse: Execution: Local Reconnaissance Tool Execution und Execution: 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.

  3. 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:

  1. Richten Sie die Umgebung ein.

  2. Um ein Problem mit korrelierten Bedrohungen durch Lateral Movement auszulösen, müssen Sie zwei Ergebnisse erstellen: Privilege Escalation: Launch of privileged Kubernetes container und Execution: 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.

  3. 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:

  1. Richten Sie die Umgebung ein.

  2. Erstellen Sie eine Datei mit dem Namen lateral_movement_test.sh und folgendem Inhalt. Mit diesem Skript werden mehrere Compute Engine-VMs erstellt und die folgenden beiden Ergebnisse generiert: Lateral Movement: Modified Boot Disk Attached to Instance und Malware: 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_name
    
  3. Machen Sie das Skript ausführbar:

      chmod +x lateral_movement_test.sh
    
  4. Führen Sie das Skript aus, um Ergebnisse zu generieren:

      ./lateral_movement_test.sh --project_id $PROJECT --zone $ZONE
    

    Es kann bis zu einer Stunde dauern, bis das Problem „Zusammenhängende Bedrohungen“ angezeigt wird.

  5. 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)
    

Nächste Schritte