Teste ameaças correlacionadas

Esta página descreve como pode verificar se as ameaças correlacionadas estão a funcionar através da emulação de ameaças para acionar intencionalmente os detetores do Security Command Center e criar resultados. Em seguida, estas conclusões de ameaças criam problemas de ameaças correlacionadas para cada regra.

Para saber mais sobre as ameaças correlacionadas, consulte a vista geral das ameaças correlacionadas. Se quiser gerar resultados que produzam ameaças correlacionadas, tem de ativar os serviços de deteção de ameaças adequados nas definições do Security Command Center.

Configure o seu ambiente

Estes procedimentos de teste requerem um cluster do GKE e a capacidade de aprovisionar VMs do Compute Engine. Certifique-se de que o cluster de teste está numa versão suportada do Google Kubernetes Engine (GKE). Para mais informações, consulte o artigo Usar uma versão suportada do GKE.

Antes de testar as ameaças correlacionadas, tem de selecionar primeiro um projeto com o cluster do GKE adequado, ativar o Cloud Shell e definir várias variáveis de ambiente. Para o fazer, siga estes passos:

  1. Aceda à Google Cloud consola.

    Aceda à Google Cloud consola

  2. Selecione o projeto onde quer testar as ameaças correlacionadas.

  3. Clique em Ativar Cloud Shell.

  4. No Cloud Shell, defina variáveis de ambiente.

    1. Especifique a zona onde o cluster está localizado:

      export ZONE=CLUSTER_ZONE
      
    2. Introduza o ID do projeto onde o cluster está localizado:

      export PROJECT=PROJECT_ID
      
    3. Especifique o nome do cluster de teste:

      export CLUSTER_NAME=CLUSTER_NAME
      
    4. Obtenha as credenciais do seu cluster:

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

Emule um ataque de mineração de criptomoedas

Esta secção descreve como emular a mineração de criptomoedas e criar um problema de ameaças correlacionadas através da Google Cloud consola e do Cloud Shell. Para o fazer, primeiro, ative o Cloud Shell, selecione um projeto e, de seguida, faça o teste.

Para testar as ameaças correlacionadas através da emulação da mineração de criptomoedas, siga estes passos:

  1. Configure o seu ambiente

  2. Para acionar um problema de ameaças correlacionadas de criptomoedas, crie duas descobertas: Execution: Netcat Remote Code Execution In Container e Malware: Cryptomining Bad IP. Para acionar estas duas conclusões, execute os seguintes comandos:

      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"
    

    O problema Ameaças correlacionadas pode demorar até uma hora a aparecer.

  3. Depois de o problema de ameaças correlacionadas ser gerado, execute a limpeza executando o seguinte comando para eliminar o pod do Kubernetes usado para testes.

      kubectl delete pod "$tag"
    

Emule um ataque de software malicioso

Esta secção descreve como emular um ataque de software malicioso e criar um problema de ameaças correlacionadas através da Google Cloud consola e do Cloud Shell. Para tal, comece por ativar o Cloud Shell, selecione um projeto e, em seguida, faça o teste.

Para testar as ameaças correlacionadas através da emulação de um ataque de software malicioso, siga estes passos:

  1. Configure o seu ambiente.

  2. Para acionar um problema de ameaças correlacionadas de software malicioso, crie duas descobertas: Execution: Local Reconnaissance Tool Execution e Execution: Added Malicious Binary Executed. Para criar um pod do Ubuntu 24.04 no seu cluster do GKE e acionar estas duas descobertas, execute os seguintes comandos:

      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"
    

    O problema Ameaças correlacionadas pode demorar até uma hora a ser apresentado.

  3. Depois de o problema de ameaça correlacionada ser gerado, execute a limpeza através do seguinte comando para eliminar o pod do Kubernetes usado para testes.

      kubectl delete pod "$tag"
    

Emule um ataque de movimento lateral no GKE

Esta secção descreve como emular um ataque de movimento lateral no GKE e criar um problema de ameaças correlacionadas através da consola e do Cloud Shell.Google Cloud Para o fazer, primeiro, ative o Cloud Shell, selecione um projeto e, em seguida, faça o teste.

Para testar as ameaças correlacionadas através da emulação de um ataque de movimento lateral, siga estes passos:

  1. Configure o seu ambiente.

  2. Para acionar um problema de ameaças correlacionadas de movimento lateral, deve criar dois resultados: Privilege Escalation: Launch of privileged Kubernetes container e Execution: Container Escape. Para criar um Ubuntu Pod no seu cluster do GKE e acionar estas duas descobertas, execute os seguintes comandos:

      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"
    

    O problema Ameaças correlacionadas pode demorar até uma hora a ser apresentado.

  3. Depois de o problema de ameaças correlacionadas ser gerado, execute a limpeza através do seguinte comando para eliminar o pod do Kubernetes usado para testes.

      kubectl delete pod "$tag"
    

Emule um ataque de movimento lateral no Compute Engine

Esta secção descreve como emular um ataque de movimento lateral no Compute Engine e criar um problema de ameaças correlacionadas através da consola e do Cloud Shell.Google Cloud Para o fazer, primeiro, ative o Cloud Shell, selecione um projeto e, em seguida, faça o teste.

Para testar as ameaças correlacionadas através da emulação de um ataque de movimento lateral, siga estes passos:

  1. Configure o seu ambiente.

  2. Crie um ficheiro denominado lateral_movement_test.sh com o seguinte conteúdo. Este script cria várias VMs do Compute Engine e gera as seguintes duas descobertas: 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. Torne o script executável:

      chmod +x lateral_movement_test.sh
    
  4. Para gerar resultados, execute o script:

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

    O problema Ameaças correlacionadas pode demorar até uma hora a ser apresentado.

  5. Após a geração do problema, faça a limpeza através do comando fornecido no resultado do script de teste.

      gcloud compute instances delete $(cat .lateral_movement_test_name)
    

O que se segue?