Probar amenazas correlacionadas

En esta página se describe cómo puede verificar que la función Amenazas correlacionadas funciona emulando amenazas para activar intencionadamente los detectores de Security Command Center y crear resultados. Estas detecciones 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 quieres generar resultados que produzcan amenazas correlacionadas, debes habilitar los servicios de detección de amenazas correspondientes en la configuración de Security Command Center.

Configurar un entorno

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

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

  1. Ve a la Google Cloud consola.

    Ir a la Google Cloud consola

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

  3. Haz clic en Activar Cloud Shell.

  4. En Cloud Shell, define variables de entorno.

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

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

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

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

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

Emular 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 mediante la consola de Google Cloud y Cloud Shell. Para ello, primero activa Cloud Shell, selecciona un proyecto y, a continuación, realiza la prueba.

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

  1. Configurar el entorno

  2. Para activar un problema de amenazas correlacionadas de criptomonedas, crea dos detecciones: Execution: Netcat Remote Code Execution In Container y Malware: Cryptomining Bad IP. Para activar estas dos detecciones, 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. Una vez que se haya generado el problema de amenazas correlacionadas, realiza una limpieza ejecutando el siguiente comando para eliminar el pod de Kubernetes usado para las pruebas.

      kubectl delete pod "$tag"
    

Emular un ataque de malware

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

Para probar Correlated Threats emulando un ataque de malware, sigue estos pasos:

  1. Configura tu entorno.

  2. Para activar un problema de amenazas correlacionadas de malware, crea dos detecciones: 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 estas dos detecciones, 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. Una vez que se haya generado el problema de amenaza correlacionada, realiza una limpieza ejecutando el siguiente comando para eliminar el pod de Kubernetes usado para las pruebas.

      kubectl delete pod "$tag"
    

Emular 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 consolaGoogle Cloud y Cloud Shell. Para ello, primero debes activar Cloud Shell, seleccionar un proyecto y, a continuación, realizar la prueba.

Para probar Correlated Threats emulando un ataque de movimiento lateral, sigue estos pasos:

  1. Configura tu entorno.

  2. Para activar un problema de amenazas correlacionadas de movimiento lateral, crea dos detecciones: 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 estas dos detecciones, 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. Una vez que se haya generado el problema de amenazas correlacionadas, realiza una limpieza ejecutando el siguiente comando para eliminar el pod de Kubernetes que se ha usado para las pruebas.

      kubectl delete pod "$tag"
    

Emular 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 mediante la consola deGoogle Cloud y Cloud Shell. Para ello, primero activa Cloud Shell, selecciona un proyecto y, a continuación, realiza la prueba.

Para probar Correlated Threats emulando un ataque de movimiento lateral, sigue estos pasos:

  1. Configura tu 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 las dos siguientes detecciones: 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. Una vez que se haya generado el problema, realiza una limpieza con el comando proporcionado en la salida de la secuencia de comandos de prueba.

      gcloud compute instances delete $(cat .lateral_movement_test_name)
    

Siguientes pasos