Testar ameaças correlacionadas

Nesta página, descrevemos como verificar se o Correlated Threats está funcionando ao emular ameaças para acionar intencionalmente os detectores do Security Command Center e criar descobertas. Essas descobertas de ameaças criam problemas de ameaças correlacionadas para cada regra.

Para saber mais sobre ameaças correlacionadas, consulte a visão geral das ameaças correlacionadas. Se você quiser gerar descobertas que produzam ameaças correlacionadas, ative os serviços de detecção de ameaças adequados nas configurações do Security Command Center.

Configurar o ambiente

Esses procedimentos de teste exigem um cluster do GKE e a capacidade de provisionar VMs do Compute Engine. Verifique se o cluster de teste está em uma versão compatível do Google Kubernetes Engine (GKE). Para mais informações, consulte Usar uma versão compatível do GKE.

Antes de testar as ameaças correlacionadas, selecione um projeto com o cluster do GKE adequado, ative o Cloud Shell e defina várias variáveis de ambiente. Para isso, siga estas etapas:

  1. Acesse o console doGoogle Cloud .

    Acesse o console do Google Cloud .

  2. Selecione o projeto em que você quer testar as ameaças correlacionadas.

  3. Clique em Ativar o Cloud Shell.

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

    1. Especifique a zona em que o cluster está localizado:

      export ZONE=CLUSTER_ZONE
      
    2. Insira o ID do projeto em que o cluster está localizado:

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

      export CLUSTER_NAME=CLUSTER_NAME
      
    4. Consiga as credenciais do cluster:

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

Simular um ataque de mineração de criptomoedas

Nesta seção, descrevemos como emular a mineração de criptomoedas e criar um problema de ameaças correlacionadas usando o console Google Cloud e o Cloud Shell. Para fazer isso, primeiro ative o Cloud Shell, selecione um projeto e faça o teste.

Para testar as ameaças correlacionadas simulando a mineração de criptomoedas, siga estas etapas:

  1. Configurar o 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 essas duas descobertas, 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"
    

    Pode levar até uma hora para que o problema de ameaças correlacionadas apareça.

  3. Depois que o problema de ameaças correlacionadas for gerado, faça a limpeza executando o seguinte comando para excluir o pod do Kubernetes usado para testes.

      kubectl delete pod "$tag"
    

Simular um ataque de malware

Nesta seção, descrevemos como emular um ataque de malware e criar um problema de ameaças correlacionadas usando o console Google Cloud e o Cloud Shell. Para fazer isso, primeiro ative o Cloud Shell, selecione um projeto e faça o teste.

Para testar as ameaças correlacionadas simulando um ataque de malware, siga estas etapas:

  1. Configure o ambiente.

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

      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"
    

    Pode levar até uma hora para o problema de ameaças correlacionadas aparecer.

  3. Depois que o problema de ameaça correlacionada for gerado, faça a limpeza executando o seguinte comando para excluir o pod do Kubernetes usado para teste.

      kubectl delete pod "$tag"
    

Emular um ataque de movimento lateral no GKE

Nesta seção, descrevemos como emular um ataque de movimentação lateral no GKE e criar um problema de ameaças correlacionadas usando o consoleGoogle Cloud e o Cloud Shell. Para fazer isso, primeiro ative o Cloud Shell, selecione um projeto e faça o teste.

Para testar as ameaças correlacionadas simulando um ataque de movimentação lateral, siga estas etapas:

  1. Configure o ambiente.

  2. Para acionar um problema de ameaças correlacionadas de movimento lateral, crie duas descobertas: Privilege Escalation: Launch of privileged Kubernetes container e Execution: Container Escape. Para criar um pod do Ubuntu no cluster do GKE e acionar essas 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"
    

    Pode levar até uma hora para o problema de ameaças correlacionadas aparecer.

  3. Depois que o problema de ameaças correlacionadas for gerado, faça a limpeza executando o seguinte comando para excluir o pod do Kubernetes usado para testes.

      kubectl delete pod "$tag"
    

Emular um ataque de movimentação lateral no Compute Engine

Nesta seção, descrevemos como emular um ataque de movimentação lateral no Compute Engine e criar um problema de ameaças correlacionadas usando o consoleGoogle Cloud e o Cloud Shell. Para isso, primeiro ative o Cloud Shell, selecione um projeto e faça o teste.

Para testar as ameaças correlacionadas simulando um ataque de movimentação lateral, siga estas etapas:

  1. Configure o ambiente.

  2. Crie um arquivo chamado lateral_movement_test.sh com o conteúdo a seguir. Esse 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 descobertas, execute o script:

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

    Pode levar até uma hora para o problema de ameaças correlacionadas aparecer.

  5. Depois que o problema for gerado, faça a limpeza usando o comando fornecido na saída do script de teste.

      gcloud compute instances delete $(cat .lateral_movement_test_name)
    

A seguir