Testa le minacce correlate

Questa pagina descrive come verificare che le minacce correlate funzionino emulando le minacce per attivare intenzionalmente i rilevatori di Security Command Center e creare risultati. Questi risultati sulle minacce creano problemi di minacce correlate per ogni regola.

Per saperne di più sulle minacce correlate, consulta la panoramica delle minacce correlate. Se vuoi generare risultati che producono minacce correlate, devi abilitare i servizi di rilevamento delle minacce appropriati nelle impostazioni di Security Command Center.

Configura l'ambiente

Queste procedure di test richiedono sia un cluster GKE sia la possibilità di eseguire il provisioning di VM Compute Engine. Assicurati che il cluster di test utilizzi una versione supportata di Google Kubernetes Engine (GKE). Per maggiori informazioni, vedi Utilizzare una versione di GKE supportata.

Prima di testare Correlated Threats, devi prima selezionare un progetto con il cluster GKE appropriato, attivare Cloud Shell e impostare diverse variabili di ambiente. A questo scopo, procedi nel seguente modo:

  1. Vai alla consoleGoogle Cloud .

    Vai alla console Google Cloud

  2. Seleziona il progetto in cui vuoi testare le minacce correlate.

  3. Fai clic su Attiva Cloud Shell.

  4. In Cloud Shell, imposta le variabili di ambiente.

    1. Specifica la zona in cui si trova il cluster:

      export ZONE=CLUSTER_ZONE
      
    2. Inserisci l'ID del progetto in cui si trova il cluster:

      export PROJECT=PROJECT_ID
      
    3. Specifica il nome del cluster di test:

      export CLUSTER_NAME=CLUSTER_NAME
      
    4. Recupera le credenziali per il tuo cluster:

      gcloud container clusters get-credentials $CLUSTER_NAME \
          --zone $ZONE \
          --project $PROJECT
      

Simulare un attacco di mining di criptovalute

Questa sezione descrive come emulare il mining di criptovalute e creare un problema di minacce correlate utilizzando la console Google Cloud e Cloud Shell. Per farlo, devi prima attivare Cloud Shell, selezionare un progetto e poi eseguire il test.

Per testare le minacce correlate emulando il mining di criptovalute:

  1. Configura l'ambiente

  2. Per attivare un problema di minacce correlate alle criptovalute, crea due risultati: Execution: Netcat Remote Code Execution In Container e Malware: Cryptomining Bad IP. Per attivare questi due risultati, esegui i seguenti comandi:

      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"
    

    La visualizzazione del problema Minacce correlate può richiedere fino a un'ora.

  3. Dopo la generazione del problema Minacce correlate, esegui la pulizia eseguendo il seguente comando per eliminare il pod Kubernetes utilizzato per i test.

      kubectl delete pod "$tag"
    

Simulare un attacco malware

Questa sezione descrive come emulare un attacco malware e creare un problema di minacce correlate utilizzando la console Google Cloud e Cloud Shell. Per farlo, attiva prima Cloud Shell, seleziona un progetto e poi esegui il test.

Per testare le minacce correlate emulando un attacco malware:

  1. Configura l'ambiente.

  2. Per attivare un problema di minacce correlate a malware, crea due risultati: Execution: Local Reconnaissance Tool Execution e Execution: Added Malicious Binary Executed. Per creare un pod Ubuntu 24.04 nel tuo cluster GKE e attivare questi due risultati, esegui i seguenti comandi:

      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"
    

    Potrebbe essere necessaria fino a un'ora prima che venga visualizzato il problema Minacce correlate.

  3. Dopo aver generato il problema di minaccia correlato, esegui la pulizia eseguendo il seguente comando per eliminare il pod Kubernetes utilizzato per il test.

      kubectl delete pod "$tag"
    

Emula un attacco di movimento laterale su GKE

Questa sezione descrive come emulare un attacco di movimento laterale su GKE e creare un problema di minacce correlate utilizzando la consoleGoogle Cloud e Cloud Shell. Per farlo, devi prima attivare Cloud Shell, selezionare un progetto e poi eseguire il test.

Per testare le minacce correlate emulando un attacco di movimento laterale, segui questi passaggi:

  1. Configura l'ambiente.

  2. Per attivare un problema di spostamento laterale Correlated Threats, devi creare due risultati: Privilege Escalation: Launch of privileged Kubernetes container e Execution: Container Escape. Per creare un pod Ubuntu nel cluster GKE e attivare questi due risultati, esegui i seguenti comandi:

      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"
    

    Potrebbe essere necessaria fino a un'ora prima che venga visualizzato il problema Minacce correlate.

  3. Dopo aver generato il problema Minacce correlate, esegui la pulizia eseguendo il seguente comando per eliminare il pod Kubernetes utilizzato per i test.

      kubectl delete pod "$tag"
    

Simulare un attacco di movimento laterale su Compute Engine

Questa sezione descrive come emulare un attacco di movimento laterale su Compute Engine e creare un problema di minacce correlate utilizzando la consoleGoogle Cloud e Cloud Shell. Per farlo, devi prima attivare Cloud Shell, selezionare un progetto ed eseguire il test.

Per testare le minacce correlate emulando un attacco di movimento laterale, segui questi passaggi:

  1. Configura l'ambiente.

  2. Crea un file denominato lateral_movement_test.sh con i seguenti contenuti. Questo script crea più VM di Compute Engine e genera i due seguenti risultati: Lateral Movement: Modified Boot Disk Attached to Instance e 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. Rendi eseguibile lo script:

      chmod +x lateral_movement_test.sh
    
  4. Per generare risultati, esegui lo script:

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

    Potrebbe essere necessaria fino a un'ora prima che venga visualizzato il problema Minacce correlate.

  5. Dopo aver generato il problema, esegui la pulizia utilizzando il comando fornito nell'output dello script di test.

      gcloud compute instances delete $(cat .lateral_movement_test_name)
    

Passaggi successivi