Prueba las amenazas correlacionadas

En esta página, se describe cómo puedes verificar que la función Correlated Threats funcione emulando amenazas para activar de forma intencional los detectores de Security Command Center y crear resultados. Luego, estos hallazgos de amenazas crean problemas de amenazas correlacionadas para cada regla.

Para obtener más información sobre las amenazas correlacionadas, consulta la descripción general de las amenazas correlacionadas. Si deseas generar resultados que produzcan amenazas correlacionadas, debes habilitar los servicios de detección de amenazas adecuados en la configuración de Security Command Center.

Configura tu entorno

Estos procedimientos de prueba requieren un clúster de GKE y la capacidad de aprovisionar VMs de Compute Engine. Asegúrate de que tu clúster de prueba tenga una versión compatible de Google Kubernetes Engine (GKE). Para obtener más información, consulta Usa una versión de GKE compatible.

Antes de probar Correlated Threats, primero debes seleccionar un proyecto con el clúster de GKE adecuado, activar Cloud Shell y establecer varias variables de entorno. Para ello, sigue estos pasos:

  1. Ve a la consola deGoogle Cloud .

    Ir a la consola de Google Cloud

  2. Selecciona el proyecto en el que deseas probar las amenazas correlacionadas.

  3. Haz clic en Activate Cloud Shell (Activar Cloud Shell).

  4. En Cloud Shell, configura las variables de entorno:

    1. Especifica la zona en la que se encuentra tu clúster:

      export ZONE=CLUSTER_ZONE
      
    2. Ingresa el ID del proyecto en el que se encuentra tu clúster:

      export PROJECT=PROJECT_ID
      
    3. Especifica el nombre de tu clúster de prueba:

      export CLUSTER_NAME=CLUSTER_NAME
      
    4. Obtén las credenciales para tu clúster:

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

Emula un ataque de minería de criptomonedas

En esta sección, se describe cómo emular la minería de criptomonedas y crear un problema de amenazas correlacionadas con la consola de Google Cloud y Cloud Shell. Para ello, primero debes activar Cloud Shell, seleccionar un proyecto y, luego, realizar la prueba.

Para probar las amenazas correlacionadas emulando la minería de criptomonedas, sigue estos pasos:

  1. Configura tu entorno

  2. Para activar un problema de amenazas correlacionadas de criptomonedas, crea dos hallazgos: Execution: Netcat Remote Code Execution In Container y Malware: Cryptomining Bad IP. Para activar estos dos hallazgos, ejecuta los siguientes 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"
    

    El problema de amenazas correlacionadas puede tardar hasta una hora en aparecer.

  3. Después de que se genere el problema de amenazas correlacionadas, ejecuta el siguiente comando para borrar el Pod de Kubernetes que se usó para las pruebas.

      kubectl delete pod "$tag"
    

Emula un ataque de software malicioso

En esta sección, se describe cómo emular un ataque de software malicioso y crear un problema de amenazas correlacionadas con la consola de Google Cloud y Cloud Shell. Para ello, primero activa Cloud Shell, selecciona un proyecto y, luego, realiza la prueba.

Para probar la función Correlated Threats emulando un ataque de software malicioso, sigue estos pasos:

  1. Configura el entorno.

  2. Para activar un problema de Correlated Threats de software malicioso, debes crear dos hallazgos: Execution: Local Reconnaissance Tool Execution y Execution: Added Malicious Binary Executed. Para crear un Pod de Ubuntu 24.04 en tu clúster de GKE y activar estos dos hallazgos, ejecuta los siguientes 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"
    

    El problema de amenazas correlacionadas puede tardar hasta una hora en aparecer.

  3. Después de que se genere el problema de amenaza correlacionada, ejecuta el siguiente comando para borrar el Pod de Kubernetes que se usó para la prueba.

      kubectl delete pod "$tag"
    

Emula un ataque de movimiento lateral en GKE

En esta sección, se describe cómo emular un ataque de movimiento lateral en GKE y crear un problema de amenazas correlacionadas con la consola deGoogle Cloud y Cloud Shell. Para ello, primero debes activar Cloud Shell, seleccionar un proyecto y, luego, realizar la prueba.

Para probar las amenazas correlacionadas emulando un ataque de movimiento lateral, sigue estos pasos:

  1. Configura el entorno.

  2. Para activar un problema de amenazas correlacionadas de movimiento lateral, debes crear dos hallazgos: Privilege Escalation: Launch of privileged Kubernetes container y Execution: Container Escape. Para crear un Pod de Ubuntu en tu clúster de GKE y activar estos dos hallazgos, ejecuta los siguientes 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"
    

    El problema de amenazas correlacionadas puede tardar hasta una hora en aparecer.

  3. Después de que se genere el problema de amenazas correlacionadas, ejecuta el siguiente comando para borrar el Pod de Kubernetes que se usó para la prueba y realizar la limpieza.

      kubectl delete pod "$tag"
    

Emula un ataque de movimiento lateral en Compute Engine

En esta sección, se describe cómo emular un ataque de movimiento lateral en Compute Engine y crear un problema de amenazas correlacionadas con la consola deGoogle Cloud y Cloud Shell. Para ello, primero activa Cloud Shell, selecciona un proyecto y, luego, realiza la prueba.

Para probar las amenazas correlacionadas emulando un ataque de movimiento lateral, sigue estos pasos:

  1. Configura el entorno.

  2. Crea un archivo llamado lateral_movement_test.sh con el siguiente contenido. Esta secuencia de comandos crea varias VMs de Compute Engine y genera los siguientes dos hallazgos: Lateral Movement: Modified Boot Disk Attached to Instance y 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. Haz que la secuencia de comandos sea ejecutable:

      chmod +x lateral_movement_test.sh
    
  4. Para generar resultados, ejecuta la secuencia de comandos:

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

    El problema de amenazas correlacionadas puede tardar hasta una hora en aparecer.

  5. Después de que se genere el problema, realiza la limpieza con el comando que se proporciona en el resultado de la secuencia de comandos de prueba.

      gcloud compute instances delete $(cat .lateral_movement_test_name)
    

¿Qué sigue?