Menguji Ancaman yang Berkorelasi

Halaman ini menjelaskan cara memverifikasi bahwa Ancaman yang Dikorelasikan berfungsi dengan meniru ancaman untuk memicu detektor Security Command Center secara sengaja dan membuat temuan. Temuan ancaman ini kemudian membuat masalah Ancaman yang Berkorelasi untuk setiap aturan.

Untuk mempelajari Correlated Threats lebih lanjut, lihat ringkasan Correlated Threats. Jika Anda ingin membuat temuan yang menghasilkan Ancaman yang Berkorelasi, Anda harus mengaktifkan layanan deteksi ancaman yang sesuai di setelan Security Command Center.

Menyiapkan lingkungan Anda

Prosedur pengujian ini memerlukan cluster GKE dan kemampuan untuk menyediakan VM Compute Engine. Pastikan cluster pengujian Anda menggunakan Google Kubernetes Engine (GKE) versi yang didukung. Untuk mengetahui informasi selengkapnya, lihat Menggunakan versi GKE yang didukung.

Sebelum menguji Correlated Threats, Anda harus memilih project dengan cluster GKE yang sesuai, mengaktifkan Cloud Shell, dan menetapkan beberapa variabel lingkungan terlebih dahulu. Untuk melakukannya, ikuti langkah-langkah ini:

  1. Buka Google Cloud console.

    Buka Google Cloud konsol

  2. Pilih project tempat Anda ingin menguji Ancaman yang Berkorelasi.

  3. Klik Activate Cloud Shell.

  4. Di Cloud Shell, tetapkan variabel lingkungan.

    1. Tentukan zona tempat cluster Anda berada:

      export ZONE=CLUSTER_ZONE
      
    2. Masukkan ID project tempat cluster Anda berada:

      export PROJECT=PROJECT_ID
      
    3. Tentukan nama cluster pengujian Anda:

      export CLUSTER_NAME=CLUSTER_NAME
      
    4. Dapatkan kredensial untuk cluster Anda:

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

Meniru serangan penambangan mata uang kripto

Bagian ini menjelaskan cara mengemulasi penambangan mata uang kripto dan membuat masalah Ancaman yang Berkorelasi menggunakan konsol Google Cloud dan Cloud Shell. Untuk melakukannya, Anda harus mengaktifkan Cloud Shell terlebih dahulu, memilih project, lalu melakukan pengujian.

Untuk menguji Correlated Threats dengan meniru penambangan mata uang kripto, ikuti langkah-langkah berikut:

  1. Menyiapkan lingkungan Anda

  2. Untuk memicu masalah Ancaman yang Berkorelasi dengan mata uang kripto, buat dua temuan: Execution: Netcat Remote Code Execution In Container dan Malware: Cryptomining Bad IP. Untuk memicu kedua temuan ini, jalankan perintah berikut:

      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"
    

    Diperlukan waktu hingga satu jam agar masalah Correlated Threats muncul.

  3. Setelah masalah Ancaman yang Berkorelasi dibuat, lakukan pembersihan dengan menjalankan perintah berikut untuk menghapus Pod Kubernetes yang digunakan untuk pengujian.

      kubectl delete pod "$tag"
    

Mengemulasi serangan malware

Bagian ini menjelaskan cara meniru serangan malware dan membuat masalah Ancaman yang Berkorelasi menggunakan konsol Google Cloud dan Cloud Shell. Untuk melakukannya, aktifkan Cloud Shell terlebih dahulu, pilih project, lalu lakukan pengujian.

Untuk menguji Correlated Threats dengan meniru serangan malware, ikuti langkah-langkah berikut:

  1. Menyiapkan lingkungan Anda

  2. Untuk memicu masalah Ancaman yang Berkorelasi dengan malware, Anda membuat dua temuan: Execution: Local Reconnaissance Tool Execution dan Execution: Added Malicious Binary Executed. Untuk membuat Pod Ubuntu 24.04 di cluster GKE dan memicu dua temuan ini, jalankan perintah berikut:

      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"
    

    Diperlukan waktu hingga satu jam agar masalah Ancaman yang Berkorelasi muncul.

  3. Setelah masalah ancaman yang dikorelasikan dibuat, lakukan pembersihan dengan menjalankan perintah berikut untuk menghapus Pod Kubernetes yang digunakan untuk pengujian.

      kubectl delete pod "$tag"
    

Mengemulasi serangan gerakan lateral di GKE

Bagian ini menjelaskan cara meniru serangan pergerakan lateral di GKE dan membuat masalah Correlated Threats menggunakan konsolGoogle Cloud dan Cloud Shell. Untuk melakukannya, Anda harus mengaktifkan Cloud Shell terlebih dahulu, memilih project, lalu melakukan pengujian.

Untuk menguji Correlated Threats dengan meniru serangan pergerakan lateral, ikuti langkah-langkah berikut:

  1. Menyiapkan lingkungan Anda

  2. Untuk memicu masalah Correlated Threats pergerakan lateral, Anda membuat dua temuan: Privilege Escalation: Launch of privileged Kubernetes container dan Execution: Container Escape. Untuk membuat Pod Ubuntu di cluster GKE dan memicu dua temuan ini, jalankan perintah berikut:

      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"
    

    Diperlukan waktu hingga satu jam agar masalah Ancaman yang Berkorelasi muncul.

  3. Setelah masalah Ancaman yang Berkorelasi dibuat, lakukan pembersihan dengan menjalankan perintah berikut untuk menghapus Pod Kubernetes yang digunakan untuk pengujian.

      kubectl delete pod "$tag"
    

Mengemulasi serangan pergerakan lateral di Compute Engine

Bagian ini menjelaskan cara meniru serangan pergerakan lateral di Compute Engine dan membuat masalah Ancaman yang Berkorelasi menggunakan konsol dan Cloud Shell.Google Cloud Untuk melakukannya, Anda harus mengaktifkan Cloud Shell terlebih dahulu, memilih project, lalu melakukan pengujian.

Untuk menguji Correlated Threats dengan meniru serangan pergerakan lateral, ikuti langkah-langkah berikut:

  1. Menyiapkan lingkungan Anda

  2. Buat file bernama lateral_movement_test.sh dengan konten berikut. Skrip ini membuat beberapa VM Compute Engine dan menghasilkan dua temuan berikut: Lateral Movement: Modified Boot Disk Attached to Instance dan 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. Setel agar skrip dapat dieksekusi:

      chmod +x lateral_movement_test.sh
    
  4. Untuk membuat temuan, jalankan skrip:

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

    Diperlukan waktu hingga satu jam agar masalah Ancaman yang Berkorelasi muncul.

  5. Setelah masalah dibuat, lakukan pembersihan menggunakan perintah yang diberikan dalam output skrip pengujian.

      gcloud compute instances delete $(cat .lateral_movement_test_name)
    

Langkah berikutnya